Skip to main content

Font Families

Basic Font Setup

List available fonts:
On macOS, the default font size is 13pt. On other platforms, it’s 12pt.

Font Size Details

Linux/GTK: Font size is scaled by display-wide and text-specific scaling factors (e.g., GNOME display scale and large text settings).
Reloading affects terminals that haven’t manually adjusted their font size (via increase/decrease font size actions). Terminals with manual adjustments retain their size.

Font Fallbacks

Specify multiple fonts for missing glyphs:
Fallback fonts are used in order when glyphs are missing from the primary font.

Emoji Fonts

Ghostty always uses Apple Color Emoji by default. Override by specifying an emoji font:

Resetting Font List

Clear previous fonts before setting new ones:
CLI arguments automatically clear config file fonts, so you don’t need --font-family="" on the command line.

Font Styles

Style-Specific Fonts

Set different fonts for bold, italic, and bold-italic:
Ghostty searches the regular font family for stylistic variants. If not found, it uses the regular style or synthesizes the style.
If you specify font-family-bold = FooBar but FooBar doesn’t exist, Ghostty falls back to the regular font-family for bold text.

Named Font Styles

Use specific font style names:
Style names come from the font itself. For example, “Iosevka Heavy” has a style named “Heavy”.

Disabling Font Styles

Disable specific styles entirely:
This only affects requested styles. If a font doesn’t have the style, you don’t need to disable it.

Synthetic Styles

Control synthetic (generated) font styles:
Important: Disabling bold or italic does NOT disable bold-italic. To disable bold-italic, explicitly set:
Ghostty can synthesize styles if the font lacks them:
  • Bold: Draws an outline around glyphs
  • Italic: Applies a slant to glyphs
  • Bold-Italic: Both outline and slant
Synthetic styles don’t look as good as native styles, but they provide styled text when unavailable.

Font Features

Enable or disable OpenType font features:
To disable programming ligatures, use -calt (most common). To disable most ligatures: -calt, -liga, -dlig.

Feature Syntax

Multiple syntax forms are supported:
Use a font inspection tool like fontdrop.info to explore available OpenType features.

Variable Fonts

Configure variable font axes:
Variable fonts usually have filenames ending in -VF.ttf or -VF.otf.

Common Variable Font Axes

Invalid axis IDs or out-of-range values are usually ignored. Check your font’s documentation for supported ranges.

Font Rendering

FreeType Options (Linux)

Configure FreeType font rendering:
FreeType flags only affect Linux builds using FreeType for rendering.

Font Thickening (macOS)

Font thickening is currently only supported on macOS.

Font Metrics Adjustments

Fine-tune font rendering metrics:
Values can be integers (1, -1) or percentages (20%, -15%). They modify the original value, not replace it.Wrong values (e.g., -100%) can make the terminal unusable.

Available Adjustments

  • adjust-cell-width: Horizontal cell size
  • adjust-cell-height: Vertical cell size (font is centered)
Note: Powerline glyphs adjust with cell height to maintain alignment.
  • adjust-underline-position: Distance from top to underline
  • adjust-underline-thickness: Underline thickness
  • adjust-strikethrough-position: Distance from top to strikethrough
  • adjust-strikethrough-thickness: Strikethrough thickness
  • adjust-overline-position: Distance from top to overline
  • adjust-overline-thickness: Overline thickness
  • adjust-font-baseline: Distance from bottom to baseline (increase = move up)
  • adjust-cursor-thickness: Bar and outlined rect cursor thickness
  • adjust-cursor-height: Cursor height (all types)
  • adjust-box-thickness: Box drawing character thickness
  • adjust-icon-height: Maximum height for Nerd Font icons (since 1.2.0)

Codepoint Mapping

Force specific Unicode ranges to use specific fonts:
Changing codepoint mapping at runtime only affects new terminals (new windows, tabs, etc.).
Useful for:
  • Special symbols that render better in specific fonts
  • Box drawing characters
  • Powerline symbols
  • Icon fonts (Nerd Fonts)
  • Emoji control

Font Shaping

Control when font shaping runs are broken:
A “run” is contiguous text shaped together to form ligatures and other features. Breaking runs prevents ligatures from forming.Breaking under the cursor helps see individual characters during text editing.
Font shaping break is available since version 1.2.0.

Grapheme Width

Control how grapheme cluster width is calculated:
  • unicode: Correct width for emoji, non-English characters, etc. Some legacy programs may have cursor-desync issues.
  • legacy: Maximum compatibility with old programs. May display some graphemes incorrectly.
If a program enables terminal mode 2027, unicode width is forced automatically.
This only affects new terminals. Existing terminals keep their current method after config reload.

Font Examples

Minimal Setup

With Ligatures Disabled

Variable Font Setup

Multi-Font Setup

Resources

List Fonts

Run ghostty +list-fonts to see available fonts

Font Drop

Inspect OpenType features in your fonts

Nerd Fonts

Icon fonts for terminals

Google Fonts

Free font repository