- cross-posted to:
- linux@lemmy.ml
- cross-posted to:
- linux@lemmy.ml
This article seems to be well-meaning but contrasts with the de-facto standard way of storing dotfiles. The Linux Filesystem Hierarchy Standard is quite unambiguous in how it specifies that the purpose of $HOME is to store dotfiles.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s08.html
FHS also specifies that applications can store their dotfiles in subdirectories, and this is leveraged by other standards like the Freedesktop’s xdg-user-dirs spec to default to ~/.config
https://www.freedesktop.org/wiki/Software/xdg-user-dirs/
I’m not sure what’s the point of arguing against the standard way of storing dotfiles while basing the remarks on no standard or reference.
You’re right that that’s extremely unambiguous, but I still don’t love the idea that users don’t get to decide what’s in $HOME, like, maybe we could call it “$STORAGE_FOR_RANDOM_BULLSHIT” instead?
If anything in computing conventions implies “user space” it’s a global variable named HOME. And it makes sense that there should be a $STORAGE_FOR_RANDOM_BULLSHIT location too - but maybe not the same place? Then users could symlink the dotfiles they personally find relevant.
I know you’re not Linus, but, I just had to express that.
You’re right that that’s extremely unambiguous, but I still don’t love the idea that users don’t get to decide what’s in $HOME, like, maybe we could call it “$STORAGE_FOR_RANDOM_BULLSHIT” instead?
That’s basically what $HOME is is used for in UNIX: a place for applications to store user-specific files, including user data and user files.
https://www.linfo.org/home_directory.html
If anything in computing conventions implies “user space” it’s a global variable named HOME. And it makes sense that there should be a $STORAGE_FOR_RANDOM_BULLSHIT location too - but maybe not the same place?
UNIX, and afterwards Unix-like OSes, were designed as multi-user operating systems that supported individual user accounts. Each user needs to store it’s data, and there’s a convenient place to store it: it’s $HOME directory. That’s how things have been designed and have been working for close to half a century.
Some newer specs such as Freedesktop’s directory specification build upon the UNIX standard and Unix-like tradition, but the truth of the matter is that there aren’t that many reasons to break away from this practice.
This isn’t an argument against the standard way of doing things, it is an argument to follow the xdg standard, and use xdg environment variables, rather than creating a new unconfigurable directory in $HOME.
If anyone feels adventurous, give this little experiment a try:
- Create the top level hierarchy of folders in your $HOME
- remove write permissions for everyone from $HOME
That way, programs won’t be able to clutter your $HOME anymore and it’ll be easy to find any culprits
Will things fail to function if they can’t make their $HOME/.dumbfiles?
Terrible advice, do this in a VM as a lab but not on your main computer.
I did not frame it as “advice” though, did I? :)
Clearly it’s not an adventure for the faint of heart.
Somewhat related, at least on Linux and OSX, GNU Stow is a great way to manage dotfiles.
I use vcsh to manage my home directory - including but not limited to dot files. Written a number of posts on it over the years: https://phrye.com/tags/vcsh/
I prefer chezmoi