April 20, 2007

Fonty Python and the Holy Grail of a font manager

Author: Bruce Byfield

For designers, a font manager that can activate and deactivate fonts on-the-fly is the Holy Grail of the GNU/Linux desktop. Without such a tool, designers either need to devote an inordinate amount of system memory to their font collections, or else install and uninstall fonts individually, manually keeping track of the fonts needed for each project. The trouble is, no still-viable font manager has reached a 1.0 release, or even an advanced beta. So far, the closest candidate is Fonty Python, currently at version 0.2.

Fonty Python groups fonts into collections that it calls pogs, which can be installed or uninstalled for the current user account. As soon as the fonts are loaded, they are available for use by other programs.

Unfortunately, despite this basic functionality, Fonty Python has two drawbacks. To start with, it works only with TrueType fonts; PostScript and OpenType formats are not supported. At the bottom of the Help page, Donn Ingle, the developer of Fonty Python, admits, "I know nothing at all about Type-1 fonts and all the other weird fonts out there. I can include support for other formats only if I get some help/code/information about them."

For another, the unconventional layout of the Fonty Python window is awkward to use. Users must start by creating a pog -- an unnecessary piece of jargon if there ever was one -- in the right pane of the window, then go to the left pane to choose a file directory on the hard drive. If the directory has any TrueType files, they display in the middle pane, where users select each font to install by clicking on the panel in which it is displayed. If the directory has more fonts than the middle pane can show at one time, users change the display not by scrolling, but by using Forward and Back buttons. Then users have to select the pog in which to install the fonts from the top right pane, then click a button at the bottom of the middle pane to install the fonts to the selected pog. However, before they can use the font, they have to return yet again to the right pane to install the pog.

Poor alternatives
A Web search reveals the beginnings of several font managers. An early version of Choosefont, a font viewer, was released with a readme file that suggested that "in the future Choosefont might also have capabilities to install and remove fonts," but the last activity listed on the project's SourceForge.net page was more than three years ago. Similarly, although Hamster Font Manager reached a 1.0.2 release, it has apparently not been updated for eight years, and requires a copy of tixwish that is incompatible with any available from the Debian archives.

In short, Fonty Python's requires users to jump around the window, use non-standard controls, and go through too many steps. Its interface is in drastic need of an overhaul, and only tolerable in the absence of anything better to use.

Still, to be fair, Fonty Python is a one-person project. Ingle has prepared guidelines for contributions to the project, but, so far, no one has stepped forward to help. As a result, progress on the project is slow.

The KDE4 Font Installer

Another project that shows promise is the revised KDE font installer scheduled to be included in KDE4. Craig Drummond, the developer behind the software, created a KDE3 version of the changes to "harvest opinions," he says, but it is no longer available, and Drummond's attention is focused on KDE4. Currently, the only way to test the changes is to compile KDE4, which is inadvisable for designers needing to do serious work.

According to Drummond, KDE's new font installer will have two modes. The basic mode will simply allow users to install and remove both system and personal fonts, while Font Management mode will allow users to create groups of fonts and enable and disable fonts. It will also have a number of utilities, such as tools to find duplicate or corrupt fonts, and to download new fonts from a special site. In both modes, the installer will have a view that will be filterable by file name and location, and a font view that will show the Unicode character table.

Future prospects

As a complement to projects like Scribus and Inkscape, a fully developed font manager would be a small but vital piece of functionality that would assist in attracting designers to the desktop. The lack of a GNU/Linux font manager is especially frustrating, given that it is a project with limited scope that could be developed in a few months of concentrated effort by one or two programmers.

At least now, the end of the wait is in sight. The changes to the font installer in the KDE Control Center that are scheduled for KDE4 may be what designers are waiting for. Given that a proof of concept version has already been made, and that Drummond reports that much of this functionality already exists, KDE4 will almost certainly include the first complete font manager for the desktop when it is released in October 2007. Meanwhile, unless Fonty Python manages another release with support for other font formats, designers will just have to wait.

Bruce Byfield is a computer journalist who writes regularly for NewsForge, Linux.com, and IT Manager's Journal.