3 ms·
Every software that follows XDG-basedir stores config in ~/.config if the env var isn't set. Imagine you have program "foo" which has config, cache, and so on.
by me-vs-cat 3y ago
Every software that follows XDG-basedir stores config in ~/.config if the env var isn't set.
Imagine you have program "foo" which has config, cache, and so on. What XDG-basedir env vars can you set to make it use ~/.foo for all of that? If you try, then because software following XDG-basedir probably doesn't anticipate that XDG_CONFIG_HOME and XDG_CACHE_HOME might have the same value (and because your time is more valuable than auditing the code to find out whether they did anticipate this), you are left with .foo/config, .foo/cache, and .foo/local.
You have created a new "home", and, more importantly, you disallow "foo" from ever spawning a separate program that also uses the same XDG vars. Spawning programs is rather a central Unix principle if you have many tools that each do one thing well.