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

I feel like making a side project to call out the pieces of software that do this unrespectful shit.
@yarmo Please do that! I'll happily contribute. What's the opposite of an "awesome list"…?
@yarmo I remember someome compiling a list like that on r/linux or r/archlinux
@yarmo that sounds like calling names of people not following freedesktop.org's stuff.
They are not "disrespectful shit", they just do it the old way. Maybe a nice, helpful attitude would make the world actually better! πŸ™‚
@yarmo hello
@thunderbird, you are great but 
@joel @yarmo I was just about to say exactly the same thing
@thunderbird - you're a culprit I'm afraid! (Firefox is too though)
@joel
@yarmo @thunderbird
Mozilla is old enough on linux that they can do whatever they want, like .emacs.d, I actually wish fish used a .fishrc instead of their .config/fish/config.fish
@joel
wait I just realized I could just symlink .config/fish/config.fish to .fishrc
@yarmo
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. https://lemmy.ml/post/31190
Keybase <-- stay away from it, seriously. - Lemmy

# Keybase, we have a problem. The Keybase software and service are both littered with severe bugs that create a security and legal nightmare. Here are some of the issues: * Deception: Their software is a server masquerading as a client app. They simply call it an β€œapp” on this page: <a href="https://keybase.io/docs/the_app/install_linux">https://keybase.io/docs/the_app/install_linux</a> but it’s actually a surreptitious <em>server</em> that runs continuously in the background as a daemon. * Deception: Tor mode serves only to mislead users. The tool actually surreptitiously phones home to the central server of Keybase, Inc. without using Tor at all. This is not the usual DNS leak that Tor users are accustomed to, the connection itself takes place outside of the #Tor network. It’s not incidental. This is in their <em>privacy policy</em>: β€œWhen you access or use the Service,we automatically collect and store information about your browsing habits and your use of the Service (β€œUsage Information”),including: a. Your computer’s IP address… f. Session times and lengths” * Malice: Keybase is designed to reverse users’ edits to the <code>run_keybase</code> script. So users who try to patch the leaks by introducing torsocks wrappers in that script will learn who really owns that tool on the next upgrade or downgrade, when the script is overwritten. The overwriting is also silent, so some users will be unaware when their traffic becomes exposed. This also means adding firejail sandboxing to that script will also be reversed. It’s no accident, they enforce it in the ToS that you agree to: β€œWe may automatically check your version of the Software. We may also automatically download to your computer or device new versions of the Software.” * SoftwareFreedom: The javascript on <a href="http://www.keybase.io">www.keybase.io</a> is non-free software (it fails the #LibreJS test). * Malice: There are so many security bugs that keybase developer Jack O’Connor (β€œoconnor663”) is outright deleting some of the more embarrassing security-critical bug reports. This censorship is the most malicious variety because it blocks other users from becoming aware of pitfalls in software that they have trusted. (Hence this article, which is out of reach for Jack O’Connor to censor) * Malice: The login webform is coded as a pop-up to force users to disable their ad blockers. * Malice: Users who are wise enough to distrust the keybase server have no way to receive messages that are collected through the <em>Keybase Chat</em> mechanism. * Deception: People who send messages using <em>Keybase Chat</em> are not given feedback on non-delivery. So humans are actually composing messages that are silently black-holed! Nothing is more reckless and irresponsible than a messaging service that fails to deliver without telling the sender. What’s even more perverse is that non-delivery is not a rare event-- it’s simply a matter of the recipient not running their junk software. So it’s designed to cause widespread harm, the scale of which that could provoke a class action. So they’ve actually written a clause in their ToS to attempt to block class actions: β€˜Any Claim must be brought in the respective party’s individual capacity, and not as a plaintiff or class member in any purported class, collective,representative, multiple plaintiff, or similar proceeding (β€œClass Action”).’ They also have: INDEMNIFICATION, LIMITATION OF LIABILITY, ARBITRATION, and NO WARRANTY clauses to block all actionability of their malice. * Bug: Further exacerbating the previous two issues is the fact that the β€œKeybase Chat” button cannot be disabled. Users not running the dodgy software are still forced to have this blackhole-feeding mechanism on their profiles. * Hypocrisy: Keybase sends all notifications in-the-clear as plaintext despite having the recipients pubkey and having built their own software to use it. Keybase, Inc does not eat their own dog food. * Bug: If you disable the (insecure) notifications and you are not running their (insecure) software, then you have no way of knowing that someone has tried to send a message. So human-written messages are not only black-holed, but both sender and recipient are unaware of the non-delivery. * Bug: The Keybase installer creates the directory β€œ/keybase” with all world privileges (and yes, they root it in β€œ/”). The keybase developers have said they believe that mounting a filesystem to that directory blocks access to it (so they are unaware of bind mounts). * Malice: advertising is opt-out, not opt-in. From their ToS: β€œwe may send you communications…promotional information and materials…We give you the opportunity to opt-out of receiving promotional electronic mail from us by following the opt-out instructions provided in the message.” They are encouraging users to use an unsubscribe link in a spam message. Informed users know is a bad idea, as it signals that an e-mail address is actively in use. * Bug: Keybase does not sign their e-mail messages, thus exposing their users to phishing attacks. Keybase, Inc again demonstrates they don’t eat their own dog food. * Deception: They say files are end-to-end encrypted, but this legal loophole gives them immunity for any shenanigans in that regard: β€œWe collect and store files and information that you transmit to other parties using the Service or that you elect to store on the Service.” * Deception: This appears on the Keybase website: β€œThe Keybase website is ok, but the Keybase app is faster, safer, and more powerful than doing it in a browser.” When they say the β€œwebsite is ok”, it’s a gross oversight to imply that you can rely on the website alone when doing so entails forfeiting access to inbound messages (for which the collection cannot be disabled). And when they say the β€œapp is safer”, it’s a lie.

