FontForge How to beautify FontForge’s user interface

By default FontForge doesn’t really match the typical look of a modern desktop application. If you like the font editing features, but dislike the interface, there’s a cure.

Since 2009 or so FontForge ships with a built-in UI editor available from the File menu. This tool called X resource editor is where you can customize all colors, sizes, borders and whatnot. Which is great except it takes time to configure everything.

Fortunately some brave folks did a few ready-to-use themes for us. They are all listed here in the wiki. How does one install them?

Let’s face the enemy first. Here is the default look:

Default user interface in FontForge

Now download the theme you like, unpack, if it’s an archive, and go to the File / Preferences dialog. The “Generic” tab has a setting called ”ResourceFile” which is where you point FontForge to a theme file.

Preferences dialog in FontForge

Let’s use sky.theme. Click the dots labelled button and navigate to the folder where you saved the theme’s file:

Locate theme file

After selecting the file click OK, confirm changes in the Preferences dialog and restart FontForge. Et voilà!

The newer theme

Now, you might be asking yourself, does the user interface really need such a large font size? You can customize it. Go to the X resource editor and switch to the GGadget tab.

GGadget is a root element of UI design in FontForge. It’s where you set default values which can be inherited by other interface elements. Try setting a different font and a smaller point size like on the screenshot below.

GGadget settings

Now ransack the other tabs, especially the ones for checkboxes and lists, and see if they use a custom font. When they do, enable the checkboxes like here:

Disabling custom settings

The text field will become inactive, and that will mean that instead of using a custom value the widget will inherit the value previously set for GGadget. The very same principle applies to all other user interface elements.

One last question you might ask: are there any plans to create a completely new user interface based on Qt or GTK+? While this is technically doable, as the user interface is completely separated from all the internals, there are no such plans yet. The existing team is rather maintaining the existing codebase than implementing new features.