• LouNeko@lemmy.world
    link
    fedilink
    arrow-up
    103
    ·
    edit-2
    5 months ago

    This is the “appdata” folder, this is where all the application’s data goes.

    So whats the “Programs” folder then?

    This is also where the application’s data and files go.

    But I thought thats the “Programs x86” folder.

    This is also where the application’s data and files go.

    Ok whats “Program Files” then?

    This is also where the application’s data and files go.

    So my config file is in either one if those 4?

    No thats in the “Documents” folder, obviously.

    Windows program data file structure has always been the wild west.

    • otacon239@feddit.de
      link
      fedilink
      arrow-up
      62
      ·
      5 months ago

      Don’t forget about the hidden ProgramData directory at the root of the file system. Ableton Live likes to install there for some ungodly reason.

      • 0x4E4F@sh.itjust.worksOP
        link
        fedilink
        English
        arrow-up
        15
        ·
        edit-2
        5 months ago

        Always remember, C:\ProgramData is the eqivalent of /etc in Linux. If they don’t know where to put/hide shit, but needs admin priviliges to edit and users can only read, you put it in C:\ProgramData.

        • Hawke@lemmy.world
          link
          fedilink
          arrow-up
          13
          ·
          edit-2
          5 months ago

          I think programdata is closer to /usr/lib or maybe /var/lib.

          You almost never see config files in programdata.

          • 0x4E4F@sh.itjust.worksOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            5 months ago

            Config files that are meant to be used as sane defaults for new user accounts, yes. Config files that are meant to be manually edited, no.

            Besides, there are a lot of examples of configs that are saved in ProgramData, like, let’s say, registration info for proprietery programs (of course, this info needs to be shared amongst users, so your safest bet is ProgramData). Hidden by default, makes it perfect for storing everything the program is trying to hide from the user.

      • Morphit @feddit.uk
        link
        fedilink
        arrow-up
        4
        ·
        5 months ago

        Don’t forget that there’s a hidden system junction at C:\ProgramData\Application Data that points to C:\ProgramData. Because everyone loves loops in their filesystem. Of course C:\Users\All Users is also a junction to C:\ProgramData. This kills updatedb in WSL.

    • pivot_root@lemmy.world
      link
      fedilink
      arrow-up
      20
      ·
      5 months ago

      Don’t forget %USERPROFILE%/AppData/Local/Programs, where some programs get installed to because the developer doesn’t want to make it a system wide installation.

      • pivot_root@lemmy.world
        link
        fedilink
        arrow-up
        9
        ·
        5 months ago

        Game save data? No, my documents.
        Application config files? Again, my documents.
        Temporary documents I don’t care about keeping? Downloads, duh.
        My actual documents? Desktop.
        My desktop? Turned icons off because it was too messy.

        Just another day using Windows…

    • Zorsith
      link
      fedilink
      English
      arrow-up
      9
      ·
      5 months ago

      System wide config for an application? Lets put that under C:\users*????

      • 0x4E4F@sh.itjust.worksOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        Agreed, but the number of places where to search for the config is not as big as in Windows. And there is the fact that most software is open source, so you could always check where the application saves it’s data.

  • SGG@lemmy.world
    link
    fedilink
    English
    arrow-up
    69
    ·
    5 months ago

    Don’t forget that appdata nowadays has 3 sub folders, local, locallow, and roaming.

    Also there’s C:\programdata

    Also some programs just store it in the user folder, the documents folder, or games/ my games folder if they are a game.

      • SGG@lemmy.world
        link
        fedilink
        English
        arrow-up
        38
        ·
        5 months ago

        Oooh the registry is even more fun.

        • HKLM, HKCU? These are statements dreamt up by the utterly deranged
        • Store it in software, make your own root folder
        • Also for 32 bit programs there wow6432node
        • There’s also the policies section, but this kind of makes sense to have it split off
        • Also make sure to follow the apple methodology of having multiple different key names like Apple, Apple inc., etc
        • 0x4E4F@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          5 months ago

          I still have no idea why HK is in front… why is the key hot 🤔… and what key are we talking about…

          Oh, yeah, and the different key names… Windows, Windows NT (WITH a white space…), Win…

          • dan@upvote.au
            link
            fedilink
            arrow-up
            3
            ·
            5 months ago

            HKEY means “handle to registry key”… Not that that helps anything.

            When code opens a file, device, etc, it’s given a “handle” to it, which is an internal reference so that Windows knows which file you’re reading or writing, and it keeps track of where you are in the document. Similarly, HKEY_CURRENT_USER is the handle that gives you the current user part of the registry.

            • 0x4E4F@sh.itjust.worksOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              5 months ago

              I know that, the HOTKEY_* part of it was a mystery, why is the key hot… I mean, why does HK have to stand in front of it, it could be simple like just LM, CU, U (Users… still does nothing and nothing in it gets transfered as a setting in new user accounts), CR, etc.

              • dan@upvote.au
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                5 months ago

                It’s HKEY (handle to key), not HOTKEY. That’s what I was trying to say in my comment. There’s no “HOTKEY”.

                • 0x4E4F@sh.itjust.worksOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  5 months ago

                  Huh… I don’t know where I’ve read this a long time ago, but I could swear it was HOTKEY, not HKEY… your explanation does make sense though, while what I thought never did make sense.

    • pHr34kY@lemmy.world
      link
      fedilink
      arrow-up
      23
      ·
      edit-2
      5 months ago

      And half the time you’ll find it in the registry too. Linux has proven quite well that an OS doesn’t need a registry.

      Oh, and what’s with ProgramData and AppData being two completely different things. I understand the difference between the two directories, but there is no difference between a program and an app. Everywhere else it’s Machine/User.

      • optional@feddit.de
        link
        fedilink
        arrow-up
        21
        ·
        edit-2
        5 months ago

        Linux has proven quite well that an OS doesn’t need a registry.

        Gnomes dconf would like to have a word with you. It’s really interesting how the Gnome people seem to get rid of every useful feature as it might confuse the user or be complex, but on the other hand add this registry-like anti-feature to make the system just as unmanageable as Windows.

        • poinck@lemm.ee
          link
          fedilink
          arrow-up
          10
          ·
          5 months ago

          What you can find in dconf is well organized compared to what is inside of the regedit hell.

      • MonkderDritte@feddit.de
        link
        fedilink
        arrow-up
        5
        ·
        5 months ago

        Funny thing is, most 3rd-party utility tools don’t use registry but a config. Which makes them portable, btw.

        • 0x4E4F@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          5 months ago

          Nowadays, yes. Go back 15+ years, the registry was used extesively.

          My reasoning as to why, Linux was never a targeted platform for software back then, now it is. There was only GTK back then and it didn’t look “nice” (appealing) at all. Plus GTK apps were huge for Windows, since you’d have to also install the GTK runtimes and all that… that just took a lot of disk space, which was expensive back then. Compared to an app that does the same, but spends only 10% of the disk space needed for GTK (you could even go a lot lower with compressors), it’s obvious why GTK was never a viable option when making a GUI app.

          And since Linux doesn’t have a registry (or even if it did, it’ll probably be completely optional to have it or not, so you can’t rely on users having it installed), you’d have to just save the settings in a file, just like the rest of the FOSS applications. So, it makes no sense to have completely different codebases for the same app for Windows and everything else. In fact, most apps nowadays that aim to be cross platform just use Qt. You can compile it for watever you like, there is no need to keep separate codebases.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        5 months ago

        there is no difference between a program and an app

        Yeah the naming is confusing. The reason is what you said - machine vs app.

        Back on Windows 9x, some apps would store files directly in the C:\Program Files directory. This was ‘fine’ at the time since every app ran with full permissions. Users were at C:\Windows\Users, but users were optional so not every install used it.

        Windows XP had a better NT-based permission model (not nearly as improved as Vista, but better than 9x) and allowing regular users to write to the Program Files and Windows folders wasn’t really a good idea. It added two directories for settings:

        • C:\Documents and Settings\username\Application Data for user-specific data
        • C:\Documents and Settings\All Users\Application Data for non-user-specific data

        Vista kept the former but moved the latter to C:\ProgramData. I can’t remember why.

        Windows 7 moved the user stuff to C:\Users.

      • 0x4E4F@sh.itjust.worksOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        ProgramData is for admin stuff and things that need to be shared between users. AppData is for personalized settings per user. For example, AnyDesk stores the unattended access password in ProgramData, as well as the ID. Sure they do get copied to AppData when AnyDesk runs on boot/login on any user, but you could also have some user specific options (like language) and they get stored in a separate file in AppData.

    • IsoSpandy@lemm.ee
      link
      fedilink
      arrow-up
      8
      ·
      5 months ago

      What the fuck is local low? I don’t understand. Local is Billy G’s jizz… I get that… And Roaming is for poor plebs. But why LocalLow? Is it like cache? But I have seens games saving their save files there. I don’t understand

      • Laser@feddit.de
        link
        fedilink
        arrow-up
        14
        ·
        5 months ago

        The folders actually do make sense.

        Roaming: this data can be moved between machines in a domain if you have a roaming profile. E.g. go to another workstation and your browser configuration is the same? Means it’s in Roaming.

        Local: this data will not be synchronized between machines when you roam. This could be your browser’s cache.

        LocalLow: like local, but for applications that are “low integrity”, like Internet Explorer. These folders have special properties. https://helgeklein.com/blog/internet-explorer-in-protected-mode-how-the-low-integrity-environment-gets-created/

      • Lath@kbin.earth
        link
        fedilink
        arrow-up
        11
        ·
        5 months ago

        Local is for regular apps, LocalLow is for depressed apps and Roaming is for high apps looking for munchies.

        • 0x4E4F@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 months ago

          Has anyone tried this, any software who has the path hardcoded?

          I know for certain that some Adobe products did have these paths hardocded (past tense, haven’t tried this now), because I moved my home/user directory on D:, yet they persisted to save the settings in C:\Users.

  • csm10495@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    43
    ·
    5 months ago

    This isn’t really accurate for either side. For Linux, I’ve had crap shove configs in ~, /etc, /var, at least.

    On Windows, it could be literally anywhere or in the registry.

  • andrew_bidlaw@sh.itjust.works
    link
    fedilink
    arrow-up
    35
    ·
    5 months ago

    I feel mildly aroused when I see a program or a game that collects everything in it’s folder and can be used from a USB drive. Some paid, industrial grade software leaves so much traces and depends on so much different hidden files and keys it’s making me sick.

      • TurboWafflz@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        5 months ago

        Or if you just symlink /usr, /opt, and /home to that usb drive. You may be asking why you wouldn’t just mount partitions on the usb drive to those locations. This is not a question I will be answering

    • 0x4E4F@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      That is good… unless you plan on sharing the app between users, then it sucks, because every user has to be an admin in order to change the config… and then, you have one user that sets it like so and so, and another that sets it completely different. And this is why separate settings for users is a good thing. Sure, have an option for a global config, and let that copy be copied to the local config as sane defaults, but not having the option to actually have separate configs in user directories is, from an IT perspective, insane.

    • pivot_root@lemmy.world
      link
      fedilink
      arrow-up
      20
      ·
      5 months ago

      This should be considered a war crime, and doubly so when they don’t even have the decency to prefix it with a dot (looking at you Golang). It’s my home folder, not a dumping grounds for random trash.

    • Norgur@fedia.io
      link
      fedilink
      arrow-up
      2
      ·
      5 months ago

      Or in /etc/<application>, or in /var/<application> I’ve seen all of that, sometimes differing between distributions for maximum annoyance. So I don’t think we get to act smug in I’m this particular case.

  • rtxn@lemmy.worldM
    link
    fedilink
    English
    arrow-up
    33
    ·
    edit-2
    5 months ago

    The setting you’re looking for could be in %appdata% It could be in %localappdata% It could be in C:\ProgramData. It could be in the registry. It could be in HKLM. It could be in HKCU. It could be in any of the userdirs. It could be in the application’s directory.

    HA! Joke’s on you, it was an envvar all along!

    True story.

  • Delta_V@lemmy.world
    link
    fedilink
    arrow-up
    24
    ·
    5 months ago

    not seen in this comic: the linux file isn’t where the comic/manual/internet nerds says it should be, and there’s no realistic way to find it

    • ricdeh@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      5 months ago

      Nonsense. And even if the config file cannot be found in the usual directories then there are always tools like KFind that can search your entire OS within seconds.

      • Delta_V@lemmy.world
        link
        fedilink
        arrow-up
        11
        ·
        5 months ago

        congratulations. you’ve just sent a linux newb down a 12 hour rabbit hole that doesn’t actually solve their problem.

        • ricdeh@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          How does it not solve their problem if they’re searching for configuration files? That would only be the case if the files do not exist in the first place, and then there’s really no difference between GNU/Linux and Windows at all if you assume that initial configuration has not occurred. What would you do?

    • baseless_discourse@mander.xyz
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      5 months ago

      Until flatpak came along and just keeps everything in their respective app sandbox.

      If your app don’t need full user home access (most app don’t), you can use a persistent folder to place the folder in app sandbox instead of home.

      It is not only more clean, but also more secure and private.

  • llama@midwest.social
    link
    fedilink
    English
    arrow-up
    24
    ·
    5 months ago

    Oh that setting is super easy to change, just go to run, type in regedit, expand HKEY_LOCAL_MACHINE then just scroll until you find CLSID-73838-abf83-c758d57-87a90ba, set the value to zero and reboot!

    • 0x4E4F@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      Probably just log in an out, but still, I fail to see how this is easier than changing some_bool_setting from =true to =false is harder… maybe because you actually know what you’re changing, so that makes it scarier 🤔.

  • Possibly linux@lemmy.zip
    link
    fedilink
    English
    arrow-up
    17
    ·
    5 months ago

    They don’t have config files in Windows. Apps just throw things everywhere without rhyme of reason

      • oo1@kbin.social
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        5 months ago

        Sorry, that was my lame joke about the simlar sound of the windows essential tool “regedit”.

        My only surviving knowledge from when I used to be able to do things on windows was that it was always a bucket of shite until you “regedit” a bunch of things. These edits were arcane secrets known only to mystical internet guru’s like some bloke called “Fred Vorck” and impossible to figure out by logic, reason or even through mundane hard work. I assumed that’s what the lower panel in the OP is getting at.

        But on reflection, I’d be sad if there’s not a forum on reddit called “regedit” will all the advice on what registry keys to fix - so unintentionally it might not be the worst advice - apart from the word “simple”.

        edit: reddit isshit
        https://www.reddit.com/r/regedit/

  • ChaoticNeutralCzech@feddit.de
    link
    fedilink
    arrow-up
    15
    ·
    edit-2
    5 months ago

    Some people have diacritics and spaces in their usernames, which wreaks havoc for badly written programs accessing AppData or folders in the user’s “home” directory, such as Documents. And there are lots of such programs.

    When setting up Windows, use a short and memorable, DOS-compatible username, and then change it later (the home folder will still have the old name). You can then move indiidual Libraries (Documents, Downloads, Music, Pictures and Videos) to the root of D:\ too.

    • baseless_discourse@mander.xyz
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      5 months ago

      programs writing shit in the document folder are so freaking annoying. I typically backup my document folder, as they contains most of my user files.

      And some stupid program just decide to litter it with their temporary file, and game saves…

      • ChaoticNeutralCzech@feddit.de
        link
        fedilink
        arrow-up
        2
        ·
        5 months ago

        It is okay if they only do what you asked for.

        “Okay, Audacity, save to ‘C:\Users\me\Documents\recording.aup’”

        *folder 'C:\Users\me\Documents\recording_data' shows up*

        • baseless_discourse@mander.xyz
          link
          fedilink
          arrow-up
          1
          ·
          5 months ago

          Oh no, I think AoE (some version) will sometimes save game file to Documents, and IIRC, wechat will save temp file to documents without user interaction

      • dan@upvote.au
        link
        fedilink
        arrow-up
        3
        ·
        5 months ago

        Most configs should be in the roaming directory, since you’d usually expect them to roam between computers on a domain. The local directory is only for stuff that doesn’t make sense to sync to other computers - things like caches, configs specific to that individual PC, etc.

        Not that it matters for home users, as home users generally aren’t using Active Directory with roaming profiles.

        • Huschke@programming.dev
          link
          fedilink
          arrow-up
          6
          ·
          5 months ago

          Tell that to the developers. At this point I’m sure they are just rolling a dice to decide where they should put things.

  • BradleyUffner@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    ·
    5 months ago

    Tell that to the file I just dropped in to ~/.steam/debian-installation/steamapps/compatdata/1086940/pfx