Ghostty Cheatsheet

Appearance and Themes

Use this Ghostty reference while you build software engineering projects, review code, or refresh the syntax you reach for most.

Themes

theme = catppuccin-mocha
theme = /Users/me/.config/ghostty/themes/mine
theme = light:rose-pine-dawn,dark:rose-pine

Ghostty ships hundreds of built-in themes, sourced from iterm2-color-schemes and refreshed weekly on main. List them with a live preview:

ghostty +list-themes

Name lookup is case sensitive on case-sensitive filesystems, and a name may not contain a path separator unless it is an absolute path. Two directories are searched, in order:

1. $XDG_CONFIG_HOME/ghostty/themes 2. $prefix/share/ghostty/themes (on macOS, Ghostty.app/Contents/Resources/ghostty/themes)

Light and dark

theme = light:NAME,dark:NAME follows the system appearance automatically. Both halves are required in that form, whitespace is trimmed, and order does not matter.

A theme file is an ordinary config file, so it can set any option, not just colors. It is loaded first, which means anything you set in your own config overrides the theme. That is the opposite of config-file, which loads last and wins.

A theme from an untrusted source can set arbitrary configuration. The built-in themes are audited to only set safe options. Read a downloaded theme before you use it.

theme and config-file are silently ignored inside a theme file.

Colors

KeyFormat
background#RRGGBB, RRGGBB, or an X11 color name
foregroundsame
cursor-colorsame
cursor-textsame, or cell-foreground / cell-background since 1.2.0
selection-foreground / selection-backgroundsame
palettepalette = N=#RRGGBB for N in 0–255, repeatable
minimum-contrast1–21, WCAG 2.0 contrast ratio
background = 1e1e2e
foreground = cdd6f4
palette = 0=#45475a
palette = 1=#f38ba8
minimum-contrast = 1.1

minimum-contrast = 1.1 is the practical setting: it only rescues text that would be invisible against its own background. Higher values push text toward pure black or white. It does not apply to emoji or images.

ghostty +list-colors prints the named X11 colors you can use by name.

Transparency and blur

KeyValues
background-opacity0–1, default 1.0
background-opacity-cellsapply opacity to cell backgrounds too
background-blurtrue, false, macos-glass-regular, macos-glass-clear, or an integer radius
background-opacity = 0.92
background-blur = 20

Padding and window chrome

KeyDefaultNotes
window-padding-x2one value, or left,right
window-padding-y2one value, or top,bottom
window-padding-balancefalsespread leftover pixels across all four edges
window-padding-colorbackgroundor extend, extend-always
window-decorationautoauto, client, server, none
macos-titlebar-styletransparentnative, transparent, tabs, hidden
macos-window-shadowtrue
window-colorspacesrgb
window-vsynctruemacOS only, false cuts latency but can tear

Padding is in points and scales with display DPI. Set it too large and the grid collapses to nothing, with a warning in the logs. window-padding-x and -y changes only apply to newly created terminals.

extend fills the padding with the nearest cell's background color, but it deliberately backs off when the nearest row uses the default background, is a shell prompt, or contains a perfect-fit powerline glyph. extend-always skips those heuristics.

Cursor

KeyValuesDefault
cursor-styleblock, bar, underline, block_hollowblock
cursor-style-blinkblank, true, falseblank
cursor-opacity0–11
cursor-click-to-movetrue / falsefalse

cursor-style is only the default. A running program can still request a style with DECSCUSR (CSI q), and shell integration turns the cursor into a bar at the prompt regardless of this setting. Disable that with shell-integration-features = no-cursor.

Leaving cursor-style-blink blank makes Ghostty honor DEC mode 12. Setting it to anything, including true, makes Ghostty ignore DEC mode 12 while still respecting DECSCUSR.