Fix terminal shortcuts and simplify dotfiles adoption - #4
Conversation
bf2c513 to
31ee8da
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 31ee8da27f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cb36d960ce
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| [include] | ||
| path = {{ joinPath .chezmoi.homeDir ".config/git/dotfiles.gitconfig" | quote }} |
There was a problem hiding this comment.
Migrate previously managed Git roots to the new include
On machines that applied the parent revision, ~/.gitconfig already exists with the old defaults and includes only ~/.gitconfig.local; the create_ template therefore leaves it untouched, so it never includes the new managed file. Consequently, the updated confgit alias edits a file that Git does not read and those existing installations still receive no future default updates. The fresh evidence relative to the earlier comment is that the new split places its include only in this create-only root; migrate roots matching the previously managed configuration or document/apply an explicit upgrade step.
Useful? React with 👍 / 👎.
| # Send the standard clear-screen key through tmux to the active application. | ||
| keybind = super+k=text:\x0c |
There was a problem hiding this comment.
Bind Shift-Enter for the Zsh extended-key sequence
When Shift-Enter is used at an ordinary Zsh prompt rather than inside Claude Code, the new tmux extended-key setup forwards a modified-key escape sequence, but home/dot_zshrc has no binding for that sequence. Because this block removes Ghostty's prior Ctrl-V plus LF fallback, the shortcut documented as inserting a newline in shell prompts instead becomes an unbound ZLE sequence; add an appropriate ZLE binding while retaining native handling for Claude Code.
Useful? React with 👍 / 👎.
Four managed files had drifted from their targets, in both directions, and each was decided on evidence rather than by picking a side. Ghostty: the source keeps the portable `direct:tmux` that test.sh enforces, and gains `config-file = ?config.local` as its last line — an optional machine-local include, Ghostty 1.3.1 verified to be silent when absent and to win when present. A Dock-launched Ghostty has launchd's PATH and cannot find Homebrew's tmux, so this machine names /opt/homebrew/bin/tmux in its own config.local; no Homebrew prefix reaches the source. The unmanaged ~/.config/ghostty/config, a leftover from before the rename in #4 that Ghostty was still reading at lower priority, is archived out of the way. Target wins: Zed's settings.json is what Zed itself wrote on Sep 4 when preferences changed in the app; the file is 0600 there, so the source becomes private_settings.json. Source wins: .zshrc had the Google Cloud SDK's two installer lines appended, which are machine-local and now live in ~/.exports.local and ~/.zsh_completions.local — the override files .zshrc already sources for exactly this, both after compinit. .aws/cli/alias had its python heredoc terminators indented (` PY`), which never terminates a <<'PY' heredoc, so the macOS fallback path of the insights and metrics aliases was broken. **/.DS_Store is ignored everywhere. oh-my-zsh is an external, so every .DS_Store Finder dropped inside it read as a file to delete on apply.
What changed
config.ghosttypath so fresh macOS installs load itWhy
The repository used Ghostty's legacy filename, tmux did not pass modified keys or focus events, and the initial create-only Git approach prevented later default updates. Bootstrap also replaced existing Git configuration, while the Raycast export exposed personal clipboard content without reliably restoring settings.
Impact
Fresh machines load Ghostty automatically and receive an updateable managed Git defaults include. Existing root Git configurations remain untouched. Shift-Enter and focus changes reach Claude Code through tmux without the paste-producing fallback, and Raycast adoption no longer relies on a privacy-sensitive export.
Validation
./test.sh+validate-configextkeys, andfocus-events ongit diff --check