AppData folder: am I a joke to you?
fun fact: that dotfiles are hidden on *nix systems was just a bug in the first version of ls (the dev originally only wanted to hide the “.” and “…” entry and not every file starting with .), but before the 2nd version could roll around, people have already deemed it a usefull feature so it was never changed.
That’s neat!
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
I mean… those are hidden by default
To be fair this is how I clean as well
Who actually keeps hidden folders hidden? It’s like the first box I check when I open a file explorer for the first time.
I don’t think so. If they were, they’d look shaded like the AppData folder does.
They have a dot in front. Means they are not shown my default, not even in cli
That’s simply not how it works on Windows.
https://superuser.com/questions/1064112/hiding-files-starting-with-a-dot
That doesn’t make it better though. App data should be under app data, either roaming or local depending on use.
still. it’s the year 2025. XDG_CONFIG should be the standard assumption
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.
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?Because developers use cross-compilable languages to pump out Windows executables without knowing or understanding or caring about the Windows environment. I mean,
~/.whatever
still works under Windows.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.
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 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
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.
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.
This is why i never use the default folders, I will always make my own elsewhere.
AFAIK appdata are stored in ~/.local/share, but you don’t even have that folder!?!?!
It’s not the Linux convention that’s fucked up in this regard, but your system.
If you want it stored in ~/AppData, you need to make a link to it from ~/.local/share.I’m no expert, so there may be other ways to do it. but apparently your system doesn’t follow conventions.
He’s using windows.
But while we’re on the subject, ~/.local/share is cancer and shouldn’t exist.
The appropriate path is /usr/share.
EDIT: Okay to be clear I mean that anything that could be global should go into /usr/share and massively save on space and effort if another user needs the same stuff.
Anything that doesn’t need to be global doesn’t need to go into /use/share but somewhere else in ~/.
The way it is now my ~/.local is a massive dumping ground of crap from configs to static app resources that should go into /usr/share to entire applications with snap or flatpak (why I don’t use them) to random config files.
It’s just a nasty mess on my home partition when it in most cases really doesn’t need to be.
Users below rightfully pointed out many exceptions like venvs and while I still believe there should be a more correct place for them to go e.g. (~/.venv, ~/.flatpak), but obviously they shouldn’t go into /usr/share willy-nilly.
I have removed the sass below because I should’ve been more comprehensive in my criticism before ad-hominem.
The appropriate path is /usr/share.
That’s a global folder, and not proper for storing “per user” data.
I have a SystemD service
The irony is how lennart and his cancer approached standards, top to bottom.
Now I want McRibs.
I’m a little confused by that statement. Where should locally installed (non-sudo) applications, such as virtual python envs who are accessed by multiple other not-necessarily-python apps or perhaps baloo, flatpak, etc, store their shared data? I’m rather convinced that giving all users write access to /usr/share is a terrible idea.
/usr/share? How is a random app getting write permissions to that?
I even have a couple of things that found ~/.local but missed /share
He’s using Windows
WHAT? So he chose an OS that doesn’t follow Linux standard on PURPOSE?!?! That doesn’t make much sense. 😋
Amazed that no one can figure out a .config/ or .local/ already
Sure, AppData exists, but do you expect them to… read?
don’t do
ls -la
at your home directoryAre dotfiles a thing on Windows? It’s been a while since I used 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 !
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.
Man: project zomboid just creates a “Zomboid” folder in home, not even with a leading dot.
whispers Zombocom
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!
I began using SMPlayer, which uses MPV, and yeah, it was confusing having to mess around in %localappdata%. But unironically, having to do so kinda prepared me for the switch to linux, what with getting used to using the filesystem.
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?
It’s basically in use today. Apparently younger generations are more used to searching for files rather than structuring them. https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z
Bring back WinFS.
They are using windows wrong, put everything on the desktop and don’t worry about all those scary files everywhere else.
/S