Like many Unix people, I have a slowly accumulating drift of dotfiles (and dot-directories) cluttering up my
$HOME
. It has recently struck me that a certain amount of these dotfiles are in fact a self-inflicted injury, by which I mean that they don't actually have to be dotfiles in
$HOME
and I could move them elsewhere if I wanted to. There are two variants of this injury.
The first variety is where I have simply made a file a dotfile in
$HOME
out of reflexive habit. There is no system-supplied program that expects to find it there; I have simply needed a file for some purpose and made it a dotfile because it seemed to make sense. For example, I have a set of X resource files that I made into dotfiles basically just because. Since it's my X startup script that loads them into the X server, they could perfectly well live in, say,
$HOME/lib/X11
under some set of sensible (and visible) names.
(Often there is some sort of vague link to something that was a necessary dotfile back in history.)
The second variety is where a program defaults to using a dotfile but this can be changed with a command line option and I already run the program in some automated way (through a cover script or the like). Here I can perfectly well change my automation to relocate the dotfile to some better place. There are probably a number of programs I'm running like this.
(Similar to this is things that can be moved with an environment variable, like
$INPUTRC
for
$HOME/.inputrc
.)
Certainly going forward I think my rule is going to be that I won't create any new dotfiles unless I have absolutely no choice. Relocating existing ones, well, I have a lot of inertia and my existing setup works, it's just got a massive clutter in
$HOME
that I can't see unless I do an '
ls -a
'.
(Why dotfiles are a bad idea is probably not necessarily obvious, but that's another entry.)
PS: what brought this realization on was building out a version of my environment for Cinnamon on my laptop . When I was copying dotfiles over to the laptop and working on them I started asking myself why they actually were dotfiles instead of being organized somewhere sensible where I could see them.