I wholeheartedly agree with this blog post. I believe someone on here yesterday was asking about config file locations and setting them manually. This is in the same vein. I can’t tell you how many times a command line method for discovering the location of a config file would have saved me 30 minutes of googling.

  • KIM_JONG_JUICEBOX@beehaw.org
    link
    fedilink
    arrow-up
    20
    ·
    1 year ago

    Start your application / program with “strace” and see all the files it opens.

    Also run “lsof” on a running process to see what files it has open.

  • bionade24@kbin.social
    link
    fedilink
    arrow-up
    20
    ·
    1 year ago

    What’s imho worse is how often config options or command flags don’t actually do at all what’s described in the manpage. I then have to dig into the source code once again and since you have to read through the whole behaviour it takes much longer than just looking up where the program tries to read config files.

    Please - if you find such wrong docs in Open source software, submit a fix to the doc. It’s as important as normal bugfixes.

  • SFaulken@kbin.social
    link
    fedilink
    arrow-up
    13
    ·
    1 year ago

    I mean, that’s sort of what xdg is intended to accomplish, with making $HOME/.config be the place, but it’s kind of up to the individual software developers to comply. (Yes, I know, this doesn’t really apply to Windows/Mac OS) But yeah, it would really be nice if configs/config locations were even remotely standardized.

  • darkevilmac@kbin.social
    link
    fedilink
    arrow-up
    12
    ·
    1 year ago

    What I find more frustrating is undocumented environment variables to override config locations.

    The amount of times I’ve had to dig through the source code for a CLI to find an environment variable to force the config somewhere should be zero. But it’s not.

    • detectivemittens@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      This drives me freaking bonkers. A lot of times libraries tend not to expose the env var to discourage its usage but IF YOU MADE IT IN THE FIRST PLACE YOU HAD A USE CASE FOR IT.

    • ursakhiin@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I genuinely do not like apps using environment variables for config if they aren’t running in their own contained environment. It makes me uncomfortable.

  • Sharmat@beehaw.org
    link
    fedilink
    English
    arrow-up
    9
    ·
    1 year ago

    It would be amazing yeah, standardising all user config files in the $HOME, and maybe etc/ or an default, non usable, user profile to store the original versions, in case of a bad config or corrupted file would save so much time debugging stuff.

  • The Baldness@beehaw.org
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    1 year ago

    I’d take it a step further and say that all programs should be completely self-contained in one folder.

    • stom@beehaw.org
      link
      fedilink
      arrow-up
      13
      ·
      1 year ago

      That doesn’t work well for… well, most software I can think of.

      Games: I do not want to backup the entire folder to ensure I have my save files. Modern games are huge. I want my saves to be located somewhere easy to get to (for the average user) and be quick to backup, without having to go in and cherry-pick specific files.
      There was a good trend of using Documents/My Games, but sadly that seems to have fractured and now there’s also Saved Games, savegames, and some software has moved to using %appdata% or just storing saves in the game install location. There’s no consistency, it’s a real pain in the hole.

      DCC software (Blender, Photoshop, whatever): user preferences and config files. Again, I idon’t want to backup the entire software, as I’m likely to reinstall it from an official source when migraing/reinstalling to ensure I have the latest updates. However I do want to be able to backup my preferences or plugins easily.

      Any software that allows users to customise it: let me backup those preferences without cloning the entire app.

      I do wish there was a standardised folder struture for user data, but it’s 2023 and the chances of getting Windows/Max/Nix to agree upon and comform to a generic structure as sadly. The only thing I can think of that’s the same across platforms is the .ssh folder.

      • TehPers@beehaw.org
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        I don’t think Win/Mac/*nix need to use the same structure across different OSs, but it would be nice if applications used conventional paths for within each of those OSs.

      • ursakhiin@beehaw.org
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        1 year ago

        The different OSes generally have a prescription for where to put things. Windows is a stickler about Program Files and the only thing that should exist there is install content.

        My Games and Saved Games is a remnant of times past when they were trying to figure out where to put that stuff. Generally, %Appdata% is where they recommend storing config and files that your application may mutate over time. e.g save files or logs

        They just decided it didn’t make sense to break that stuff up and not every application dev has caught up to that.

        For Mac, the /Library/Application \Support directory is where config files should live. Though some apps support /Users/<user>/.config for account level configs.

        For Linux, as others have pointed out, /etc for global config or /home/<user>/.config for account level config.

        The frustration about not knowing where to find things either comes from not knowing the standards or developers not following them. (Or Microsoft changing them every 2 versions)

        Edit: Mac uses Users not home.

        • stom@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Yep. My main gripe is that due to various developers not catching up with new standards, a users files can be scattered all over the place.

          I appreciate that - in theory - %appdata% should contain just a users files, but a number of apps also use it to store program data leading to a huge folder size. My own is >100GB, with some of the largest offenders being python and node dependencies that are not specific to myself, and could really be cached somewhere else.

    • araquen@beehaw.org
      link
      fedilink
      arrow-up
      12
      ·
      1 year ago

      This is the big thing I miss from my “pre-Unix” Mac days. In OS9 and earlier, apps were self contained, and didn’t spread their garbage everywhere. You deleted an app, you deleted all the app. Granted, there was a tradeoff (the parade of conflicting control panels and extensions you had to manually diagnose when your machine went sideways) but I never understood why in the Windows and Linux worlds devs would code so sloppily. Who told that dev my Documents folder is where their nonsense needs to go? That Documents folder is for my use, not theirs.

      Still salty after all these years

      • ursakhiin@beehaw.org
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Who told that dev my Documents folder is where their nonsense needs to go? That Documents folder is for my use, not theirs.

        Microsoft did for a while. 😜

        • itchychips@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          There are so many places that games decide to put their save files on Windows.

          I’ve got save directories in:

          • %HOMEDRIVE%%HOMEPATH%\Saved Games (only Elite Dangerous)
          • Documents (Mass Effect Andromeda, X4: Foundations, EVE Online, GreedFall, Wo Long: Fallen Dynasty, SteamVR)
          • Documents\My Games
          • %APPDATA%
          • %LOCALAPPDATA%
          • %APPDATA%..\LocalLow (does not seem to have an environment variable defined for this one)
          • Various game install directories

          There’s probably other places. Not sure how much the registry is used for saves, either, but that would complicate backups more than they already are.

          I’d love if they just unify save and config data for games to %APPDATA%. Documents should never be touched by software without the user’s explicit consent, though, and because of the situation, the Documents directory is the last place I ever put actual documents.

  • Xeelee@kbin.social
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 year ago

    With Synaptic, you can show all files associated with a package. That includes config files. Saved me a lot of hassle on numerous occasions.

    • KIM_JONG_JUICEBOX@beehaw.org
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Yeah anything installed via a package manager, like an rpm or deb package, you can query to see what files belong to that package. Problem is they often have default config file locations, like in your home dir, where they will not ship and install files. (Though they might create them as part of a post install process)

    • teawrecks@sopuli.xyz
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      ~/.config is the non-root version of /etc these days. But you just have to know that, which isn’t ideal.

        • teawrecks@sopuli.xyz
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          1 year ago

          ~/.local is the non-root version of /usr. By .appname do you just mean a folder that a specific app made in your home for itself? Yeah, I never condone that. imo that’s just a badly behaving app. It should move that folder into ~/.config.

      • Jummit@lemmy.one
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 year ago

        If you are a developer, please take a look at the XDG Base Directory Specification and try to follow it, users will be very grateful.

        Short summary: Look for $XDG_CONFIG_HOME for configs and $XDG_STATE_HOME for state. If they aren’t available, use the defaults (./config and .local/share).

      • barsoap@lemm.ee
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Configuration for root is in /root/, that is, root’s home directory. /etc is for system configuration, different thing.

    • Atemu@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Certainly not. Nothing should write to /usr/bin except for the package manager in FHS distros and some distros binary directories aren’t writable at all.

  • eclipse@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Seriously, I’ve lost so muuuuch time just trying to find where some random program decides to store its config files. It sometimes takes me more time than actually “doing the config”

  • I_Miss_Daniel@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    (Windows) Resource Monitor, disk tab, tick the process, see what files it opens and closes.

    Also the usual %programdata% and the two %appdata% find most things.

  • Snapz@beehaw.org
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    I think this is a drawback of not having more specialized communities in beehaw yet - I’m not sure if this advice is very niche advice or if it has some value in general awareness for the layperson?

    Normally I’d look up and see “r/DevChat” or some such distinct community name and have immediate context of, “that’s not really for you to figure out”. But this is essentially “r/technology” so I’m left wondering if I personally can take anything of value from this post.

    Not a criticism or complaint, just an observation.

    • aacid@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      this is not really what the article is about.

      yes you can read man page, you can find there all possible locations of config files. yet you still don’t know where config file is stored. you have to check all the possible locations.

      also if there would be some standard so you can query app for its config files, you could make automated backups easily. at least much easier that now.

      of course I understand this is completely unrealistic, in software world everyone will do whatever they want…