I wholeheartedly agree with this blog post. I believe someone on here yesterday was asking about config file locations and setting them manually. This is in the same vein. I can’t tell you how many times a command line method for discovering the location of a config file would have saved me 30 minutes of googling.
It would be amazing yeah, standardising all user config files in the $HOME, and maybe etc/ or an default, non usable, user profile to store the original versions, in case of a bad config or corrupted file would save so much time debugging stuff.
Like
$XDG_CONFIG_HOME
and$XDG_DATA_HOME
?Sadly, what we seem to have over and over is https://xkcd.com/927/
It’s getting better though
GoboLinux kind of solved that problem but it hasn’t been updated in years.
take a look at NixOS
Does the nix configuration file contain also the config files of the programs within it?
Mixed. Many folks use
home-manager
to configure their user environment withnix
, and you can specify config files there. However, escape hatches to use regular files not managed bynix
exist to make config tweaking faster. You can specify your config file contents innix
, which works well for server deployments, but for desktop use it usually ends up being a mix of seldom-changed config going in thenix
definitions, and other things that, say, revolve around GUI tools for config tweaking (eg KDE apps) continuing to do their own thing.I haven’t met one person who doesn’t use home-manager. Maybe that’s because most people I talk to use tiling window managers and stuff like that, where you define everything in text files.
You can see my config at https://github.com/n3oney/nixus.
PC, Laptop and aarch64 server configured in one place with shared components
https://github.com/n3oney/nixus/tree/main/modules/
The XDG Base Directory standard has kinda sorta been doing that; and I like it. Not everything supports it; and it’s not perfect, but at least it’s better than the wild west that application configs used to be.