XDG All the Things or how to bring sanity to your $HOME
Apr 3, 2021
If you are like me, you like to keep your $HOME
clean. I am not talking about my flat, though, which is pretty tidy thanks to my wife 😏.
I am talking about the home directory on UNIX like system.
The number of dotfiles (e.g. .bashrc
) dumped in $HOME
is just bonkers. Somehow $HOME
has become the dumping ground for settings, caches and custom data for pretty much every app and cli out there.
Before moving everything to a dedicated config folder, I had 120 such dotfiles (most of which I have no idea how they got there).
The point is that $HOME
is a place that I, as the user, want to control.
Fortunately, there is a solution to this problem. Adopt the XDG approach/convention to manage these auxiliary files.
The XDG config specification sets out where config, cache and data for an app/cli should be placed, such that they do not pollute the $HOME
.
The ArchWiki maintains a list of instructions on how to set up your environment such that many apps conform to this spec.