My dotfiles, managed with GNU Stow.
- Each top-level directory is a Stow package; its contents mirror the target tree.
- User-config packages stow into
$HOME(the default). system/is the one exception — it stows into/(system files under/etc) and needssudo.
That's the whole rule. There are no platform sub-namespaces: just install the
packages that apply to a given machine (skip macos on Linux; skip hypr,
makima, etc. on macOS).
# user config -> ~
stow -t ~ <package>... # e.g. stow -t ~ nvim fish hypr
# system config -> / (Linux only)
sudo stow -t / system
# re-link after changes / remove links
stow -R -t ~ <package> # restow
stow -D -t ~ <package> # unstowEdit files here and (re)stow — never edit the symlinked copies in $HOME
directly.
packages.txt— official-repo package inventory (install withpacman -S --needed - < packages.txt; not a Stow package).aur.txt— AUR package inventory (install withparu -S --needed - < aur.txt; not a Stow package).- Linux-only packages:
hypr,makima,voxtype,elephant,wireplumber,xcompose,rtorrent. macOS-only:macos. Stow only what applies. system/has its ownREADME.mddescribing its/etcfiles and which are live symlinks vs. reference backups.- Submodules:
emacs/.emacs.d,tmux/.tmux/plugins/tpm(rungit submodule update --init --recursiveon a fresh clone).