feat(ghostty): try Ghostty#16
Merged
Merged
Conversation
Initial Ghostty config for macOS, using native tabs/splits in place of tmux passthrough for in-terminal session management. Window: - Translucent background (background-opacity = 0.7) with macOS blur (background-blur-radius = 20). NOT fullscreen — macOS native fullscreen silently disables window-level transparency. Resize manually (green button or Rectangle/Spectacle); window-save-state retains the layout across launches. - macos-titlebar-style = tabs, copy-on-select to clipboard, mouse-hide-while-typing, 6px internal padding. Behavior: - macos-option-as-alt = left so emacs-style \e<key> bindings reach the shell. On macOS, left-option composes Unicode by default (option+c → ç), which silently broke fzf-cd-widget (Alt+C) and any other Alt-prefixed zsh binding. Right option still composes accents (option+e e → é). Keybindings: - Cmd+Arrow navigates splits, Cmd+Shift+Arrow resizes, Cmd+Z toggles split zoom, Cmd+, renames the current tab, Ctrl+Tab / Ctrl+Shift+Tab cycles tabs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Catch invalid keybind actions, unknown config keys, and other ghostty-rejectable mistakes at commit time instead of at next reload. Skips silently if ghostty is not on PATH (Linux dev boxes). Caveat: validates the .tmpl as-is. The current ghostty config has no Go-template syntax, so chezmoi passes it through unchanged. If templating is added later, the hook will need to render via `chezmoi execute-template` before validating. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
51c351a to
22adc10
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Experimenting with Ghostty: native tabs and splits, embedded fonts, translucent blurred background, and emacs-style Alt key handling on macOS.
What this PR adds:
dot_config/ghostty/config.tmpl): translucent background with macOS blur, tab-style titlebar, copy-on-select, embedded JetBrains Mono Nerd Font, stock dark theme.window-save-state = alwaysretains size/position across launches.Cmd+Arrowfor split navigation,Cmd+Shift+Arrowfor resize,Cmd+Zfor split zoom,Ctrl+Tabcycles tabs,Cmd+,renames the current tab.macos-option-as-alt = leftso emacs-style\e<key>bindings reach the shell —Alt+C(fzf-cd-widget) was silently inert before. Right option still composes accents.ghostty +validate-configondot_config/ghostty/*.tmplto catch typos in keybind actions likeopen_url(not a real Ghostty action) at commit time, instead of at next reload.Companion branch extracted from this one:
chagui/misc/ghostty-followups— adds a ClaudeWebFetchpermission for ghostty.org docs and a tmux split-direction tweak. Both bits arose during the Ghostty experiment but are independent of the Ghostty config itself.Test plan
chezmoi apply; reload Ghostty (Cmd+Shift+,) — no validate errors^T/^R/Alt+Ctrigger fzf file / history / cd-widgetoption+e e→é)Cmd+Dsplits,Cmd+Arrownavigates between splits,Cmd+Shift+Arrowresizes🤖 Generated with Claude Code