The template of this meme is that of the man who cheerfully points his hand at a butterfly, asking “Is this a pigeon”?. In this meme, the man has been covered with icons of the applications IntelliJ, VSCode, Chromium and Signal. The butterfly which he points to is overlaid with the caption “.config”. He asks “Is this a trash can?” At the bottom of the image, we see the command du -sh
executed on the directories .config/chromium/
and .config/Code
, yielding file sizes of 1016M and 83M respectively.
There’s a dedicated 10th circle in hell for this people. As someone who runs a
root-on-tmpfs
system, PLEASE document which dirs your application is using.It is a total pain, specially with non standar ones.
But tbf there are a lot of Linux devs who neither have read a single line of any Linux standard API.
XDG_DIR, Portals, Secrets, D-Bus, the Desktop file spec, Appstream… are there for you to read. 🥰
So much this. It’s like these clowns don’t read the XDG directory spec and think
$XDG_CONFIG_HOME
and$XDG_DATA_HOME
are interchangeable, and even that cache files can be in either or both. No, one directory you need to backup for when things go sideways, and the other can go to /nev/dull.I’m not a fan of
~/.local/share/
being the data directory (two directories deep seems stupid), but it’s definitely where regular data belongs.Never mind developers who, in 2025, still think their project is special enough for a
$HOME
dotfile/dotdir or - somehow worse - those who put$XDG_CONFIG_HOME/<weird-name>/subdir/[subdir/]
. The latter strikes me as well-meaning Windows developers trying to follow best-practice-like-Microsoft-does, but it makes my teeth itch.Rant over. :)
Never mind developers who, in 2025, still think their project is special enough for a $HOME dotfile/dotdir
Well, Firefox is pretty special 🤡
Windows developers trying to follow best-practice-like-Microsoft-does
I think the best practices on Windows are pretty similar to Linux, other than Windows usually using title case whereas Linux usually using lowercase. There’s bad developers on both platforms :)
Windows equivalent to XDG_CONFIG_DIR is %appdata%, which is the roaming AppData directory.
I was thinking more of one product companies using a
$XDG_CONFIG_HOME/Boop Snoot Partners, Inc/<Software Name You Remember Installing>/
convention, which seems to be the norm insideAPPDATA%
.But I take your point. 😊
I see that in some cases on Linux, for example JetBrains IDEs use paths like
$XDG_CONFIG_HOME/JetBrains/Rider2024.1
. I agree that it’s more common on Windows though!I don’t mind it with companies that produce multiple products, as nesting them does make sense.
But for one-hit-wonders it’s a bit… 😬
Better than dumping into ~/
Archwiki has a huge list of apps that do this with instructions on how to force them to not do this. You might find it useful.
Personally though, I’ve given up on wrangling stubborn apps and just use flatpak and docker for everything. It can’t crap in your ~/ if it doesn’t have access to it!
I really need work on better use of containers
I don’t get why so many programs do this. This is ridiculous
Often they were created before the XDG spec was widespread, and haven’t been changed for backwards compatibility reasons or because nobody’s been willing to change it.
It gets worse, when I was doing a refine of a Mistral-7B, on both the Linux and windows rigs the default location was somewhere on my OS drive in either %appdata% or some .config/.cache bullshit which stored the entire LLM along with all checkpoints and whatnot.
Nutter. My C drive on windows is a 120GB, all my programs are on my Q drive in software RAID. With Linux I follow the same principle, all heavy files are on a separate partition.
Why is separating the OS with files necessary? I don’t think large files slows down the OS anymore, because of SSD.
It’s not necessary, just really convenient when your OS breaks
Okay I prefer to use FDE for security, especially on laptops, so my data recovery is never going to be trivial, yet with a live environment, also not too difficult.
Because it makes reinstalls really easy. You can just nuke your OS but everything else remains there safely.
For
.config
it isn’t as important to me, but putting things that can be re-created in.cache
(well the proper environment variable that defaults to.cache
) is very nice because I don’t need to back up all of that junk.But it wouldn’t be unreasonable to put something like
.config
in a git repo, and storing full history for large and frequently changing files is a waste of space if they aren’t really “config”.You could just add an exception to not backup .cache
The point is that many programs completely ignore
.cache
’s existence — when programs do actually use it, adding a backup exception is trivial, but having to manually find what’s actually cache in.config
(or, even worse, finding one SQLite database with the config and cache) complicates it.
I like how electron shit’s “configurations” are also trash
Apps I write put config files in
XDG_CONFIG_HOME/appname/
, which is usually~/.config/appname/
. What’s wrong with that?1GB of files is not configuration.
IntelliJ IDEA runs on a jvm right not a electron app??
I think it might still be dropping executables in .config, stuff like the JDK or even its own software versions
Well dont use chrom*
I use ungoogled chromium, but only for sites that absolutelly don’y wanna work on firefox.
I’m surprised. I haven’t had a website not work with Firefox for a long time. I haven’t even had to install chromium as a backup in almost two years now.
I’m taking an online based college that makes heavy use of some heavier apps like web based virtual machines that function as ‘lab environments’ for development assignments. These refuse to function unless I’m in chromium of some kind. Same with the online based proctoring tools the school uses when you take tests n stuff - chrome is the only browser that can be used, and I have to specifically use a windows device 🤢
Always fun to see what I’ve been “missing out on” in the chrome experience, when I’m forced to use it. Man, the Firefox UX is a dream compared to chrome!
Really hoping on that FOSS browser that’s on the horizon! Ladybird, I think it’s called? Hopefully it won’t be shit! 🤞
The signal community should band together and write a signal client that doesn’t use the waste of space called electron. There is a rust library for signal and slint for cross platform UIs. Slint is even working (slowly) on mobile targets
There already is one called Flare. It uses rust IIRC.
Non-flatpak🤮 link: https://gitlab.com/schmiddi-on-mobile/flare
What’s wrong with Flatpak? I like the separation of system packages with the system package manager, and user-level random apps on Flatpak.
If you like it then use it, but let’s not pretend everyone else likes it and link to Flathub instead if project site.
Yeah 100% agree you should link to the project site, not Flathub.
Well you do use files named chrome.css, as Firefox based browsers have their style css in that.
Fun fact: Unrelated to the browser of the same name, it’s the “window chrome” of the browser