How to beautify FontForge’s user interface

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.

Was it useful? There's more:

14 Responses. Comments closed for this entry.

  1. Thanks. The appearance of the UI in FontForge is _part_ of the barrier of entry. This helps. The real challenge of course is the complexity of fonts and typefaces. Maybe improving the UI this little bit will help me inch a little closer to designing my own typeface!

  2. Jason, if you did one pair of font files (eg. regular + italic) in Fontforge, you probably will need no changes in its UI.

    Also, if you have some ideas of improvements (I’m not talking about migration to another toolkit), you could mail to the list. Not sure how busy GWW with other things these days, but back in pfaedit times he has been able to provide fixes for bug reports “next day” and implement features in few days to a couple of weeks (in some cases he had explained how to do something using already available tools/features in better way than it could be done with requested feature).

  3. Alexandre Prokoudine 10 June 2012 at 9:11 pm

    GWW seems to be quite busy lately, but other folks fix bugs too.

  4. Cool, thanks!
    Would be sweet if Fontforge was setup with a more appealing theme by default…

  5. Some I tried, blocked fontforge (v2011) from starting, until I tried sky theme. Font settings aren’t preserved here unless theme with changed font is saved.

    While there, I tried to match my theme, and thought to share it as yet another variation on theme ;)
    Theme file:

    But really, if you have to close CorelDraw and sit in front of UI like fontforge or pdfedit or any similar ancient interface, you’ll be sure scared. Promoting it on behalf of “what’s under the hood” mantra is never excuse to be buried in same GUI in which project started decade ago. Especially today. IMHO.

  6. Forgot to say it uses Droid Sans font
    And I didn’t know comment field can decrypt image address ;)


  7. Alexandre Prokoudine 11 June 2012 at 8:12 pm

    Interesting, your sliders look like the ones in the current Adwaita theme.

  8. Yes, scrollbars match Adwaita as I was using Adwaita Cupertino. Here is yet other try at Radiance (same font):

    theme file:

  9. To change to font (size) of the sky theme, you also could open the theme in a text editor, and search for and replace the string “12pt dejavu sans” with your own preferred setting, i.e. “10pt ubuntu”.

  10. my Preference on FontFOrge is problem. What can i do ? :(

  11. Alexandre Prokoudine 17 June 2013 at 7:54 pm

    @Mk Huda, Sorry, I don’t understand your question.

  12. Great, but you forgot to tell us how to revert to the original theme. Now I’m stuck with this ugly mint green that’s worse than the original, and moving the theme file isn’t fixing it. I guess once it reads the theme file it stores that somewhere. Pointing it back to the ‘pixmaps’ directory didn’t fix it either! Arrrrgh. Help…

  13. Follow-up: I found the answer. INSIDE the ‘pixmaps’ directory you must select ‘resources’. Upon relaunching it goes back to normal.

  14. I tried install source code with Homebrew but failed. I un-installed Homebrew, python and installed a pre-packaged Fontforge version 20140310. But now my GUI fonts are bolded and line spacing is less than half of normal. So the menu items all squeezed vertically. Any clue to fix it?