AppData folder: am I a joke to you?
It’s frustrating when apps apply Linux-specific behavior to other platforms. No windows apps should be just throwing hidden folders into the user directory!
is it just me or these look a bit arbitrary
and id love to understand the logic behind whats inside /home cause it seems way too chaotic to me
Don’t forget about good ol
.minecraft
Nobody wants to develop a tag-based filesystem?
Developing it would be way above my skills but I’ve been fantasising about it for a long time. https://lemmy.world/comment/14344097
Same. I think it would be more friendly for end-users too.
Just sounds messy and impractical
What would that be?
Is there an easy to find style guide of how Windows would like you to use these things, cause I never found one.
Appdata, my documents, program files… Everyone seems to be all over the place
I believe the intent is to use appdata for user-specific configs and programdata for system-wide configs.
A lot of apps mess up local vs roaming AppData too. Roaming is for things that would make sense in a roaming profile (ie to sync to other systems) whereas local is for things that should only exist on this system (caches, machine-specific configs, etc)
Program files require admin
Appdata doesn’t
Documents doesn’t either but in theory it’s for files you want the user to edit or backup
Files and directories starting with a dot are hiden by default. You are aksing for this stuff if you manually unhide them.
Screenshot is from Windows where dotfiles aren’t hidden by default. And all the lazy developers that created those directories, didn’t bother to set the hidden attribute (See appdata is greyed, because it has the hidden attribute set)
To be fair, those Windows directories might have a space in them and break things anyway.
Directories can have spaces in their name on other platforms too. On Linux, you can set the XDG environment variables to whatever you want, so eg. instead of using
~/.config
for config files, you could use~/My Config Files
Is it a good idea? No. Should every well-behaved app handle it? Definitely.
There are a million reasons to access those folders. There are 0 reasons to leave them hidden.
only if you are a power user. for most people its just clutter in the way of the files they are looking for.
I realize that the OP is a Windows case, but I’d be rich if I had a penny for every time a savegame or config file is stored somewhere totally whack.
I’d be rich if I had a penny for every time a savegame or config file is stored somewhere totally whack.
Fun thing of you enable protected folders on windows: No app can get write access your Documents folder (or Images or Videos or…) unless you put them explicitly on the whitelist. That means you get to experience all the programs that are crashing or hanging or… just because they’re simply assuming that that’s the best place to dump data and because these folders always exist, you don’t need proper error handling in case you cannot access them…
Once Microaoft/Windows blocked access to the Root path of one of my drives.
That was surprising.IIRC the default for the root of the drives in Windows is an analog to Linux / which should be root:root 755.
The difference: When Windows displays the UAC dialog and asks you to elevate, it will (mostly?) just add your user to the ACL list instead of elevating your file browser while you access the drive. If ACLs are inherited from other folders below, that can have serious side effects…
I’m completely self-taught when it comes to Linux, so I have some obvious gaps in my knowledge. I’ve looked for good write-ups on how Linux folders are intended for use and been unable to find a good resource. Thank you for sharing the official standard name. Reading up on it now.
That’s respectable! But yeah, the FHS is something that’s surprisingly hard to find in-depth information about if you don’t already know about it.
I think this page from systemd (or this page from the arch wiki, if you prefer formatting) has a decent description of not only the FHS, but also the more standard user/home structures.
I continue to be impressed with the Arch community and their dedication to collecting information about Linux into one place. Props to everyone that has contributed! You really are helping users solve problems everyday!
People pretend Arch is a DIY OS but really it’s a lego kit with homemade instructions and sometimes a little capuchin comes up to help you put some of the pieces together.
I gave up using the default documents folder because a lot of game developers think that is a good place to store the saves
I hate it. I think a lot of devs who write cross-platform open-source software just use the %userprofile% automatic env variable to dump dotfiles in Windows since it can basically directly replace $HOME. In my opinion using something like %localappdata% is definitely preferred.
If you’re on a Windows box, the apps you’re calling out are assuming some level of FHS or XDG compatibility, neither of which are Windows things.
If you’re on a mac, macOS uses its own thing but can play well with dotdirs. However, you’ll find a mix of assuming XDG and weird macOS storage locations depending on how the tool determines storage location priority.
If you’re on Linux, there are too many standards.
Though, XDG says you need a .config/|.local/… fallback, if the variables are not set.
Are dotfiles a thing on Windows? It’s been a while since I used it.
No. Hiding files is still just an attribute.
Actually, technically, it’s two. Files marked as system files are treated as hidden as well…
With the downside that files marked as hidden on windows generally can’t be read by tools and scripts in the way you expect it.
They are in subfolders of C:\Users\Username\AppData\Roaming or \Local or \LocalLow.
Or in the program’s installation path in C:\Program Files or \Program Files(x86).
Or in a separate directory directly under C:\
Or the settings are handled via Registry keys.
Or whatever the fuck Microsoft Store apps do.
Or any combination of the above.I remember that much lol. I should have clarified, I was trying to ask why are there dotfiles in the screenshot
Hey, don’t forget about C:\ProgramData !
Everyone here is talking about conventions used on Linux, but this looks like Windows Explorer to me…?
Why are there so many directory names in there following Linux “hidden file” conventions, if that’s the case?If you write cross-platform software, the easiest solution is usually to pretend everything’s Unix. You’ll hit some problems (e.g. assuming all filesystem APIs always use UTF-8 will bite you on Windows, which switched to UCS2 before UTF-8 or UTF-16 were invented, so now uses UTF-16 for Unicode-aware functions as that’s the one that’s ABI compatible with UCS2, and passing UTF-8 to the eight-bit-char functions requires you to opt into that mode explicitly), but mostly everything will just work. There’s no
XDG_CONFIG
telling you to put these files anywhere in particular, as Windows is Windows, so most things use~
as a fallback, which Windows knows to treat asUSERPROFILE%
.Lots of frameworks for applications and games have automatic translation of file paths to sensible directories, but when you’re writing software you’re probably doing shit fast and dirty until it’s ready for release, by that time you now have a bunch of people relying on your software so changing the file structure will cause loads of issues.
deleted by creator
This is not a Linux or Windows thing. It’s a lazy developer thing. It’s also another one of the ways that some devs will coddle the end-user because “learning a file directory system is hard.”
I’m pretty sure the .file notation is a bug-turned-feature of a GNU coreutils program, Windows has no such thing and marks files as hidden using filesystem attributes.
I couldn’t say whether I prefer it one way or the other, but the dot prefix does stick out like a sore thumb on systems that don’t hide them by default… though I think AnyOldName3’s explaination makes sense.
for someone regularly using both: it is a convenience feature.
that way i just know config files are under
~/.myApp
. if windows devs would beore consistent, i would be ok withAPPDATA%\myApp
. however, too often it is underAPPDATA%\..\Roaming\myApp
- which is just a pain. so i prefere linux style on windows.edit: copy paste error
I see your point, but as someone who prefers my home folder be my home folder, I prefer they put it under
~/.config
regardless of what operating system is being used.yes, i could get behind that. problem is probably that this is such wide spread by now, that it would take a really long time to use that new standard.
I think you meant %LOCALAPPDATA%
%APPDATA% points to roaming
Roaming and local are there for reasons.
Mostly enterprisey ones, but roaming “roams” with your user profile.
If you have ever used a system where you could sign onto any computer and your stuff would be there, it’s mostly due to roaming folder.
Local is local to the pc and does not roam to others
They are using windows wrong, put everything on the desktop and don’t worry about all those scary files everywhere else.
/S
.android
is either from the Android SDK, or possibly Android Studio so blame either Google or IntelliJ..vscode
is Visual Studio Code which is made by Microsoft so your guess is as good as mine on that one..eclipse
is Eclipse and is a Java IDE approximately the age of dirt and might actually pre-date the AppData folder existing..ssh
is OpenSSH and has been around long enough on the *nix side of things that it might pre-date both AppData and the XDG folder conventions. Not sure about most of the rest.The guidelines for Windows developers kinda suck tbh. Maybe it’s better these days, but plenty of weird legacy software behaviour can be blamed on MSDN.
This is why i never use the default folders, I will always make my own elsewhere.