9 ms·
Firefox 147 Will Support the XDG Base Directory Specification
- AdmiralAsshat 11mo agoI wonder if the original reporter is still around to see their enhancement ticket closed?
- aallaall 11mo agoPerhaps their grand children are still around?
- PunchyHamster 11mo agoprobably using chrome tho, FF really squandered the marketshare
- kjkjadksj 11mo agoNothing they could do when the de facto search engine and de facto video player for the entire internet started shilling its own product relentlessly.
- ndegruchy 11mo agoThis is great news. Firefox respects the system-defined folders on Windows and macOS. Linux, being the free spirit it is, doesn't have a 'standard'. XDG makes recommendations that make a certain amount of sense and aligning to that is a great step forward for such a large project.
- darkamaul 11mo agoThis is a meaningful step! For years, XDG Base Directory compliance has been spotty across major applications. Firefox's adoption matters because it's widely used and its implementation may encourage others to follow suit. The Arch Wiki documentation will likely need updates [1], but sadly the list of non-compliant software is far too long. [1]: https://wiki.archlinux.org/title/XDG_Base_Directory https://wiki.archlinux.org/title/XDG_Base_Directory
- aidenn0 11mo agoFWIW, the OpenSSH devs believe it to be a potential security risk to adopt XDG: > Adding additional configuration paths is confusing and potentially risky for .ssh as, quite unlike usual "desktop" apps, it grants system access and having its configuration smeared across several possible paths makes managing this more confusing and brittle.[1] I think this is clearly true for something like ~/.ssh/authorized_keys; it is perhaps less true for ~/.ssh/config and or ~/.ssh/known_hosts which could go in XDG_CONFIG_HOME and XDG_DATA_HOME, but if part of the point of the XDG BDS is to reduce dotfiles in $HOME then it makes less sense to move some, but not all of those files. 1: https://marc.info/?l=openssh-unix-dev&m=170687803731931&w=2 https://marc.info/?l=openssh-unix-dev&m=170687803731931&w=2
- Avamander 11mo agoI think most people are okay with software such as OpenSSH keeping its long-existing conventions. In the same way I don't think a lot of people mind ".bashrc" being where it is. It's manageable if there's just a few and they're well-known. However this "exemption" does not and should not apply to anything newer. Things like Cargo, Snap, Steam, Jupyter, Ghidra, Gradle, none of those should be putting their stuff (especially temporary junk) directly and unsegmented into $HOME. At some point I had more than 50 different dotfiles and dotfolders in my $HOME. It was unwieldy and nasty to look at. I couldn't even figure out what created some of those files because they were so generic. Plain $HOME as the dumping ground simply does not scale beyond a select few.
- aidenn0 11mo ago$ find ~ -maxdepth 1 -name '.??*'|wc -l 435 [edit] A sampling... $ (cd && find . -maxdepth 1 -name '.*'|sort -R|head) ./.texlive2023 ./.stl ./.stp ./.repo_.gitconfig.json ./.xsel.log ./.msmtprc ./.fonts ./.bash_logout ./.steampath ./.compose-cache
- deleted 11mo ago[deleted]
- amiga386 11mo agoAt last! Mozilla fixing longstanding bugs! (I jest) The devil is in the details though: https://hg-edge.mozilla.org/integration/autoland/diff/8a6d6c094cb5a842d415c60bb8395db03b36e531/xpcom/io/nsAppFileLocationProvider.cpp#l1.26 https://hg-edge.mozilla.org/integration/autoland/diff/8a6d6c... Looking briefly at this, * there doesn't appear to be any migration from old directory to new directory. Does the code just use ~/.mozilla if it still exists, ~/.config/mozilla otherwise.. or does it _require_ MOZ_LEGACY_HOME=1 to be set to keep using your existing config, and just lose all config if you don't set that? * there doesn't appear to be a proper split between ~/.cache (always-removable cached data) ~/.config (configuration) and ~/.local/share (application data that is not user-editable configuration and is not just cached data either), they just moved the entire set of profile stuff to ~/.config Is that about right, or do I need to read the code more carefully?
- pjmlp 11mo agoNext bookmarks window resizing, well we can dream.
- darkamaul 11mo agoI was curious about how old the original bug report was, and it appears to be 21 years old [0]! [0] https://bugzilla.mozilla.org/show_bug.cgi?id=259356 https://bugzilla.mozilla.org/show_bug.cgi?id=259356
- layer8 11mo agoIt’s right in the first sentence of the article.
- ndegruchy 11mo agoI think there is probably a lot of work to do to fully pry the .mozilla folder apart. For a long time they've simply shipped everything in that folder and rolled with it. Making decisions on what is actually cache and what is user config vs "application data" is probably going to be harder than splitting the folder.
- 11mo ago
- johnisgood 11mo agoAbout time. Every piece of software should be XDG-compliant. I am surprised it was not the case at all to begin with.
- freeone3000 11mo agoXDG is newer than firefox and hasn’t been widely adopted for the majority of its life.
- deleted 11mo ago[deleted]
- amiga386 11mo agoDo you mean Firefox specifically? The reason most software is not "XDG-compliant" is because most software predates the XDG basedir spec which only came into existence in 2021 (edit: oops, that's just version 0.8; version 0.6 was available in 2003) It will be nice for software, as it updates, to support this standard which seems to be gaining adoption, and it will make users homedirs much cleaner. But it's most important for software to _keep working_, and have a migration path that doesn't lose the user's config or end up with two configs and not have a clear rule on which one it will use.
- deleted 11mo ago[deleted]
- deleted 11mo ago[deleted]
- johnisgood 11mo agoI think it is possible for software to keep working and I can think of many ways to implement automatic "migration", which is essentially just copying files to the new directory (or just do a move operation which is atomic) and then deleting the previous directory if the copy was successful[1], and if one wants, could create a compressed backup of the directory prior to doing that. [1] Could (and should) implement a verification step as well.
- lovedaddy 11mo agoThis is awesome! Been tracking the bug for what seems like Gimp 3 levels of time. But great job all involved.
- shmerl 11mo agoSincere congrats! It only took 21 years.
- ceving 11mo agoI think the XDG spec is pretty petty. What difference does it make that the files are in ~/.config/mozilla instead of ~/.mozilla? And calling it a bug is presumptuous.
- wpm 11mo agoThe difference is that I don’t use standard XDG directories because I loathe dot-files, loathe hidden directories, and so I declare my own environment variables to put everything where I want. Then Firefox (and ansible, and many others) comes barreling in dropping an unconfigurable dot-directory in my fucking home folder ignoring the perfectly good XDG variables I have set. It is a constant struggle to stop my home folder from not feeling like my home. Developers ought to learn some fucking respect.
- RealCodingOtaku 11mo agoThis, I set an alias for `adb` to use `"$XDG_DATA_HOME"/android` instead of `~/.android` because it stores the keys there for whatever reason. I would rather not see my home folder being cluttered with hidden files, it makes backing things up unnecessarily complex. export ANDROID_USER_HOME="$XDG_DATA_HOME"/android alias adb='HOME="$ANDROID_USER_HOME" adb'
- Avamander 11mo agoDon't forget Gradle ("GRADLE_USER_HOME") and OpenJDK ("-Djava.util.prefs.userRoot"), those too litter.
- akdev1l 11mo agoYou could try flatpak Firefox, if that works for you then it takes care of that
- createaccount99 11mo agoPerhaps you should've started to launch your shell in "~/home" instead of "~". Now your home is 1 level down, and the only downside is typing "/home" after the tilde.
- codedokode 11mo agoI don't like Unix filesystem structure in general. What's the point of having directories like /usr or /lib in the root directory, when they could be all under for example, /ubuntu24? And the user could keep files in the root directory and not in /home with lot of system files. Also I don't like that some distributions suggest partitioning a drive. This is inconvenient, because you can run out of space at one partition, but have lot of free space at another. It simply doesn't make sense. And if you have swap as a partition, you get slightly faster access, but cannot change the size!
- joestrouth1 11mo agoIf one user kept their files in the root directory, where would a second user keep theirs?
- aallaall 11mo agoMost operating systems mounts things dynamically. You can never trust that a path for you exists for another user.
- pwg 11mo agoThis is a very recent aspect time wise in the very long history of Unix (and Linux) systems.
- codedokode 11mo agoIn /ubuntu24/home. Or a subdirectory could be created in the root directory.
- tasn 11mo agoThere are a lot of reasons. Just three from the top of my head: 1. The way Unix works, a directory is a file, so if you can write in a directory you'll also be able to move directories around (and thus break the structure you mentioned completely). 2. Doesn't make sense for multi-user. Yes, I understand most people have their own computers, but (1) why design it in a way that breaks multi-user unnecessarily? (2) there are a lot of utility users, and having them get access to user files because of the way this is structured is silly. 3. `grep -r` is going to be a pain in the ass when searching your own files, because it'll also search all the other system subdirectories too.
- ksec 11mo agoI am wondering what other long standing bug or feature that is still missing on Firefox. Firefox excel in terms of Multi Tab and memory usage. And I have yet to encounter a rendering issues in the past 12 months.
- kjkjadksj 11mo agoI’m not sure if its because of my ad blocker but I get the occasional link that wont click when I am say going through a job application flow. Could be the way their saas vender implements things. For things that are important like that or say banking/credit card websites I usually am forced to defer to Safari.
- phoronixrly 11mo agoBug report: https://bugzilla.mozilla.org/show_bug.cgi?id=259356 https://bugzilla.mozilla.org/show_bug.cgi?id=259356 Source: https://hg-edge.mozilla.org/integration/autoland/rev/8a6d6c094cb5 https://hg-edge.mozilla.org/integration/autoland/rev/8a6d6c0...
- shevy-java 11mo agoNot bad - with a delay of only 21 years, Firefox is just about to make a strong come back now. :D
- johnisgood 11mo agoSomeone asked what the blocker is, and the guy replied: Time ? I'm focused on other things. I mean, he only had 21 years. :D
- kernc 11mo agoNow that everyone is kindly on board, IBM can finally bury this standard. /s
- jaredhallen 11mo agoWill it stop enabling dns over https by default?
- enriquto 11mo agothat's great! The ~/.mozilla folder is one of the last remaining dotfiles in my home directory $ ls -a ~ . .. .bashrc .mozilla .profile .ssh bak config local pro src You can also be an xdg ninja if you want: https://github.com/b3nj5m1n/xdg-ninja https://github.com/b3nj5m1n/xdg-ninja Annoyingly, many programs hardcode ~/.config and ~/.local (instead of using XDG_CONFIG_HOME etc) and try to recreate them every time they run. This is a good indication to stop using these careless programs!
- smaudet 11mo ago(hard) links to the rescue. I like environment variables, but developers/operating systems have trouble using them well. I could almost see XDG_CONFIG_HOME being a setting read by a driver that provides access to a "virtual" path (on *nix, all paths are virtual anyways).
- HumanOstrich 11mo ago> I could almost see XDG_CONFIG_HOME being a setting read by a driver that provides access to a "virtual" path Now you have even more complexity. Programs will have to know where this "virtual" path is unless you're suggesting it should be hard-coded. > on *nix, all paths are virtual anyways What does this mean?
- smaudet 11mo ago> Programs will have to know where this "virtual" path Not at all. You can read `XDG_CONFIG_HOME` to know where the config path actually is. Or, if you're lazy, just hard code to `.config`. I think maybe you are unfamiliar with how paths work on *nix. All paths are virtual, meaning they are provided by something. Part of the "everything is a file" nix thing. Normally, files are provided by your file system, which (usually) examines stuff like inodes and partition bits, but they are also provided by processes, sockets, pipes, etc. Everything is a file. So .config is just another "file", if you move the whole disk directory aside, it still exists, provided by the driver. So your program has to do exactly nothing, other that use either a path, or maybe the env var (maybe useful if you move the physical location of the folder, e.g.)
- jason-richar15 11mo ago[flagged]
- PaulDavisThe1st 11mo ago# export XDG_CONFIG_HOME $HOME though more seriously # export XDG_CONFIG_HOME $HOME/config why another dotfile dir?
- andriamanitra 11mo agoFirst .mkv support and now this! I really like what Firefox has been doing recently. The only major annoyance that still remains is hard-coded keyboard shortcuts, fingers crossed!
- sfink 11mo agoFirefox Nightly has about:keyboard (as I just found out from the comment thread on phoronix). Hopefully it sticks. It's bare-bones but functional and I like it that way.
- butz 11mo agoLet's hope this will inspire other software developers to follow conventions and move their configs to appropriate directories.
- s1mplicissimus 11mo agobless them
- sam_lowry_ 11mo agoSo... did they also implement the horrendous quirk of Chrome that breaks XDG when XDG_DESKTOP_DIR and XDG_DOWNLOAD_DIR point to the same directory? It probably costed a combined million hours wasted and made many people genuinely hate Linux See here https://github.com/chromium/chromium/blob/5e4e38173b33159b0ebd8eb53a73ace575430024/chrome/browser/download/download_prefs.cc#L74-L95 https://github.com/chromium/chromium/blob/5e4e38173b33159b0e...
- trizuz 11mo ago[dead]