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:
👏 I 👏 SHALL 👏 NOT 👏 MAKE 👏 A 👏 FOLDER 👏 IN 👏 YOUR 👏 HOME 👏 DIRECTORY 👏
Thank you kindly
https://wiki.archlinux.org/title/XDG_Base_Directory#User_directories links the specification in the section above.
@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. https://lemmy.ml/post/31190
@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.
@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)!
@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 https://wiki.archlinux.org/title/XDG_Base_Directory#Support
@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 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?
@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.
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. https://github.com/subgraph/oz/wiki/Oz-Technical-Details looks like that piece, I'll enjoy reading about it ...
@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 Appendix: for extra points, dear developers, have a detailed look at https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@yarmo A site educating developers about this would be really useful. Case in point: I started putting data for our apps under ~/.small-tech.org/app-name/… 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 😤.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.