Dear Linux desktop apps, you have full authorization to create a folder in my ~/.config directory, you are even invited to stuff your data in my ~/.local/share directory, and let's not forget about that ~/.cache y'all! Wunderbar! Much freedom!

So, now, please repeat after me:


Thank you kindly

I feel like making a side project to call out the pieces of software that do this unrespectful shit.

@joel @yarmo I was just about to say exactly the same thing
@thunderbird - you're a culprit I'm afraid! (Firefox is too though)

There use to be some XDG environment variables if I recall correctly…

@joel @yarmo No app has gone as low as #Keybase, which took the liberty of creating “/keybase” (yes, that’s in the ROOT folder), ultimately taking the gold in simultaneously demonstrating the incompetence, arrogance, & exaggerated self-importance of those developers.

@koherecoWatchdog @joel @yarmo They're the worst. Their first app did that as well. It was supposed to simplify GPG public key sharing. They modified the key by adding tags to it, not only without asking permission, but without even telling you. I've literally advised groups not to use their software because they so thoroughly disregard basic standards.

@FoolishOwl @yarmo @joel I took them seriously at first b/c I thought #Keybase was just a key exchange/ID management service that gave a web client means for those w/out pgp to contact me. But it turned out that was just a foot-in-the-door shenannigan as they tried to become yet another full blown social media platform. The devs lacked the security street wisdom that was needed.

@yarmo It drives me batty that Zotero, which is otherwise such a fantastic program, does this. You can override it, but you've got to get into advanced configs to do it.

@pence I opened a post on their forums years ago about that 😭.


@yarmo My worst offender is Syncthing. Maybe its just me but for the life of me I can't figure out how it's supposed to work.

Every time i just want it to sync a folder from desktop to phone, it ends up creating brand new folders on both. Its so frustrating, and I just keep reminding myself " 😖big ooof but at least its free and open source" lol

@iridescentFluid in Syncthing's settings, you can set a default directory in which to place new synced folders. So while the default is "bad", it can be configured to your liking.

I say "bad" because you actually need easy access to Syncthing's data, that's its whole purpose. But I suppose ~/Documents/Sync or something would be a better default.

@yarmo I suppose I may be using it wrong, I really just want folder A to to have all the files folder B does. That is, I dont want new folders anywhere, I just want one folder to be a mirror of the other, like rsync.

I guess my biggest complaint is that the documentation is super confusing when all i really just want a quick and easy file transfer/sync app. It ends up being that each time i try to get that done, Syncthing just utterly confuses me since i didnt bother to memorize the GUI.

When you create a sharing, you can select the (existing) folder to share on your source device.
Then on the target device, when you accept the sharing, you can also select the (existing) folder in which you want the content to be synced.
I miss a browser to find these folders as you have to type /home/me/my/folder and use the auto-completion to find them. But it works (really great)!

@coq @yarmo When i was on KDE I used kdeconnect-cli for local file transfers. Are there any small cli apps for this you might know of? I've been trying to avoid pulling a bunch of K libraries on my current system, but I would like something simpler and more semantic than syncthing.

I heard KDE Connect has been ported on Gnome. That's all I known.

@iridescentFluid You can decide where you want the folder to sync to when you accept the request from the remote system. That's one of the advantages of Syncthing I think, it's not bound to one folder that everything else has to be relative to.

@harald indeed. ~/Sync is only a default sync folder it uses when first started. You want to just unlist it from the u and delete it. I think it would be better if it made no initial folder, since it can start up perfectly fine without any folders set once you kill ~/Sync in it's ui.

@yarmo I swear there was an XDG-related site that already tracked apps that violated the directory specifications, but I can't find it again.

edit: found it! it was actually the arch wiki

@yarmo One of the reasons I've not gone full XDG-reconfigure to get my home directory under control is the inevitable frustration when so little software would respect my configuration choices.

I'm getting too old for IT.

@yarmo Please do that! I'll happily contribute. What's the opposite of an "awesome list"…?

@yarmo let's not forget stepping into a folder of ~/GNUstep...

@tychosoft @yarmo I wish I could hit that star button below this Toot more than once.

@yarmo Honestly, why even do they have access to that directory (or to any other file that doesn't belong to the application, and wasn't explicitly selected by a user), where also all the passwords and hashes and such are stored?

@deshipu @yarmo The 'app store' or mobile-phone-os approach seems like its catching on.
We need a desktop OS that treats non-core software like a potential threat, rather than an obviously-trusted insider.

@deshipu @yarmo Only sort-of ... Qubes has containers for "a task", and IIRC you can add whatever software you like to that task/domain. (not sure what terminology they use, but each domain is basically a VM+OS, not protected apps)

@yojimbo @yarmo I've heard somewhere that originally UNIX was not supposed to have the open() call exposed to user applications -- you could only manipulate the files you got as stdin, stdout and stderr. Then you could add an open() call that required user interaction to select the file -- handled by the system, not the program. It would solve a lot of problems. Unfortunately, the UNIX security focused on protecting the mainframe from the students that used it, not them from each other.

@deshipu @yojimbo @yarmo I'd say SubgraphOS is closer to that than Qubes is. Qubes is using containers whereas Subgraph uses sandboxing. Linux can already do all that, it just that we're lacking the UI to manage that.

@rodolphe @deshipu @yarmo Cool, I hadn't seen SubgraphOS before.

My first thought is that it's combining security-from-applications with anonymity-from-the-internet using Tor, and I'd rather concentrate on the app security end. looks like that piece, I'll enjoy reading about it ...

@deshipu @yarmo apps running in flatpack are like this.
If you want to open a file from the host, you get the system file picker.

@yarmo Too complicated. I just ask for sudo so I can put my data into the root directory :P

@nm0i @tykayn @yarmo Since version 27.1 (in 2020) #Emacs will use a configuration in ~/.config/emacs/ .

Hot take: putting stuff in ~ is no different than dropping it in ~/.config or ~/.local/share. It's just moving the clutter elsewhere.

I hate having to figure out where a given app stashes its data.

@me @yarmo It's not strictly about "reducing overall clutter"; it's obvious there will be the same amount of folders no matter where they're stashed.
It's more about easily knowing where a program will stash its config, cache, data, etc. If, hypothetically, every program followed the base directory specifications, your home folder would have little to no hidden files other than .config and .local, and you would know to go to .config to change settings for a given app and .local to view data for a given app
and just for reducing base home directory clutter as well I guess

@yarmo There's one app that immediately creates a folder in my home directory (with a space in the name) before you even get a chance to look at config options.

I can't trust an app that's designed with such disdain for the user.

@yarmo technically, the user can tell where to put the files by using environment variables like $XDG_CONFIG_HOME (~/.config is just the default value). So app not using these are not respecting the user.

@yarmo same for Windows. Put it in %APPDATA% or - if you must - also in %USERPROFILE%/.config

@yarmo A site educating developers about this would be really useful. Case in point: I started putting data for our apps under ~/… because I saw quite a few other apps doing similar stuff (placing data/config into hidden folders off of ~) and thought it was a convention when I first started releasing CLI apps. Now I know better. Such a site would have helped.


...I'd like to add one exception: IFF the software asks the user first and asks for a pathname (with a ~/.* default).
*sometimes* I'd like to have thoses things where I see them

@yarmo Same thing for Windows – app developers love to store data everywhere, but uninstaller doesn't delete this data 🤦🏻‍♂️. Eclipse IDE especially pissed me off, because it must be removed manually, and there's no uninstaller 😤.

@yarmo I'm manually patching apps to stop polluting my home dir.
This is incredibly anoying…
Sign in to participate in the conversation

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.