🔤 Fonts

font-family Default: system default

The font family to use. Use ghostty +list-fonts to see available fonts.

Can specify multiple fonts separated by commas for fallbacks

font-size Default: 12

Font size in points. Supports decimals for high DPI displays.

font-thicken Default: false

Draw fonts with a thicker stroke (macOS only).

font-synthetic-style Default: true

Control whether Ghostty synthesizes bold/italic if not available in font.

Options: true, false, no-bold, no-italic, no-bold-italic

font-feature Default: none

Font features to enable/disable (e.g., ligatures). Use -calt to disable ligatures.

font-family-bold Default: same as font-family

Font family for bold text. Override if your font has a dedicated bold variant.

font-family-italic Default: same as font-family

Font family for italic text.

font-family-bold-italic Default: same as font-family

Font family for bold italic text.

font-style Default: default

Named font style (e.g., "Regular", "Medium") if your font doesn't use weight-based naming.

font-style-bold Default: bold

Named style for bold text.

font-style-italic Default: italic

Named style for italic text.

font-style-bold-italic Default: bold italic

Named style for bold italic text.

🎨 Colors & Theme

theme Default: none

Theme name or path. Use ghostty +list-themes to see available themes.

For light/dark auto-switching: light:ThemeName,dark:ThemeName

background Default: #000000

Background color (overrides theme).

foreground Default: #ffffff

Foreground/text color (overrides theme).

selection-foreground Default: inverted

Text color when selected.

selection-background Default: inverted

Background color of selected text.

minimum-contrast Default: 1

Minimum contrast ratio (1-21) between foreground and background. Higher values prevent hard-to-read text.

bold-is-bright Default: false

Use bright colors for bold text (terminal convention).

selection-invert-fg-bg Default: true

Invert foreground/background for selection instead of using selection colors.

cursor-invert-fg-bg Default: false

Invert foreground/background colors under cursor.

🌈 Color Palette (ANSI Colors)

Customize the 16 ANSI colors used by terminal applications. These override theme colors.

Normal Colors (0-7)
Bright Colors (8-15)

Cursor

cursor-style Default: block

The default cursor style. Programs can override this.

Options: block, bar, underline, block_hollow

cursor-style-blink Default: true

Whether the cursor blinks by default.

cursor-color Default: auto

Cursor color. Can also be cell-foreground or cell-background.

cursor-text Default: auto

Color of text under the cursor.

cursor-opacity Default: 1

Cursor opacity (0.0 to 1.0).

🖼️ Background Effects

background-opacity Default: 1

Window background opacity (0.0 = transparent, 1.0 = opaque).

background-blur Default: false

Blur the background when opacity is less than 1. Can be true/false or a number (blur intensity).

background-image Default: none

Path to a PNG or JPEG background image.

background-image-opacity Default: 1

Background image opacity (relative to background-opacity).

background-image-fit Default: contain

How the background image is scaled.

Options: contain, cover, stretch, none

🪟 Window

window-padding-x Default: 0

Horizontal padding in points. Can be single value or "left,right".

window-padding-y Default: 0

Vertical padding in points. Can be single value or "top,bottom".

window-padding-balance Default: false

Automatically balance padding to center the grid.

window-decoration Default: auto

Window decoration style.

window-theme Default: auto

Theme for window decorations.

window-height Default: auto

Initial window height in grid cells.

window-width Default: auto

Initial window width in grid cells.

fullscreen Default: false

Start windows in fullscreen mode.

window-padding-color Default: background

Color of the window padding area.

window-vsync Default: true

Synchronize rendering with monitor refresh. Disable for lower latency.

resize-overlay Default: after-first

When to show resize overlay with dimensions.

resize-overlay-position Default: center

Position of the resize overlay.

resize-overlay-duration Default: 750ms

Duration to show resize overlay (in milliseconds). Set to 0 to disable timeout.

Use formats like 750ms, 1s, or just a number for milliseconds

confirm-close-surface Default: true

Show confirmation dialog when closing window with running process.

