my favourite part is Steam throwing in a symlink, a broken symlink, and a directory of 4 files and 7 more symlinks that all point to a more reasonable point in ~/.local/share/steam/
Haha you just reminded me of that damn flashing broken steam sym link in my home folder, it's been there for years and I've yet to investigate or do anything about it.
It's one thing when they have legacy hardcode mountains preventing a standardisation, but I really dislike developers who just disagree with the standard and take away the choice as well and justify it with some made up problems with that standard.
The Windows equivilent would be instead of putting application data in the AppData folder, it throws it in Documents, My Games, or just in the home folder directly.
Most software on Linux is configured to place their config files in ~/.config. Some others, like the ones in the pic, just dump them directly into your home folder.
Many applications have configuration files. Historically these files were placed in your home directory aka "on the floor". The variable mentioned defines a directory where these files should go. Many applications ignore this.
$XDG_CONFIG_HOME is an environment variable that programs can (and should) read to determine the location for storing dotfiles (config files, kind of). Not reading (or caring about) the environment variable, and not adhering to the default of /home/username/.config/ results in them ending up in the home directory.
So in linux you have an extra directory just for configuration files/directories wich often start with a . (Dot) (that's why they are calld dot files). But some applications dont use that directory but rather just dump them into your user directory, wich causes it to get cluttered with files wich should be put into the ".config" directory
In theory this issue can be solved with LD_PRELOAD trick. E.g. redirect all/most/some fopen calls to "$HOME" to some other directory. But before I try to tackle it myself: is there already a similar solution like that?
I love you all very much but just please be aware that "the floor" is literally where the files are supposed to go, according to the spec. I don't like it, you don't like it, nobody likes it. But that's why it's happening.
Relevant section quoted for the lazy:
User specific configuration files for applications are stored in the user's home directory in a file that starts with the '.' character (a "dot file"). If an application needs to create more than one dot file then they should be placed in a subdirectory with a name starting with a '.' character, (a "dot directory"). In this case the configuration files should not start with the '.' character.
You know everything on that site was written in 2004 or earlier, right? That hasn't been the relevant spec for a long, long time now. We use xdg for that now. Configs go in xdg_config_home.
They probably just found an image of a pizza delivery guy and fitted it for the meme. I am not aware of any memes of pizza throwers other than Walter White