Skip to content

Stow Workflow

The repository is a GNU Stow package root targeting ~/. Each top-level directory (zsh, neovim, starship, hypr, scripts, …) is a stow package whose contents are symlinked into your home directory.

Apply packages with dot stow (or dot update, which refreshes stow). Do not run GNU stow directly from the repo root: dot applies the correct adopt / no-folding flow and the public-then-private ordering.

Terminal window
dot stow # stow public + private
dot stow --public # public only
dot stow --private # private only
  • Lays down public packages first, then the private overlay from ~/.config/dotfiles-private.
  • Stows the Hypr package with --no-folding and creates/repairs the ~/.config/hypr/host symlink for the active host.
  • Adopts existing files where needed so a fresh machine does not clobber stock config.

.stowrc sets the stow target and ignore rules. Files that should never be symlinked into ~/ are ignored there, including top-level docs, the dot/ source, the docs/ site, and repo metadata. Keep .stowrc ignore rules in sync when adding root-only files.

dot doctor runs a dry-run restow to detect drift, alongside its other checks. Run it after changing stow packages to confirm nothing is broken.