window-save-state Default: default

Save window state (size, position) on exit.

window-title-font-family Default: system

Font family for window title (if using integrated title bar).

🖱️ Mouse & Input

mouse-hide-while-typing Default: false

Hide mouse cursor while typing.

mouse-scroll-multiplier Default: 3

Scroll speed multiplier (lines per tick).

focus-follows-mouse Default: false

Mouse hovering over a split focuses it.

click-repeat-interval Default: system

Interval for detecting multi-click (double, triple) in milliseconds.

mouse-shift-capture Default: false

Allow shift+click to extend selection even in mouse capture mode.

📋 Clipboard

clipboard-read Default: ask

Allow programs to read clipboard (OSC 52).

clipboard-write Default: allow

Allow programs to write to clipboard (OSC 52).

copy-on-select Default: true

Automatically copy selected text to clipboard.

clipboard-trim-trailing-spaces Default: true

Remove trailing spaces when copying.

clipboard-paste-protection Default: true

Warn before pasting content that could be dangerous (multiline commands, etc).

clipboard-paste-bracketed-safe Default: true

Use bracketed paste when safe (shell integration detected).

💻 Shell & Command

command Default: $SHELL

Command to run (usually a shell).

shell-integration Default: detect

Shell integration mode for enhanced features.

scrollback-limit Default: 10000000

Scrollback buffer size in bytes.

initial-command Default: none

Command to run before starting shell (e.g., tmux attach).

working-directory Default: inherit

Initial working directory for new terminals.

Use 'inherit' to use parent directory, or specify a path

wait-after-command Default: false

Keep terminal open after command exits (useful for viewing output).

abnormal-command-exit-runtime Default: 250ms

Minimum runtime before considering command exit abnormal.

shell-integration-features Default: all enabled

Control which shell integration features are enabled.

Features: cursor, sudo, title. Use no-feature to disable (e.g., no-cursor)

desktop-notifications Default: true

Allow programs to send desktop notifications (OSC 777).

term Default: xterm-ghostty

Value for TERM environment variable.

Use xterm-256color if apps don't support xterm-ghostty

⌨️ Keybindings

Build custom keybindings visually or enter them manually below.

Manual Entry

Or enter keybindings manually (one per line):

🍎 macOS Settings

macos-titlebar-style Default: transparent

Style of the macOS titlebar.

macos-option-as-alt Default: depends on keyboard

Treat Option key as Alt for terminal programs.

macos-icon Default: official

Customize the dock icon.

macos-icon-frame Default: auto

Add frame around custom icons.

macos-icon-ghost-color Default: auto

Custom color for the ghost icon.

macos-icon-screen-color Default: auto

Custom color for the screen background on icon.

macos-titlebar-proxy-icon Default: visible

Show folder icon in titlebar (proxy icon).

macos-window-shadow Default: true

Enable window shadow.

macos-auto-secure-input Default: true

Automatically enable secure keyboard input when password prompts detected.

macos-secure-input-indication Default: true

Show visual indicator when secure keyboard input is active.

🐧 Linux/GTK Settings

gtk-tabs-location Default: top

Tab bar location.

gtk-single-instance Default: detect

Run as single instance.

gtk-wide-tabs Default: true

Use wide tabs that fill the tab bar.

gtk-adwaita Default: true

Use libadwaita styling.

gtk-titlebar Default: true

Show GTK header bar/titlebar.

Quick Terminal

quick-terminal-position Default: top

Where the quick terminal appears.

quick-terminal-size Default: 50%

Size of quick terminal.

quick-terminal-screen Default: main

Which screen to show quick terminal on.

quick-terminal-animation-duration Default: 200ms

Animation duration for quick terminal show/hide.

In milliseconds. Set to 0 to disable animation.

quick-terminal-autohide Default: true

Auto-hide quick terminal when focus lost.

Generated Config

👁️ Live Preview
user@ghostty ~/projects (main)
$ ls -la
drwxr-xr-x README.md
-rwxr-xr-x build.sh
Error: Warning text
$