Files
dotfiles/zsh
2026-10-18 23:35:17 +01:00
..
2026-10-18 23:35:17 +01:00
2026-10-18 23:35:17 +01:00
2026-10-18 23:35:17 +01:00
2026-10-18 23:35:17 +01:00

zsh

GNU Stow package for my zsh setup. Stowed from the repo root with the .stowrc defaults (--dotfiles --target=$HOME), i.e.:

stow zsh        # stow (idempotent, safe to re-run)
stow -R zsh     # re-stow after adding/removing files in this package
stow -D zsh     # unstow

Layout

In this repo Becomes (symlink)
dot-zshrc ~/.zshrc
.zsh/alias.zsh ~/.zsh/alias.zsh

Other dirs under ~/.zsh/ (e.g. local/, completions/) are not managed by stow — they are plain host-side directories and never touch this repo.

Host-local config: ~/.zsh/local

~/.zshrc sources every *.zsh file in ~/.zsh/local/ at the end of the file, in alphabetical order — so anything there can override aliases, PATH, env vars, etc. set earlier.

This is the place for host-specific, non-shared config: business/work inits, private env vars, machine-specific paths, per-host aliases and functions.

The directory is not in the repo — it exists only on each host, so after cloning + stowing on a new machine, create it once:

mkdir -p ~/.zsh/local

(The sourcing loop in .zshrc tolerates the directory being missing.)

Notes

  • Editing existing files (.zshrc, alias.zsh) needs no restow — they're symlinks. Only new/deleted files in this package require stow -R zsh.
  • zinit, Powerlevel10k and the plugins auto-clone on first shell start; first launch may take a minute.