April 29, 2008

Choosing a font manager

Author: Bruce Byfield

With libraries of thousands of fonts to handle, designers need a way to quickly locate fonts and organize them into meaningful categories -- such as by the project that requires them -- and to disable fonts when they are not in use so that they don't clog system memory. Although as recently as two years ago the GNU/Linux desktop lacked a font manager that met all these needs, it now has four that either meet them or are likely to.

Fonty Python

I first reviewedFonty Python a year ago. Since then, it has expanded its support of font file formats by adding Type 1 (PostScript), but little else seems to have changed.

Fonty Python has a couple of unusual dependencies in python2.4-imaging and python-wxgtk2.6, but these should be available in major distributions. Once you have satisfied these dependencies, download and untar the latest version, then log in as root, change to the directory with the untarred files, and enter the command python setup.py install. Within a few seconds, you can start Fonty Python with the command fontypython.

Essentially, Fonty Python offers all the functionality needed by designers, but with some interface quirks. To start with, collections of fonts are called "Pogs," a piece of jargon that creator Donn Ingle justifies as being whimsically in the spirit of Monty Python, but which others may consider needless. In addition, only a single line of text is presented for a font sample.

More seriously, the process of setting up Pogs requires you to jump about the three-pane interface. First, you create a new Pog in the right pane, then go to the left pane to find font files. You then return to the top right to select a Pog to install them to, the middle pane to select the fonts to add to the Pog, then back to the bottom right pane to install the Pog.

Familiarity may rob this procedure of its awkwardness. Nor is the interface an unfair trade-off for the functionality. But if you are hoping for interface improvements, you should expect to wait a few months, if previous project activity is any indication.


When I last reviewed Pierre Marchand's FontMatrix, I described version 0.1 as the most promising file manager available. Looking at version 0.4.2, I find that description reconfirmed. Apparently, I am not the only one, because a Web search shows that it is widely discussed on mailing lists for graphics programs, and that it is starting to be packaged for major distributions, including Debian, Fedora, Mandriva, openSUSE, and Ubuntu.

The FontMatrix interface is formidable-looking, but, unlike Fonty Python, mostly follows an orderly progression from left to right. On the left is a pane that lists the installed fonts by typeface family. It can be filtered by a string (such as a font name or weight) or by tags assigned to each typeface. A brief view displays below the list. On the top right, you can read a full description of a selected font and its license, while on the bottom right you can add tags to the selected font -- for instance, the name of the project for which you need it. To activate or deactivate fonts, all you need to do is select them in the font list, then move to the edit window.

Other useful features include views in the upper right pane that include complete alphabets and glyphs for the current selection, as well as a playground for creating your own samples. There is also a font book feature that creates a custom sample file.

With these features, FontMatrix leaves users with little to desire. In fact, all I can think of that's lacking is the ability to handle system fonts -- and that is a feature that Marchand has deliberately avoided implementing, arguing that system fonts, unlike those for an individual user's design projects, "must keep in a very stable and predictable state."

Font Manager

Karl Pickett has added the newest entry in the field with a Python script entitled Font Manger. You can install the latest version by copying the code from the site and pasting it into a file called -- for example -- fontmanager.py. Assuming that you have Python already installed, you can run Font Manager by opening a command line and entering the command python ./fontmanager.py.

Font Manager opens in a window with three columns: a collection of fonts on the left, a list of fonts in the selected collection in the middle, and a pane for views on the right. The default view is a sampler of the font showing an alphabet and the phrase "The Hungry Penguin Ate a Big Fish," but you can also use the View menu to enter your own sample text or to display information about the font file.

While it treats members of a typeface family as individuals, Font Manager looks promising. Unfortunately though, in this version, it is still not completely functional. Right now, you can create new categories but not enable them. While you can move fonts around the existing categories (All Fonts, System, and User), fonts cannot be disabled, nor can new fonts be added. All the same, Font Manager's clean interface should make it very functional when development is complete.

The KDE Font Installer

One of the many changes in KDE 4.x is a revamped font installer. Available from Favorites -> System Settings, the new Font Installer is a considerable improvement on earlier versions. Like earlier versions, the 4.x Font Installer is capable of installing both system and personal fonts, but in a more orderly fashion. It now lists fonts by typeface family, rather than separately, and you can view more than the brief sample provided by default by right-clicking on a listing to open it in Font Viewer, where you can view either a short sample at different sizes or a complete listing of Unicode glyphs.

For general users, the KDE 4 Font Installer should be all that's needed. However, designers may chafe at the inability to organize fonts by criteria other than font family, or to disable fonts to remove them from memory without deleting them from the font list. However, with KDE 4 still in its earliest releases, these features might eventually become available.

Making your choice

Font Manager is promising, but not yet ready for use -- although worth watching. Of the remaining three, the KDE 4 Font Installer may suit your needs if you want to install a few system fonts, or a small number of project-related fonts temporarily.

However, if you are constantly loading and unloading fonts for specific purposes, then your choices are presently limited to Fonty Python and FontMatrix. Either should fill the needs of the average designer. If you have to choose one, my recommendation is FontMatrix. Using the concept of tagging, which should be familiar to anyone who has blogged or published other Web content, FontMatrix offers greater flexibility for categorizing fonts. Just as important, you will probably find its workflow smoother, and its sample features more useful for design work.


  • Tools & Utilities
  • Desktop Software
Click Here!