My various configuration files managed with GNU Stow.
Most packages are installed by stowing into $HOME (their internal
structure already includes the leading dot, e.g. tmux/.tmux.conf):
stow -t $HOME <directory>For example, to install tmux configuration:
stow -t $HOME tmuxPackages whose files live outside $HOME (under ~~/.config~, ~~/bin~,
~~/.claude~) use a different stow target — see the per-section notes
below.
To install everything at once:
for pkg in git lein tmux zsh; do stow -t $HOME $pkg; done
stow -t $HOME/bin bin
stow -t $HOME/.claude claude
stow -t $HOME/.config ghostty starshipPersonal shell scripts (better-branch, eat-trailing-whitespace,
osc52-copy). Stowed directly to $HOME/bin:
stow -t $HOME/bin binThe macOS branch of the zsh config adds $HOME/bin to PATH (the linux
branch already does).
Claude Code settings (CLAUDE.md and settings.local.json). Stowed to
$HOME/.claude:
stow -t $HOME/.claude claudeConfiguration for the Ghostty terminal emulator with platform-specific
splits (config, config_macos, config_linux). Stowed to
$HOME/.config (creates $HOME/.config/ghostty/):
stow -t $HOME/.config ghosttyGit configuration and aliases.
The git config uses an include directive to load machine-specific settings from ~~/.gitconfig.local~. After stowing, set up your email:
cp ~/.gitconfig.local.example ~/.gitconfig.local
# Edit ~/.gitconfig.local to set your emailLeiningen configuration for Clojure development with CIDER integration and useful aliases.
Container registry policy (containers/policy.json). Intended for
$HOME/.config/containers/policy.json; not currently installed:
stow -t $HOME/.config podmanStarship prompt configuration. Stowed to $HOME/.config (creates
$HOME/.config/starship.toml):
stow -t $HOME/.config starshipThe following packages should be installed to get optimal TMUX experience on MacOS.
brew install reattach-to-user-namespace
brew install pam-reattachConfiguration for ZSH shell with Starship prompt.