Skip to main content

TIL: GNU Stow

I started my first job a month ago. Until now I didn’t care about managing my configs because I had a single workstation. This has now changed and I wanted to reliably keep track of my preferences for various programs. I thought of keeping them in a git repo for easy version tracking and backup purposes1. The only missing point was a mechanism to use them in a managable way since now they were kept in a separate place.

I found GNU Stow that fits my needs perfectly. It allows maintaining symbolic links in a natural matter, just like if you were installing a package. This way I can just update the repo with configs and there’s no need for me to manually keep track of any changes. The only time I have to do something more is when I add and want to use a config for a new program.

Stowing configs is simple:

$ stow some_dir/ other_dir/ yet_another_one/

By default it installs the files one directory above the current one, hence it’s easier to use when you keep the source config directories in a folder directly in your $HOME.


  1. When I’m editing this post before publishing in 2022 I still use the same base I created back then. It’s been revised and made public since then on my github↩︎