I recently stumbled upon a little program called GNU Stow. It’s a small util that follows the unix philosophy to do one thing only and do it well.
You can read the program description in their website, but long story short, it allows you to easily manage symlinks from different sources. It’s the perfect util to manage a dotfiles installation.
If you use macOS with homebrew, you can install it doing
brew install stow.
There are also several installation methods for different operating systems, or
you can compile it from source if you want.
What I like the most about it, is that you end up with a folder structure that makes sense to you. You can group your dotfiles by program, by responsibility or whatever you want.
You just need to create a
dotfiles folder in your
home directory. That
folder will contain one subfolder per each configuration group. For example,
if you have a config file for
neovim, you need to create a structure like
vim └── .config └── nvim └── init.vim
Then you run can symlink the config to your
home folder by running:
This will create the following links:
$HOME └── .config └── nvim └── init.vim
Remember that you can group them however you want, there’s no predefined
structure. You could gather config files under
editors or maybe
It will also refuse to symlink if the target file is not a symlink, so there’s no risk of overwriting files by accident.
I hope this is useful to you :)