dotfiles/.config/ghostty/config.ghostty (2222B)
theme = dark:Gruvbox Dark,light:Gruvbox Light #theme = dark:Material Darker,light:Gruvbox Light window-padding-x = 10 window-padding-y = 5,2 adjust-cursor-thickness = +100% font-size = 14 font-family = JetBrains Mono font-feature = -calt, +cv01, +cv10, +cv11, +cv12 font-family = Symbols Nerd Font # Claude Code's icons (✻ ✔ ❯ ⏵ ⏺) aren't in JetBrains Mono, and macOS was falling back to an # installed pixel font. Use the smooth monospace font Iosevka Fixed for those ranges instead. font-codepoint-map = U+2700-U+27BF=Iosevka Fixed font-codepoint-map = U+23E9-U+23FA=Iosevka Fixed bold-is-bright = true # macOS settings macos-window-buttons = visible macos-icon = glass auto-update = off font-thicken = true # Cmd-1 … Cmd-9 switch tmux windows instead of Ghostty tabs. # Each sends ESC [ 900<n> ~, which ~/.tmux.conf binds as User<n>. keybind = cmd+digit_1=csi:9001~ keybind = cmd+digit_2=csi:9002~ keybind = cmd+digit_3=csi:9003~ keybind = cmd+digit_4=csi:9004~ keybind = cmd+digit_5=csi:9005~ keybind = cmd+digit_6=csi:9006~ keybind = cmd+digit_7=csi:9007~ keybind = cmd+digit_8=csi:9008~ keybind = cmd+digit_9=csi:9009~ # Cmd-T opens a new tmux window instead of a Ghostty tab (~/.tmux.conf: User10). keybind = cmd+t=csi:9010~ # Cmd-W closes the current tmux window instead of the Ghostty tab (~/.tmux.conf: User11). keybind = cmd+w=csi:9011~ # Always run inside tmux: attach to the "main" session, creating it if needed. # Full path because apps launched from the Dock don't get Homebrew's PATH. command = /opt/homebrew/bin/tmux new-session -A -s main # Don't ask before closing: tmux is always "running", and the session survives # Ghostty closing anyway (reopening reattaches to "main"). confirm-close-surface = false # Ctrl-G sends Escape (0x1b), so Ctrl-G cancels in Claude Code's dialogs and # search boxes the same way Esc does. Side effect: Ctrl-G is no longer zsh's # send-break in any Ghostty window. keybind = ctrl+g=text:\x1b # Cmd-C inside Claude Code (fullscreen mode): Ghostty has no selection because # Claude Code owns the mouse, so send Ctrl+Shift+C (CSI u), which Claude Code # binds to selection:copy. Tmux's own drag-select still copies via pbcopy. keybind = cmd+c=csi:99;6u