How to Change the FontForge UI Display Font

This guide explains how to change the interface display font in FontForge. Because FontForge utilizes an internal resource system rather than an in-app visual theme selector for its UI typography, modifying the user interface font requires adding or updating specific font rules inside FontForge's XResources configuration file.

Step 1: Locate the XResources Configuration File

FontForge reads its interface layout, colors, and fonts from an XResources file stored in your user profile:

  • Linux / BSD: ~/.FontForge/XResources (or occasionally ~/.config/fontforge/XResources)
  • macOS: ~/.FontForge/XResources (accessible via Terminal or Finder via Go to Folder)
  • Windows: %APPDATA%\FontForge\XResources (usually C:\Users\<YourUsername>\AppData\Roaming\FontForge\XResources)

If this file does not exist, you can create a plain text file named XResources inside that directory.

Step 2: Define the Interface Fonts

Open the XResources file in any plain-text editor (such as Notepad, TextEdit, or Nano). Add the following directives to define the UI fonts:

FontForge.DefaultFont: DejaVu Sans,11
FontForge.DefaultBoldFont: DejaVu Sans,11,bold
FontForge.SmallFont: DejaVu Sans,9

Replace DejaVu Sans with the name of any font installed on your operating system (for example, Segoe UI, SF Pro Display, Ubuntu, or Cantarell). Adjust the integer following the font name to change the font size.

Key Font Directives Explained

You can control specific interface elements by adding additional directives:

  • FontForge.DefaultFont: Controls general menu text, dialog boxes, and button labels.
  • FontForge.DefaultBoldFont: Controls emphasized text, active selections, and title labels.
  • FontForge.SmallFont: Controls small indicators, metrics labels, and subtext.
  • FontForge.MonoFont: Controls code blocks, scripting windows, and text fields where fixed-width characters are required (e.g., FontForge.MonoFont: DejaVu Sans Mono,10).

Step 3: Save and Relaunch

  1. Save the changes to the XResources file.
  2. Ensure the file has no hidden extension (such as .txt).
  3. Fully close and restart FontForge.

FontForge will parse the new resource rules during initialization and render the user interface using your chosen fonts.