@yarmo Too complicated. I just ask for sudo so I can put my data into the root directory :P
@yarmo I thought I was the only one bothered by this.
@yarmo
looking at you, #emacs
@tykayn @yarmo *blushes* go away you baka!

@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
XDG Base Directory Specification

@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 ~/.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.

@yarmo

...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 from what I gather you haven't encountered the egregiuos crime that is the "snap" folder yet :D
@yarmo @antanicus Having a top level ~/snap directory was annoying me too last week, so I figured it has annoyed someone else as well. The simplest (non-ideal) solution I found was to simply hide it.
  • Create a file ~/.hidden
  • Inside it, add 'snap' (without the quotes) on a line by itself.
  • Save the file
Now opening Caja (the Ubuntu Mate GUI file browser) no longer shows the ~/snap directory. Works with Nautilus and others apparently.

I was trying to declutter the GUI file system view and this has that effect, although moving ~/snap into ~/.config or ~/.local/share would be better.
@yarmo I'm glad it's not just me, this makes me so angry. Though I've kind of given up my crusade against it now... I just counted 47 dotfiles in my home folder that shouldn't be there. FORTY-SEVEN FFS!!! 🀬
@caesar I don't even want to count πŸ˜“
@yarmo My simple solution to this: I have a directory in my $HOME which is my actual home. So: Β΄/home/fishidwardrobe/fishidwardrobeΒ΄ I put all my files in there. Now I don't care what crap turns up in $HOME.
@yarmo xdg-ninja is a great tool to help you fix those pesky applications which use envars to change the location
@yarmo so, may be sometime unification will be done and we'll see lot of folders in only one.
@yarmo I feel like this is part of a larger trend of M$ bullshit patterns getting brought into Linux.
@yarmo same thing on Windows. So many applications that have never heard of %APPDATA%. For their application data.
@yarmo I concur very enthusiastically!!!
@yarmo As long as it's prefixed with a ".", I really don't care much. What's worse is those without in your home, though, especially when there's no option to set that location to something different. THAT sucks.
@yarmo admittedly some apps make a visible folder because they think it's advertising. But I still wish that these things weren't hidden. Resetting an app's settings to default ought to look like "open up the Preferences folder in my home directory; drag the file called TroublesomeApp to the rubbish bin" (and similarly for caches &c) and that can't happen if everything is hidden away in invisible techie dot folders.
@yarmo Similar vibes to Windows games saving data in the Documents directory. Ah, yes, these save games are documents, makes perfect sense!
@yarmo Cool, but as you were writing this, a program was `touch ~/garbage` just now. lmao
@yarmo ah so it's not just me who noticed that his home directory is free for all for most of the apps
@yarmo I'm grateful for using Flatpak apps, and generally it doesn't (although there are exceptions)
@yarmo while it's bad practice, you also don't want to break everyones installations with that change. So You'll need fallback logic and at least test if the home folder has something in the old path.
@yarmo PT: yeahhhhhhhh, leave the home alone. And don't .hide yourself. You are not .git
@yarmo nothing makes me lose faith in a project's maintainers quicker than a NOFIX on the "please move the app config folder" issue, like it isn't that hard to create a migration between folders (or better, prefer the new XDG dir folder and fallback to the older folder location). even worse is when they lock discussion when people say how ridiculous the issue/bug closure is
@yarmo Folders? Hah. I wish. I've ran across software which bluntly made dozens of .files right in my home directory...
@yarmo That's not very freedom of you, not letting them place folders in your home directory all willy nilly.
@yarmo Should apps have direct access to the file system? I think no, others think yes. Both have pros and cons.
@yarmo We and @tenacity respect your preference.
@yarmo @tenacity Well, maybe wait for Tenacity 1.3 to start development so you can try it out. Saucedacity respects your preference, though.

@yarmo
meanwhile electron apps put their cache in your .config, I used to manually move it to .cache and symlink it back

.config/Discord/Cache -> .cache/discord

@yarmo Windows apps be like "gimme admin rights so I can put my stuff in C:\CompanyName\. No, it cannot go anywhere else."
@yarmo I believe firejail can fix this https://github.com/netblue30/firejail
GitHub - netblue30/firejail: Linux namespaces and seccomp-bpf sandbox

Linux namespaces and seccomp-bpf sandbox. Contribute to netblue30/firejail development by creating an account on GitHub.

GitHub

@yarmo +9001%

EVERYTHING should be under $HOME/.config/$APPNAME and never just under $HOME!

Even CLI tools and shells should do that!