Today I learned about the tool GNU Stow, a free program that helps with managing symbolic links on your system.

What does that even mean?

I store my user configuration in a dotfile.
Using Git, I can synchronize my settings across different machines.
Now I have a backup, even if I lose my computer, or it breaks.

So far, I’ve used symlinks to create a link on my machine to the central git repository.

But I learned about a great utility called GNU Stow that helps with managing dotfiles. Stow makes neat symbolic links in the right location.

You can easily pick and choose which configurations you want to sync.

So, let’s say your dotfiles repository looks like this:

$ tree -a ~/dotfiles
├── bash
│   ├── .bashrc
│   └── .bash_profile
├── kitty
│   └── .config
│       └── kitty
│           └── kitty.conf
└── vim
    └── .vimrc

Then you can use stow like this:

stow bash
stow kitty
stow vim

You can find detailed explanations here:

Thanks to Sandra Parsick and Georg Berky for introducing me to this tool.