Managing Dotfiles With GNU Stow

Every so often I reconfigure the way I manage my dotfiles. There are all sorts of tools out there for this.

You get the idea. I never got along with any of them for one reason or another.

I’m now trying GNU Stow. Stow isn’t made specifically for managing dotfiles but it does the job pretty easily. I like it because I can easily organize things and install/update them as needed. To do this I group related dotfiles into folders in ~/.dotfiles. Like this…

Dotfile tree

Each directory contains the folders full of dotfiles organized the way I want them to be symlinked in $HOME. For example, I can have Stow create and symlink dotfiles for Vim by typing stow vim. This creates symlinks for both the .vimrc file and the .vim directory. I like grouping things by app, but I could also group by environment or machine if I wanted.

I like this because it makes sense to me and there’s not too much magic involved. Stow can be installed on macOS using Homebrew.

brew install stow

Here are a few articles that helped me get started.