Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions home/.chezmoidata/40-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ packages:
- libtool
- boost
- pkgconf
# rustc wrapper; see ~/.cargo/config.toml
- sccache

# DevOps & container tools
# terraform was removed from homebrew-core (BSL license); use opentofu,
Expand Down
6 changes: 6 additions & 0 deletions home/dot_bunfig.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# ~/.bunfig.toml
# Managed by chezmoi — bun installs by hardlinking from its own cache instead
# of copying every package into each node_modules. Nothing else changes: the
# trees look and behave identically, they just stop being separate copies.
[install]
backend = "hardlink"
11 changes: 11 additions & 0 deletions home/dot_cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# ~/.cargo/config.toml
# Managed by chezmoi — rustc compiles through sccache, a cache keyed by
# compilation inputs, so the same dependency crate is built once per machine
# rather than once per checkout.
#
# Deliberately NOT a shared [build] target-dir: cargo takes an exclusive lock
# on the directory it builds into, so pointing several checkouts at one dir
# would serialise every build that runs in parallel today. sccache is safe for
# concurrent readers and writers; target dirs stay per-project.
[build]
rustc-wrapper = "sccache"
1 change: 1 addition & 0 deletions home/dot_config/ghostty/config.ghostty
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ shell-integration-features = cursor,title,ssh-env,path
command = direct:tmux new-session -A -s main

# Raycast Hyper (Ctrl+Option+Command) to tmux prefix C-a plus command.
keybind = ctrl+alt+super+space=text:\x01
keybind = ctrl+alt+super+c=text:\x01c
keybind = ctrl+alt+super+i=text:\x01|
keybind = ctrl+alt+super+Slash=text:\x01-
Expand Down
2 changes: 1 addition & 1 deletion home/dot_config/tmux/tmux.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set -g set-clipboard on
set -g history-limit 100000

# Ghostty Hyper bindings send the prefix and command in one write.
set -s assume-paste-time 0
set -g assume-paste-time 0

# Vim copy mode
setw -g mode-keys vi
Expand Down
2 changes: 2 additions & 0 deletions test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,11 @@ grep -Fq "alias conftmux='chezmoi edit --apply ~/.config/tmux/tmux.conf'" home/d
grep -Fq 'command = direct:tmux new-session -A -s main' home/dot_config/ghostty/config.ghostty || fail "Ghostty must resolve tmux through PATH"
grep -Fq 'keybind = super+k=text:\x0c' home/dot_config/ghostty/config.ghostty || fail "missing tmux-aware Command-K binding"
grep -Fq 'keybind = shift+enter=unbind' home/dot_config/ghostty/config.ghostty || fail "legacy Shift-Enter paste binding must be removed"
grep -Fq 'keybind = ctrl+alt+super+space=text:\x01' home/dot_config/ghostty/config.ghostty || fail "Hyper-Space must send the reusable tmux prefix"
grep -Fq 'xterm-ghostty:RGB:extkeys' home/dot_config/tmux/tmux.conf || fail "Ghostty must advertise extended keys to tmux"
grep -Fq 'set -s extended-keys on' home/dot_config/tmux/tmux.conf || fail "tmux must pass modified keys to Claude Code"
grep -Fq 'set -g focus-events on' home/dot_config/tmux/tmux.conf || fail "tmux must pass focus events to Claude Code"
grep -Fq 'set -g assume-paste-time 0' home/dot_config/tmux/tmux.conf || fail "tmux must disable paste timing as a global session option"
if find home/private_dot_ssh -type f ! -name config -print -quit | grep -q .; then
fail "SSH key material must not be managed"
fi
Expand Down