dotfiles

Linux and macOS dotfiles
git clone https://github.com/michaelneuper/dotfiles.git
README | Files | Log | Refs

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