My system configuration, managed with GNU Stow and bootstrappable from a bare machine via a single script.

GitHub

What It Manages

Structure

Each top-level directory mirrors $HOME:

dotfiles/
  nvim/.config/nvim/
  zsh/.zshrc
  tmux/.tmux.conf
  git/.gitconfig
  ...

stow -R -t $HOME <package> symlinks each one into place. The setup script backs up conflicts before overwriting.

Bootstrap

from-dust.sh takes a fresh machine to a working environment:

  1. get_packages.sh - Detects OS (macOS/Arch/Ubuntu), installs packages via the native package manager.
  2. install_externals.sh - Installs TPM and other tools that don't come from package managers.
  3. setup.sh - Stows all configs with dry-run conflict detection.