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. Fallbacks are an array-of-tables — each entry can override OpenType features and cap-height offset:

[font]
family = "JetBrains Mono"

[[font.fallback]]
family = "Noto Sans CJK"      # Wide Unicode coverage
size_offset = -1.0            # cap-height tweak (points)

[[font.fallback]]
family = "Noto Color Emoji"   # Emoji
features = ["liga"]

[[font.fallback]]
family = "Symbols Nerd Font"  # Nerd Font icons

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

OpenType Features

OpenType feature tags are enabled or disabled with a string array. Prefix a tag with - to disable it:

[font]
family = "JetBrains Mono"
features = [
  "liga",       # Standard ligatures (== != =>)
  "calt",       # Contextual alternates
  "ss01",       # Stylistic set 1 (font-specific)
  "-kern",      # Disable kerning
]

Per-fallback features are set in the matching [[font.fallback]] table. Feature tags follow the OpenType specification — available features depend on your font.

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.