Files
command-center/omp-docs/tools/ghostty/configuration.md
Frank 02883d3ed2 docs: rebuild KB in OKF v0.1 with live-verified facts
Copy of the legacy ~/.pi/agent/docs tree rebuilt as the command-center
knowledge base: concept files promoted to path identity, index listings
stripped of frontmatter, all wikilinks/relative links resolved, every
checkable claim verified against the live fleet (Dankserver = Ryzen 7
7700X + RTX 3090; Strix Halo is Dankclaw), unverifiable claims tagged.
kb-lint exits 0.
2026-08-28 07:57:13 -07:00

493 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: reference
title: Ghostty Configuration Options — Complete Reference
description: Every configuration option for Ghostty, organized by category with types, defaults, and usage examples.
tags:
- terminal
- ghostty
- configuration
- reference
verified: 2026-08-28
---
# Ghostty Configuration Reference
Complete option catalog for [Ghostty](https://ghostty.org). See [Overview](index.md) for setup and quick-start.
---
## Font Configuration
### `font-family`
**Type**: String (repeatable)
Primary font family with fallback support.
```ini
font-family = "JetBrains Mono"
font-family = "Noto Sans Mono" # fallback
```
Styles (bold, italic, bold-italic) are automatically found. Use `ghostty +list-fonts` to see available fonts.
### `font-style`, `font-style-bold`, `font-style-italic`, `font-style-bold-italic`
**Type**: String or `false`
A named font style from the font's own style string, for example "Heavy" or "Semibold". Set to `false` to completely disable a style.
### `font-synthetic-style`
**Type**: String (comma-separated)
Control whether Ghostty synthesizes missing styles. Values: `true`, `false`, `bold,italic,bold-italic`, `no-bold,no-italic`.
### `font-feature`
**Type**: String (repeatable, comma-separated)
OpenType font features. Enable: `feat`, `+feat`, `feat on`, `feat=1`. Disable: `-feat`, `feat off`, `feat=0`.
```ini
font-feature = -calt # disable programming ligatures
font-feature = -liga # disable standard ligatures
```
### `font-size`
**Type**: Number (can be non-integer, in points)
```ini
font-size = 12
font-size = 13.5 # 27px on a 2x DPI display
```
### `font-variation`
**Type**: String in `id=value` format (repeatable)
Variable font axis values (4-character IDs).
```ini
font-variation = wght=700
font-variation = wdth=100
```
### `font-codepoint-map`
**Type**: String (repeatable)
Force Unicode codepoints to map to a specific font.
```ini
font-codepoint-map = U+2500-U+257F=JetBrains Mono
```
### `clipboard-codepoint-map`
**Type**: String (repeatable)
Map codepoints to replacement values when copying to clipboard.
```ini
clipboard-codepoint-map = U+2500=U+002D # box drawing → hyphen
clipboard-codepoint-map = U+03A3=SUM # Greek sigma → "SUM"
```
### `grapheme-width-method`
**Type**: String
Width calculation method: `unicode` (default, correct but can cause cursor-desync) or `legacy` (wcswidth, maximizes compatibility).
---
## Alpha Blending & Rendering
### `alpha-blending`
**Type**: String
Color space for alpha blending (available since 1.1.0): `native` (OS-native, macOS default), `linear` (eliminates darkening artifacts), `linear-corrected` (Linux default).
---
## Cell Adjustments
All `adjust-*` options accept integers (1, -1) or percentages (20%, -15%).
| Option | Description |
|--------|-------------|
| `adjust-cell-width` | Cell width adjustment |
| `adjust-cell-height` | Cell height (also centers font vertically, adjusts Powerline glyphs) |
| `adjust-font-baseline` | Baseline position |
| `adjust-underline-position` | Underline position |
| `adjust-underline-thickness` | Underline thickness |
| `adjust-strikethrough-position` | Strikethrough position |
| `adjust-strikethrough-thickness` | Strikethrough thickness |
| `adjust-overline-position` | Overline position |
| `adjust-overline-thickness` | Overline thickness |
| `adjust-cursor-thickness` | Bar/rect cursor thickness |
| `adjust-cursor-height` | Cursor height |
| `adjust-box-thickness` | Box drawing character thickness |
| `adjust-icon-height` | Nerd font icon height (available since 1.2.0) |
**Warning**: Invalid values, for example -100%, can make the terminal unusable.
---
## Theme & Colors
### `theme`
**Type**: String
Theme name, absolute path, or light/dark pair: `light:Rose Pine Dawn,dark:Rose Pine`.
### `background` / `foreground`
**Type**: Color (`#RRGGBB`, `RRGGBB`, or named X11 color)
### `palette`
**Type**: `N=COLOR` (repeatable, N = 0–255)
```ini
palette = 0=#1d1f21
palette = 0x00=#1d1f21
palette-generate = true
```
Only set 0-15 for most themes; 16-255 auto-generated if `palette-generate` is enabled.
### `bold-color`
**Type**: Color or `bright` (available since 1.2.0)
Replaces deprecated `bold-is-bright`.
### `minimum-contrast`
**Type**: Number (1-21)
Minimum contrast ratio (WCAG 2.0). Value of 3+ = avoid hard-to-read text.
---
## Appearance
### `background-image`
**Type**: Path (PNG or JPEG, available since 1.2.0)
Per-terminal background image. **Warning**: Currently duplicated in VRAM per-terminal.
### `background-opacity`
**Type**: Number (0-1)
Window transparency. On macOS, disabled in native fullscreen.
### `background-blur`
**Type**: Number, `true`, `false`, or macOS special values
Blur background when opacity < 1. macOS special: `macos-glass-regular`, `macos-glass-clear` (macOS 26.0+).
---
## Selection
### `copy-on-select`
**Type**: Boolean or `clipboard`
Automatically copy selected text. `clipboard` copies to both selection and system clipboard.
### `selection-clear-on-typing`
**Type**: Boolean (available since 1.2.0)
Clear selection when typing. Default: `true`.
---
## Cursor
### `cursor-style`
**Type**: String
`block`, `bar`, `underline`, `block_hollow`. Programs can override via DECSCUSR.
### `cursor-click-to-move`
**Type**: Boolean
Click to move cursor at prompts (requires shell integration). Default: `true`.
---
## Mouse
### `mouse-hide-while-typing`
**Type**: Boolean
Hide mouse when typing.
### `mouse-reporting`
**Type**: Boolean
Allow terminal applications to receive mouse events. Default: `true`. Toggle with `toggle_mouse_reporting` keybind.
---
## Scrolling
### `scroll-to-bottom`
**Type**: String (comma-separated)
When to auto-scroll: `keystroke` (default), `output`.
### `scrollback-limit`
**Type**: Integer (bytes)
Scrollback buffer size. Default: `10000000` (10 MB).
---
## Split Panes
### `unfocused-split-opacity`
**Type**: Number (0.15-1)
Opacity of unfocused split. Default: `0.7`. Minimum: `0.15`.
### `split-divider-color`
**Type**: Color (available since 1.1.0)
Color of split dividers.
---
## Shell Integration
### `shell-integration`
**Type**: String
`none`, `detect` (default), `bash`, `elvish`, `fish`, `nushell`, `zsh`. `detect` auto-detects by filename.
### `shell-integration-features`
**Type**: String (comma-separated)
Features: `cursor`, `sudo`, `title`, `ssh-env`, `ssh-terminfo`, `path`. Negate with `no-`.
---
## Environment & Command
### `command`
**Type**: String
Shell/command to run. Uses `/bin/sh -c` for argument expansion unless prefixed with `direct:` or `shell:`.
### `env`
**Type**: `KEY=VALUE` (repeatable, available since 1.2.0)
Extra environment variables. Set `env =` to reset all.
---
## Window Settings
### `maximize`
**Type**: Boolean (available since 1.1.0)
Start maximized. Default: `false`.
### `fullscreen`
**Type**: String
`false`, `true` (native), `non-native`, `non-native-visible-menu`, `non-native-padded-notch` (macOS only).
### `window-decoration`
**Type**: String or Boolean (available since 1.1.0)
`none`, `auto` (default), `client`, `server`. Booleans: `true` = `auto`, `false` = `none`.
### `window-padding-x` / `window-padding-y`
**Type**: Number or `X,Y`
Padding in points. Default: `2`.
---
## Clipboard
### `clipboard-read` / `clipboard-write`
**Type**: String
`ask`, `allow`, `deny`. Defaults: `ask` / `allow`.
### `clipboard-paste-protection`
**Type**: Boolean
Require confirmation before pasting potentially unsafe text. Default: `true`.
---
## Notifications & Bell
### `bell-features`
**Type**: String (comma-separated, available since 1.2.0)
Features: `system`, `audio`, `attention` (default), `title` (default), `border`. Negate with `no-`.
### `desktop-notifications`
**Type**: Boolean
Allow apps to show desktop notifications via escape sequences. Default: `true`.
---
## Custom Shaders
### `custom-shader`
**Type**: Path (repeatable)
GLSL shader file path. Compatible with Shadertoy. Receives uniforms: `iChannel0` (screen texture), `iResolution`, `iTime`, `iCursorColor`, `iPalette[256]`, and more.
### `custom-shader-animation`
**Type**: Boolean or `always`
Run animation loop even when unfocused: `always`.
---
## Keybindings
### Format
```ini
keybind = trigger=action
keybind = chain=action # chain with previous keybind
```
**Modifiers**: `shift`, `ctrl`/`control`, `alt`/`opt`/`option`, `super`/`cmd`/`command`
**Prefixes**: `all:`, `global:`, `unconsumed:`, `performable:`, `physical:`
### Key Tables (available since 1.3.0)
```ini
keybind = foo/ctrl+a=new_window
keybind = foo/ # define and clear table
```
### Key Remap
```ini
key-remap = ctrl=super
key-remap = left_control=right_alt
```
---
## VT/Compatibility
### `term`
**Type**: String
TERM environment variable. Default: `xterm-ghostty`.
### `async-backend`
**Type**: String (available since 1.2.0, Linux only)
`auto` (default), `epoll`, `io_uring`. macOS always uses `kqueue`.
---
## Miscellaneous
### `confirm-close-surface`
**Type**: Boolean or `always`
Confirm before closing surface. Default: `true`.
### `focus-follows-mouse`
**Type**: Boolean
Auto-focus split under mouse. Default: `false`.
### `right-click-action`
**Type**: String
`context-menu` (default), `paste`, `copy`, `copy-or-paste`, `ignore`.
---
## Appendix: Default Keybindings
| Keybind | Action |
|---------|--------|
| `ctrl+shift+,` | `reload_config` |
| `ctrl+,` | `open_config` |
| `copy` | `copy_to_clipboard:mixed` |
| `paste` | `paste_from_clipboard` |
| `ctrl+shift+c` | `copy_to_clipboard:mixed` |
| `ctrl+shift+v` | `paste_from_clipboard` |
| `ctrl+=` / `ctrl++` | `increase_font_size:1` |
| `ctrl+-` | `decrease_font_size:1` |
| `ctrl+0` | `reset_font_size` |
| `shift+PageUp` | `scroll_page_up` |
| `shift+PageDown` | `scroll_page_down` |
| `shift+Home` | `scroll_to_top` |
| `shift+End` | `scroll_to_bottom` |
| `ctrl+shift+Tab` | `previous_tab` |
| `ctrl+Tab` | `next_tab` |
| `ctrl+shift+n` | `new_window` |
| `ctrl+shift+w` | `close_tab:this` |
| `ctrl+shift+q` | `quit` |
| `ctrl+shift+t` | `new_tab` |
| `ctrl+shift+o` | `new_split:right` |
| `ctrl+shift+e` | `new_split:down` |
| `ctrl+shift+f` | `start_search` |
| `Escape` | `end_search` |
| `ctrl+shift+a` | `select_all` |
| `alt+1`-`alt+9` | `goto_tab:1`-`goto_tab:9` |
| `ctrl+Enter` | `toggle_fullscreen` |
| `ctrl+shift+P` | `toggle_command_palette` |
---
## Cross-References
- See [Overview](index.md) for CLI actions and quick-start.
- The [AGENTS.md Format](/core/agents-md-format.md) governs how agent behavior contracts reference this configuration.