Font Configuration

Basic Setup

Set your font in config.toml:

[font]
family = "JetBrains Mono"
size = 14

The font name must match what your system reports. ori-term loads Regular, Bold, Italic, and BoldItalic faces automatically from the same family.

Fallback Chains

When a glyph is missing from the primary font, ori-term tries the next font in a fallback chain:

[font]
family = "JetBrains Mono"
fallback = [
  "Noto Sans Mono",       # Wide Unicode coverage
  "Noto Color Emoji",     # Emoji
  "Symbols Nerd Font",    # Nerd Font icons
]

Each face variant (Regular, Bold, Italic, BoldItalic) has its own fallback chain. Box drawing, block elements, braille, and Powerline symbols are always available via built-in glyph rendering, regardless of font selection.

OpenType Features

Enable or disable OpenType features per font:

[font.features]
liga = true     # Standard ligatures (== != =>)
calt = true     # Contextual alternates
kern = true     # Kerning
ss01 = true     # Stylistic set 1 (font-specific)

Feature tags follow the OpenType specification. Available features depend on your font -- check your font's documentation for supported tags.

Size & Scaling

Font size is specified in points. Adjust at runtime with Ctrl+= and Ctrl+-.

ori-term is DPI-aware. On HiDPI displays, fonts are rendered at the appropriate scale factor. Moving a window between monitors with different DPIs triggers automatic rescaling.

Font Synthesis

When a Bold or Italic face is not available in your font family, ori-term synthesizes them automatically. This ensures you always get styled text, though native font faces always look better when available.

Font Discovery

Font rendering is platform-native. ori-term uses each operating system's built-in font system for rendering, discovery, and fallback resolution. Fonts are found the same way other applications on your system find them.

Subpixel rendering (ClearType-style on LCD displays) is enabled by default with automatic display order detection.