• Kalcifer
    link
    fedilink
    1633 months ago

    Firefox has an issue that’s been open for 20 years regarding implementing the XDG Base Directory Specification.

    • @[email protected]
      link
      fedilink
      523 months ago

      Firefox is the biggest offender for me. ~/.mozilla instead of something sane like ~/.config/firefox

      • @[email protected]
        link
        fedilink
        English
        663 months ago

        Even worse, Thunderbird doesn’t save data in ~/.mozilla/thunderbird, but in ~/.thunderbird.

      • @voidMainVoid
        link
        53 months ago

        At least Thunderbird configs are stored in ~/.config/.mozilla/thunderbird. Right? Right…?

        • glibg10b
          link
          fedilink
          223 months ago

          One of us needs to go back to school, because I did not understand a word of what you just said

  • Lunya \ she/it
    link
    fedilink
    863 months ago

    my favourite part is Steam throwing in a symlink, a broken symlink, and a directory of 4 files and 7 more symlinks that all point to a more reasonable point in ~/.local/share/steam/

    • PropaGandalf
      link
      423 months ago

      Ninja can’t help if the program does not want to cooperate :(

      • @Samueru
        link
        133 months ago

        You can use a wrapper script on PATH that launches the app in a fake home wherever you want.

  • @[email protected]
    link
    fedilink
    59
    edit-2
    3 months ago

    It’s one thing when they have legacy hardcode mountains preventing a standardisation, but I really dislike developers who just disagree with the standard and take away the choice as well and justify it with some made up problems with that standard.

    https://github.com/minetest/minetest/issues/864

    https://bugzilla.mozilla.org/show_bug.cgi?id=735285

    etc…

    Archlinux Wiki even has an article about those.

    https://wiki.archlinux.org/title/XDG_Base_Directory#Hardcoded

    • @merthyr1831
      link
      283 months ago

      who would win?

      dozens of conflicting standards on where to store files over years of poorly enforced linux development practice

      vs

      some symlink bois


      for real tho, I discovered gnu-stow the other day and it looks like the ideal solution for this sorta stuff

  • Queue
    link
    fedilink
    473 months ago

    Haven’t used much of Linux before, can someone explain the joke?

    • Refurbished Refurbisher
      link
      fedilink
      953 months ago

      The Windows equivilent would be instead of putting application data in the AppData folder, it throws it in Documents, My Games, or just in the home folder directly.

        • @[email protected]
          link
          fedilink
          English
          233 months ago

          Better, it could be literally anywhere and there’s nothing you can do about it. Also symlinks practically look like regular folders and files to most apps.

        • @[email protected]
          link
          fedilink
          5
          edit-2
          3 months ago

          That’s why i prefer to use Wine for games. Just change the symlinks in C:/users/ to somewhere sane, like .local/Games//save. Guess you could also use the variables in .config/user-dirs.dirs while creating the prefix, but i haven’t tested that yet.

        • Victor
          link
          -83 months ago

          I haven’t run into a game that does this 🤷‍♂️

          • @[email protected]
            link
            fedilink
            83 months ago

            There’s no game related dirs in your My Documents dir? Most don’t even use My Games they just dump directly into My Documents. I guarantee most game devs don’t understand the difference between local and roaming either. They just put shit randomly wherever they want

            • Victor
              link
              13 months ago

              Oh, on Windows, sure. Not on Linux though.

              • @[email protected]
                link
                fedilink
                13 months ago

                Linux is just as bad. You actually got anything in $XDG_CONFIG_HOME or is your /home just a dot file dumping ground?

                • Victor
                  link
                  2
                  edit-2
                  3 months ago

                  lol, this almost reads as a personal attack.

                  I have almost nothing in my home directory, no. Been applying this to clean it up even further. I want my chezmoi dotfiles repo to be clean. Especially not games’ files since I run Steam through flatpak. It does put things in ~/.var but at least it’s collected to one point.

                  Not really a problem of “Linux” or “Windows”, but more of “developers”.

      • @[email protected]
        link
        fedilink
        353 months ago

        … or just imagine all of it being thrown on the Desktop (the bare user directory is rarely visited in Windows)

      • Queue
        link
        fedilink
        93 months ago

        Hahahaha oh man I know exactly what you’re talking about too 😭 hate when they do that

    • @[email protected]
      link
      fedilink
      613 months ago

      Most software on Linux is configured to place their config files in ~/.config. Some others, like the ones in the pic, just dump them directly into your home folder.

    • @MimicJar
      link
      48
      edit-2
      3 months ago

      Yes.

      Many applications have configuration files. Historically these files were placed in your home directory aka “on the floor”. The variable mentioned defines a directory where these files should go. Many applications ignore this.

      A non-linux version of this meme might go,

      “Here is the pizza you ordered”

      “Great, could you put it in my hands”

      “Lol (throws pizza on floor)”

    • @[email protected]
      link
      fedilink
      39
      edit-2
      3 months ago

      $XDG_CONFIG_HOME is an environment variable that programs can (and should) read to determine the location for storing dotfiles (config files, kind of). Not reading (or caring about) the environment variable, and not adhering to the default of /home/username/.config/ results in them ending up in the home directory.

    • ☭ SaltyIceteaMaker ☭
      link
      fedilink
      13 months ago

      So in linux you have an extra directory just for configuration files/directories wich often start with a . (Dot) (that’s why they are calld dot files). But some applications dont use that directory but rather just dump them into your user directory, wich causes it to get cluttered with files wich should be put into the “.config” directory

  • unhinge
    link
    fedilink
    29
    edit-2
    3 months ago

    Meanwhile kde scattering everything in .config/

    Image

  • @pathief
    link
    26
    edit-2
    3 months ago

    If plasma could put all their damn files inside a “plasma” folder that’d be great too.

  • janAkali
    link
    fedilink
    English
    253 months ago

    In theory this issue can be solved with LD_PRELOAD trick. E.g. redirect all/most/some fopen calls to “$HOME” to some other directory. But before I try to tackle it myself: is there already a similar solution like that?

  • @[email protected]
    link
    fedilink
    24
    edit-2
    3 months ago

    I love you all very much but just please be aware that “the floor” is literally where the files are supposed to go, according to the spec. I don’t like it, you don’t like it, nobody likes it. But that’s why it’s happening.

    Relevant section quoted for the lazy:

    User specific configuration files for applications are stored in the user’s home directory in a file that starts with the ‘.’ character (a “dot file”). If an application needs to create more than one dot file then they should be placed in a subdirectory with a name starting with a ‘.’ character, (a “dot directory”). In this case the configuration files should not start with the ‘.’ character.

    • ZephrC
      link
      fedilink
      253 months ago

      You know everything on that site was written in 2004 or earlier, right? That hasn’t been the relevant spec for a long, long time now. We use xdg for that now. Configs go in xdg_config_home.

        • ZephrC
          link
          fedilink
          93 months ago

          We do have both. That’s the whole complaint. There are still major applications using the decades obsolete standard. It was changed because it leaves your home directory a cluttered, useless mess. Also, if you really want your dotfiles in your home directory you can just set your xdg_config_home to your home directory instead of its default of .config.

  • @[email protected]
    link
    fedilink
    English
    17
    edit-2
    3 months ago

    i understand the linux side of the joke but can someone explain what this meme format means? /gen

    is this pizza guy known for chucking pizzas?

  • shameless
    link
    83 months ago

    As someone fairly new to Linux, other than this being messy and not following the standards, what else is bad about this?

    • @[email protected]
      link
      fedilink
      243 months ago

      One particular pain for me in VSCode is that it puts a .vscode folder in my repo, which I have to specifically exclude from git every single time. I can’t expect other users of the repo to use vscode, let alone my settings synced to git. In firefox, it sometimes gets tricky finding the profile folder, as it changes across distros. Similarly, I always find it difficult searching for service files (there are at least 4 folders that I now know of). All of this searching around and doing little things used to be irritating - though you get used to it, and figure out shortcuts. TBH - windows has some of this too - I had to customise a bunch of stuff on first boot.

      No clue about Nvidia - I hear they make something called GPUs but I have not been able to afford any, so can’t say I relate.

      • @[email protected]
        link
        fedilink
        183 months ago

        One particular pain for me in VSCode is that it puts a .vscode folder in my repo, which I have to specifically exclude from git every single time.

        That’s pretty standard behavior for IDEs. Like Jetbrains IDEs store their config in a .idea folder in the root of the workspace, Visual Studio has a config directory in the root of the workspace, xcode probably does the same thing… It’s standard practice, and a simple thing to account for - as you said, just add it to your .gitignore and you’re golden. That allows people to use whatever IDE they want and configure it however they like.

      • @Trollception
        link
        63 months ago

        Interesting. The default gitignore in Windows at least for both vscode and visual studio exclude those directories along with obj, bin, etc and a bunch of other non code files.

    • callyral [he/they]
      link
      fedilink
      English
      43 months ago

      Exactly that, it’s messy and doesn’t follow standards, making it harder to find specific files.