fontctrl is a minimal, symlink based font manager for GNU/Linux. It handles installation, removal, and management of fonts, keeping your custom fonts easy to install, remove and manage. Because it is symlink based, fonts can be toggled on/off without removing them. This is useful if you only want to temporarily remove a font from your system.

This also makes it safer and easier to manage fonts because fontctrl will only touch fonts that it has installed. Any fonts your package manager installed will be left alone as-is. Because of this, it is less likely to break when removing fonts and other than creating symlinks in the font directory, it keeps your system cleaner than installing fonts manually.

Why would you use a font manager? I'm not new to GNU/Linux, I know how to install fonts.

fontctrl was not created to assist new people in installing fonts. Those people probably already use some desktop environment like GNOME, KDE or XFCE which comes with a graphical font manager built in. fontctrl is more for those people who have a lot of fonts and find it difficult to keep track of them. Instead of managing the fonts your package manager installs (your package manager manages those so there's no point), fontctrl tries to manage user-installed fonts.

What goals does fontctrl have?

How do I install fontctrl?

fontctrl can be installed using the git command. Simply clone the repository, cd into it and make install

There will also be an ebuild on my Gentoo overlay for fontctrl but it is not complete yet.

How do I use fontctrl?

Every argument fontctrl has to offer can be seen by running fontctrl or fontctrl help.

fontctrl has two ways to install fonts, globally and for the current user. Installing fonts globally requires superuser priviliges while installing for the current user does not. If you install fonts globally, the path for the actual font files are going to be in /etc/fontctrl/fonts and if you install for the current user, they are going to be placed in ~/.config/fontctrl/fonts.

Start by downloading a font. After installing fontctrl, you can run fontctrl install font followed by --global if you want to install it globally. You can also add --user if you want but if not 4th argument is specified, the font will be installed for the current user only. Note that font means the font you just downloaded.

The install command just installed the actual font file. Before we can use the font, we need to enable it. This can be done using fontctrl list followed by either --global or --user. Then you can fontctrl enable font followed by either --global or --user. Note that font here needs to be the font you want to enable. It should be listed when you ran fontctrl list. You only need to enter part of the filename, not the entire font.

After the font is enabled, your applications should be able to use it. If you want to use it with something like dwm or st, run fc-list | grep fontname.

For removal of fonts, the steps are the exact same except replace 'install' with 'remove' and 'enable' with 'disable'.

For more information, run fontctrl help.

Need help?

If you are not able to figure out fontctrl, note that most issues are mentioned in the fontctrl help command. If you find a bug, consider reporting it using codeberg's 'Issues' feature. You can also send me an email if you want.

Support this project

You can send Monero to this address: