RetroCode UK

Published Date May 16, 2020 Reading Time ~1 minutes RSS Feed Linux Command Line Productivity

Managing Dotfiles With Stow

GNU stow wasn’t originally designed to manage dotfiles, but it is an excellent tool for doing just that.

Just create a folder, for example dotfiles, and the usual git init to create a new repository. This will be your base folder to keep all your config files, and by using a repository, it affords easy backups of your set-up.

For example, to add vim to your dotfiles repository, try the following:

mkdir -p ~/dotfiles/vim
mv ~/.vimrc ~/dotfiles/vim/
cd ~/dotfiles
stow vim

The process, as described in the steps above, is to move your current config file (in this example .vimrc) to a subfolder in your dotfiles repository, and stow vim will symlink that file back to your home folder.

What stow is doing here is simply to create a link between ~/dotfiles/vim/.vimrc to ~/.vimrc.

If your application has multiple files within subfolders, this is the same process, but you also create the folders within your dotfiles folder, for example ~/dotfiles/.config/mutt and stow mutt will link the entire folder so you can manage all of your mutt files in one go. Important: If you do this for mutt, just be careful to not include any passwords or sensitive information in your repository.