Agent skill
ghostty-config
Use when configuring Ghostty terminal emulator, working with ghostty config files, or looking up Ghostty settings and options.
Install this agent skill to your Project
npx add-skill https://github.com/edmundmiller/dotfiles/tree/main/.agents/skills/ghostty-config
SKILL.md
Ghostty Terminal Configuration
Guide for configuring Ghostty terminal emulator with local documentation access.
When to Use This Skill
Use this skill when:
- Working with Ghostty configuration files
- Looking up valid configuration options
- Troubleshooting Ghostty settings
- Finding available fonts or themes
- Understanding Ghostty-specific features
Quick Reference
Access Local Documentation
Ghostty includes comprehensive built-in documentation:
Full configuration reference with inline docs:
ghostty +show-config --default --docs
List available fonts:
ghostty +list-fonts
Search for specific config options:
ghostty +show-config --default --docs | grep -A 10 "keyword"
Configuration File Location
In this dotfiles repository, Ghostty config is managed at:
- Source:
config/ghostty/config - Installed:
~/.config/ghostty/config
Common Configuration Patterns
Font configuration:
# List available fonts first
ghostty +list-fonts
# Then configure in config file
font-family = Maple Mono NF
font-size = 14
Theme/Colors:
# Search for color-related options
ghostty +show-config --default --docs | grep -i "color"
Key bindings:
# Search for keybind options
ghostty +show-config --default --docs | grep -i "keybind"
Searching Documentation
Find specific option documentation:
# Example: Find all font-related options
ghostty +show-config --default --docs | grep -B 2 -A 20 "^font-"
Search by keyword:
# Example: Find clipboard options
ghostty +show-config --default --docs | grep -i "clipboard" -A 10
List all available options:
# Get just the config keys without docs
ghostty +show-config --default | grep "^[a-z]" | cut -d= -f1
Validation
Test configuration syntax:
# Ghostty will report errors on startup
ghostty --config-file=path/to/config
View current configuration:
# Shows active config (after applying defaults + user config)
ghostty +show-config
Common Configuration Categories
Key categories (use documentation search for complete details):
- Font:
font-family,font-size,font-style,font-feature - Colors:
background,foreground,palette,theme - Window:
window-padding-x/y,window-theme,window-decoration - Shell:
shell-integration-features,command,working-directory - Keybinds:
keybind = trigger=action[:parameter] - Bell:
bell-features,bell-audio-path,bell-audio-volume - Performance:
renderer,vsync - macOS:
macos-titlebar-style,macos-option-as-alt
Example: Adding a Font
-
List available fonts:
bashghostty +list-fonts | grep -i "JetBrains" -
Check font configuration docs:
bashghostty +show-config --default --docs | grep -A 40 "^font-family" -
Add to config:
font-family = JetBrains Mono font-family = Apple Color Emoji # Fallback for emoji font-size = 14 -
Reload config (Ghostty auto-reloads, or use
ctrl+c>rkeybind if configured)
Example: Custom Keybindings
-
Find keybind documentation:
bashghostty +show-config --default --docs | grep -B 10 -A 30 "^keybind =" -
Keybind syntax:
keybind = [prefix:]trigger=action[:parameter] -
Add custom bindings:
keybind = ctrl+shift+c=copy_to_clipboard keybind = ctrl+shift+v=paste_from_clipboard keybind = ctrl+c>v=new_split:right
Example: Configuring Bell
-
Search bell documentation:
bashghostty +show-config --default --docs | grep -A 50 "^# Bell features" -
Available bell features:
system- System notification (GTK only)audio- Custom sound (GTK only)attention- Bounce dock icon on macOS (default: enabled)title- Add 🔔 emoji to title (default: enabled)border- Display border (GTK only)
-
Configure bell:
# Only show title emoji, no dock bounce bell-features = no-attention,title
Configuration Format
Basic syntax:
# Comments start with hash
key = value
# Boolean values
some-feature = true
other-feature = false
# Multiple values - repeat the key
font-family = JetBrains Mono
font-family = Apple Color Emoji
# Empty value = use default
font-family =
No quotes needed for most values (unlike TOML/YAML):
# Correct
font-family = JetBrains Mono
# Also works, but unnecessary
font-family = "JetBrains Mono"
Keybind prefixes:
global:- System-wide (requires accessibility permissions)all:- Apply to all surfacesunconsumed:- Pass to program if not consumedperformable:- Only if action can be performed
Tips
- Ghostty automatically reloads configuration on file changes
- Use
ghostty +show-configto verify active settings - All documentation is built-in - no internet required
- Config format is custom (not TOML/YAML/INI)
- Comments start with
# - Boolean values:
trueorfalse - Multiple values: repeat the key multiple times
- Empty value (
key =) means "use default"
Troubleshooting
Config not loading:
- Check file location:
~/.config/ghostty/config - Verify syntax: generally no quotes needed
- Check Ghostty logs for errors
- Unknown fields are silently ignored
Font not found:
- Use
ghostty +list-fontsto find exact font name - Names are case-sensitive
- Some fonts require full family name (e.g., "Maple Mono NF" not "Maple Mono")
Colors not working:
- Verify hex format:
#RRGGBBor#RRGGBBAA - Check terminal theme compatibility
- Use
ghostty +show-configto see active values
Keybindings not working:
- Check for conflicts with system/other apps
- Verify action name is correct (use docs to find valid actions)
- Some actions are platform-specific (GTK only, macOS only)
- Global keybinds require accessibility permissions
Additional Resources
- Built-in docs:
ghostty +show-config --default --docs - Man pages:
man ghostty - This repo's config:
config/ghostty/config - List fonts:
ghostty +list-fonts - Show active config:
ghostty +show-config
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
zbench
Benchmark interactive zsh performance with zsh-bench and track regressions. Use when benchmarking shell startup, comparing zsh latency after config changes, investigating slow shell, or running git bisect on performance. Trigger phrases: "benchmark zsh", "shell is slow", "zbench", "zsh-bench", "shell startup time", "profile zsh", "zsh performance".
nix-rebuild
Rebuild nix-darwin/NixOS system after dotfiles changes. Use when config files managed by Nix (lazygit, ghostty, etc.) need to be regenerated, or after editing any .nix file in the dotfiles repo.
hass-config-flow
Interact with Home Assistant via the REST API on a NixOS host. Use when adding integrations, querying entities, managing config flows, creating API tokens, or automating HA setup programmatically. Also covers identifying device protocols (Matter, Zigbee, Thread, HomeKit) from the device registry. Trigger phrases: "add HA integration", "configure home assistant", "query HA entities", "create HA token", "HA REST API", "pair homekit", "set up matter in HA", "add spotify to HA", "is this device zigbee or thread", "what protocol is this device", "move devices to ZHA", "identify matter devices".
hass-declarative
Manage Home Assistant automations, scenes, and scripts declaratively via NixOS modules. Covers adding/editing/removing entities in the domain-based Nix structure, the ensureEnabled wrapper (initial_state enforcement), the sweep service that cleans orphaned entities, entity identity (IDs, slugs, unique_ids), the eval test assertions, and the build-time manifest. Trigger phrases: "add HA automation", "new scene", "new script", "remove automation", "declarative HA", "sweep unmanaged", "entity drift", "ghost entity", "orphaned automation", "HA domain file", "eval-automations test", "hass assertion", "ensureEnabled", "initial_state".
agenix-secrets
Create, edit, and wire up agenix-encrypted secrets in this dotfiles repo. Use when adding API keys, tokens, credentials, passwords, or any sensitive values to NixOS host configs. Trigger phrases: "add a secret", "encrypt with agenix", "new age secret", "hide this value", "agenix secret".
linear
Read-only Linear issue access via the Linear GraphQL API.
Didn't find tool you were looking for?