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.
This commit is contained in:
@@ -0,0 +1,492 @@
|
||||
---
|
||||
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.
|
||||
@@ -0,0 +1,124 @@
|
||||
# Ghostty Terminal — Overview
|
||||
|
||||
[Ghostty](https://ghostty.org) is a cross-platform, GPU-accelerated terminal emulator with an INI-style configuration system, Shadertoy-compatible custom shaders, and a rich CLI for introspection.
|
||||
|
||||
See [Configuration Reference](configuration.md) for the complete option catalog.
|
||||
|
||||
---
|
||||
|
||||
## CLI Actions
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `+version` / `--version` | Display Ghostty version |
|
||||
| `+list-fonts` | List all available fonts |
|
||||
| `+list-keybinds` | List all current/default keybinds |
|
||||
| `+list-themes` | List all available themes |
|
||||
| `+list-colors` | List all named RGB colors |
|
||||
| `+list-actions` | List all available keybind actions |
|
||||
| `+ssh-cache` | Manage SSH terminfo cache |
|
||||
| `+edit-config` | Open config file in $EDITOR/$VISUAL |
|
||||
| `+show-config` | Show current configuration |
|
||||
| `+show-config --default --docs` | Show all options with docs |
|
||||
| `+validate-config` | Validate a config file |
|
||||
| `+crash-report` | List existing crash reports |
|
||||
| `+new-window` | Open new window in running instance |
|
||||
|
||||
### Useful Flag Combinations
|
||||
|
||||
```bash
|
||||
# Show all config options with their docs as comments
|
||||
ghostty +show-config --default --docs
|
||||
|
||||
# List fonts with bold styles only
|
||||
ghostty +list-fonts --bold
|
||||
|
||||
# Validate your config without starting Ghostty
|
||||
ghostty +validate-config
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration File Basics
|
||||
|
||||
Configuration uses INI-style syntax:
|
||||
|
||||
```ini
|
||||
option = value
|
||||
option = "quoted value with spaces"
|
||||
```
|
||||
|
||||
### Key Points
|
||||
|
||||
- **Repeatable options**: `font-family`, `font-feature`, `palette`, `env`, `config-file`, `command-palette-entry`, `custom-shader` can all be repeated.
|
||||
- **Empty string resets**: Set `option = ""` to clear previously set values.
|
||||
- **Config includes**: Use `config-file = "path"` to include additional config files.
|
||||
- **Optional includes**: Prepend `?` to suppress errors if file does not exist, for example `config-file = "?optional.conf"`.
|
||||
- **CLI overrides**: CLI arguments automatically clear config file values for the same option.
|
||||
|
||||
### Special Prefixes for Commands
|
||||
|
||||
- `direct:` — Bypass shell expansion (no glob, tilde, or argument parsing)
|
||||
- `shell:` — Force shell wrapping
|
||||
|
||||
---
|
||||
|
||||
## Quick Configuration Examples
|
||||
|
||||
```ini
|
||||
# Font setup with fallback
|
||||
font-family = "JetBrains Mono"
|
||||
font-family = "Noto Sans Mono" # fallback for symbols
|
||||
font-size = 12
|
||||
|
||||
# Disable programming ligatures
|
||||
font-feature = -calt,-liga
|
||||
|
||||
# Cursor
|
||||
cursor-style = block
|
||||
cursor-style-blink = false
|
||||
|
||||
# Window padding
|
||||
window-padding-x = 2
|
||||
window-padding-y = 2
|
||||
|
||||
# Palette
|
||||
palette-generate = true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Custom Shaders
|
||||
|
||||
Ghostty supports Shadertoy-compatible GLSL shaders:
|
||||
|
||||
```ini
|
||||
custom-shader = ~/.config/ghostty/shaders/vignette.glsl
|
||||
custom-shader-animation = true
|
||||
```
|
||||
|
||||
Shaders receive uniforms for the terminal screen texture (`iChannel0`), cursor position, palette colors, and focus state.
|
||||
|
||||
---
|
||||
|
||||
## Default Keybindings
|
||||
|
||||
| Keybind | Action |
|
||||
|---------|--------|
|
||||
| `ctrl+shift+,` | `reload_config` |
|
||||
| `ctrl+` / `ctrl+=` | `increase_font_size:1` |
|
||||
| `ctrl+-` | `decrease_font_size:1` |
|
||||
| `ctrl+0` | `reset_font_size` |
|
||||
| `ctrl+shift+f` | `start_search` |
|
||||
| `ctrl+shift+a` | `select_all` |
|
||||
| `ctrl+Enter` | `toggle_fullscreen` |
|
||||
| `ctrl+shift+P` | `toggle_command_palette` |
|
||||
|
||||
See [Configuration Reference](configuration.md#appendix-default-keybindings) for the full table.
|
||||
|
||||
---
|
||||
|
||||
## Cross-References
|
||||
|
||||
- See [Configuration Reference](configuration.md) for every option, organized by category.
|
||||
- The [AGENTS.md Format](../../core/agents-md-format.md) governs how agent behavior contracts reference this configuration.
|
||||
Reference in New Issue
Block a user