Hacker News new | ask | show | jobs
by bzxcvbn 1371 days ago
I just wish that Windows app would use the filesystem as it's meant to be rather than just pretend "dotfiles" get hidden on Windows. Just put your data in $env:APPDATA, damnit! Don't clutter my home directory with "hidden" files that aren't really hidden! Even MS tools do it, it's frustrating.
5 comments

Same thing with Linux though, my home directory is cluttered with dotfiles and hardcoded paths because people either haven't bothered to look for a standard (XDG exists) or give you the middle finger and choose to do whatever they want anyway. Snap is probably the worst of these products.

You're pulling in a 400 megabytes of dependencies the second you touch cross platform GUIs, a library to automatically create and pick the right appdata folder really isn't that inconvenient at this point.

If at least all new config files etc would be put in ~/.config/ et al, but there is still new dotfiles being dropped in ~.

Looking at you, wget and your .hsts-something file.

I went through https://wiki.archlinux.org/title/XDG_Base_Directory#Partial and set all the bullshit env variables in my .profile to force some programs to comply (not that it fixes everything).

I've seriously considered writing a system LD_PRELOAD that catches resolved paths and redirects them to a directory of choice.

Good news! This already exists as libetc[0]

[0]: http://ordiluc.net/fs/libetc/

Amazing, I love it! Thanks for the link!
I like this! It the type of chaotic good we appreciate on HN ;)

But I think it would be easier if you instead sent MR to offending projects

Sadly, most of the software I use already has a link in the list to an issue someone made about XDG support and often developers don't care, actively choose not to respect the user's preferences (snap, for one) or don't want to change the location out of fear of breaking compatibility. Those MRs would probably become forks in practice.
Don't get me started on the wasteland that "My Documents" has become, given 20 years of incompetent developers.
The "Documents and Settings" for user home directories used to annoy me because its too long to type and has spaces. Thankfully the now changed it to "Users". There was a time when some old installers wouldn't parse "Program Files" correctly because of the space. Also "ProgramData" is inconsistent with the others because no space. But that folder is now hidden anyway. No consistency at Microsoft.
> There was a time when some old installers wouldn't parse "Program Files" correctly because of the space.

That's one of the reasons why it had a space. If you wanted to stop using the DOS APIs and get off of `PROGRA~1`, you need to handle spaces properly. Having a bunch of the standard paths (see also `My Documents`) include spaces meant that software vendors shouldn't have been able to get away with using Windows filename APIs without supporting filenames with spaces - everything would obviously break almost instantly.

Doing that, Microsoft made sure that there was no reasonable way for an ISV to claim that they either forgot to test that use-case, or weren't going to support it, when every Windows system in existence relied so heavily on paths with spaces.

Another bit of incompetence that really winds me up is:

software that you can specify the install location for, so it installs a update manager at that location but then always installs the actual programs under the C drive

What the heck, I've never seen this. Hey ISVs, if you see this conversation engage me to consult on how to make your installers not drive people like us up the wall! ;)
IIRC Visual Studio technically lets you install in a non-C location but 80% of the disk usage ends up on C: anyway.

Microsoft decided at some point people hard drive were plenty big so who cares? Unfortunately SSDs came along and for quite awhile space was quite tight on them!

To this day, I still have a few applications that store important user configuration files via hard-coded "C:\Program Files\Publisher\AppName" path names rather than literally anywhere else.
Does anyone actually _use_ My Documents for anything legitimate these days?
I just use C:\Home\(my username)\ , where apps don't auto-create and leave theri junk. I guess the C:\Home\ isn't even necessary since I'm the only one using my computer.
>Just put your data in $env:APPDATA, damnit!

Sincerely: Hell no. Nearly everything (mostly Electron) nowadays wants to dump everything into %appdata% and it is infuriating.

I can never have enough space on C: anymore. I finally relented and bought and allocated an entire 2TB drive to just to C: on my newest machine because of "%appdata% All The Things" nonsense. C: otherwise doesn't need anymore than 100GB to house Windows and a few other system-related odds and ends.

%appdata% isn't even where All The Things(tm) should be going by default anyway, %appdata% is for storing user-specific program configuration data only. The Windows-provided default directory for program installations is C:\Program Files, and files resulting from program use should go in the program's own install directory or into an appropriate directory under the user directory (eg: My Documents) by default.

Windows allows full access to the file system and all the benefits that entails for a reason. Just ask me where I want the damn thing installed/saved rather than just shitting all over %appdata%.

Why does this frustrate you? Do you look at your home directory as a carefully-tended garden, and the translucent dotfiles are cluttering it up? Why are you attached to your home directory like that?

Also, this is why the registry was invented, but as we all know, that's a "bad idea" (because it's an old idea, which makes it bad, because being old makes ideas badder).

There is a great solution! Give Linux a try. /s

In all reality, very OS has their quirks, and I see this _all_the_time_in_Windows_!

My $HOME in WSL is also a wasteland.