.d888
d88P" 888
888 888
.d88888 88888b. d888888
888 888 "88b 888
888 888 888 888
888 888 888 Y88b.
888 888 888 "Y888
apt for fonts, the missing font manager for macOS/linux
Why?
If you run Debian stable, you don't get the latest fonts, unless someone backports them actively. So this is useful to just get the latest and greatest fonts from Debian sid. It gets even worse with non Debian based Linux distributions.
If you run macOS, neither fink, brew, nor macports come with a great list of available to install fonts.
Privacy?
Read more about Google Fonts and their FAQ.
Host them yourself.
Font repositories
Debian sid, ~500 fonts available, only those starting with fonts-
Google fonts, ~1600 fonts available, (google-
prefixed)
Installation
make install
You can also use your native package manager, see https://repology.org/project/fnt/versions Meanwhile also Debian stable (Bullseye) has an official BPO.
Usage
$ fnt update
$ fnt search agave
$ fnt preview agave
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโโโโโดโโโโโโดโบโโโ
โโโโโโโโโ
โโโ
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโโโโดโโ
โ
โโโดโโโโโดโโโ
โโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโโโโโโโโโโโโโดโโโโโดโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโดโดโโโโ
โโโโดโดโโโโดโดโดโโโดโดโดโดโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโโโโดโดโโโโโโดโดโดโดโดโดโโโโโโโดโโโโโดโดโดโดโดโดโดโโโโโโดโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโดโโโโโดโดโดโดโดโดโโโโโ
โดโโโโโโโดโดโดโดโดโดโโโโโโโโโโโโดโดโดโดโดโดโดโดโดโตโตโตโตโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโโโโดโดโดโดโดโดโโโโดโดโดโโโโโโดโดโดโดโดโดโดโโโโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโตโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโดโโโโโโโโโดโดโดโดโดโดโโโโโโโดโโโโโดโดโดโดโดโดโดโโโดโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโตโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโถโดโดโดโตโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโโโดโดโดโดโดโดโดโดโดโดโดโตโดโดโดโถโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโโดโดโดโดโดโดโดโดโดโโโโโโดโดโโโดโดโดโดโดโดโดโดโกโโโโโดโดโโโโดโดโดโดโดโดโดโดโดโดโถโดโดโดโดโดโตโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโโโโดโดโดโดโดโดโโโโโโโโโโโโดโดโดโดโดโดโดโดโดโโโโดโโโโโดโดโดโดโดโดโดโดโดโดโทโทโทโทโดโดโถโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโโโโดโโโดโดโดโดโดโดโโโโโโโโโโโโดโดโดโดโดโดโดโดโดโโโโดโดโดโโโดโดโดโดโดโดโดโดโดโถโดโดโดโดโดโดโดโตโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโโโโดโดโดโดโดโดโดโโโโโโดโดโโโโดโดโดโดโดโดโดโโโโโดโดโดโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโโโโโดโดโดโดโดโดโดโดโดโดโดโดโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโดโโโดโ
โโโโโดโบโโโโโโโโโโโโโโโ
โดโดโดโดโดโดโดโดโดโดโดโดโดโกโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโดโโโดโโโดโโโดโโ
โ
โโโโโโโโโโโ
โโโโดโดโดโดโดโดโโโโโโดโโ
โโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโโโโโโดโโโดโโโโโโโโโโโโโโโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโโโโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโโโโดโดโโโดโโโดโดโโโโดโโโโโโโดโดโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโโโโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโดโด
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโดโโโโโดโโโโโโโโโโถโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโดโโโโดโโโโโดโโโโโดโโโโโถโโโโโโโโโโโโโโดโโโธโโดโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโดโโโโถโปโโโโโดโโโโโดโโโโโโโโโโโโโดโโโโดโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
$ fnt install agave
$ fnt list
agave-b-autohinted.ttf [699]
agave-r-autohinted.ttf [2443]
Randomly display a preview every ten seconds:
while (clear); do fnt preview $(fnt search | shuf -n1 | sed "s,google-,,;s,fonts-,,"); sleep 10; done
If you want to install all available fonts, you could run something like this:
for a in $(fnt search |grep ^fonts- |sed s,fonts-,,); do fnt install $a; done
You end up with ~2700 font files (~500 fonts), taking up 1.6 GB.
for a in $(fnt search |grep ^google- |sed s,google-,,); do fnt install $a; done
You end up with ~4200 font files (~1600 fonts), taking up 1.4 GB.
ZSH autocompletion
You might want to add something like this to your .zshrc
:
# enable autocomplete function
autoload -U compinit
compinit
Thanks
The preview mode works using https://github.com/hpjansson/chafa and https://screenshots.debian.net
Screenshots
Create your own with http://shell.aiei.ch/typography/
Online service
Missing a font?
Feel free to create an issue, if the font comes with sources and its license is DFSG compliant, I'm happy to package it for a dollar. Free if I like it.
Want to create or edit fonts?
Serve fonts on the web as woff2 and save a lot of traffic
https://github.com/google/woff2
Advertisement
https://news.ycombinator.com/item?id=26063971
https://fostips.com/fnt-a-command-line-font-manager-for-linux-and-mac-os/
https://www.basher.it/package/
Some interesting links
https://github.com/fcambus/bdf2sfd (convert bitmap fonts to vector fonts)
https://en.wikipedia.org/wiki/Computer_font
https://github.com/rewtnull/amigafonts (Amiga)
https://www.trueschool.se (More Amiga)
https://github.com/alexmyczko/ree (dump your video card ROM, and extract the bitmap fonts)