My fellow software engineer, It's the year 2024...

bahmanm@lemmy.ml to Linux@lemmy.ml – 281 points –
Bahman M. (@bahmanm@mastodon.social)
mastodon.social

Shameless plug: I am the author.

122

You are viewing a single comment

Because, like /etc, you know there is a designated place for config files. It's already set for you right there, and there is a standard for it.

/etc is a standard, defined in the filesystem hierarchy standard. This is not:

freedesktop.org produces specifications for interoperability, but we are not an official standards body. There is no requirement for projects to implement all of these specifications, nor certification.

Below are some of the specifications we have produced, many under the banner of 'XDG', which stands for the Cross-Desktop Group.

Its nit-picking, but this is a specification, i.e a preference, not an official standard. It would be great if everyone would agree on just one of these to use, but that isn't a foregone conclusion. Even the actual standard, the FHS, isn't followed by popular OS's like NixOS.

Specification, WHATEVER 🙄

The point is it exists for a reason, and clear purpose.

All specifications exist for a reason, and they all have a clear purpose.

What happens when you have 15 that are different and all overlap? When any of 15 is "right?"

I've only ever heard of FHS or XDG. Due to the free nature of linux distros, there is no central authority on how they are to be set up, and so there is no difference between those two options in terms of authority. Standards (which XDG is, colloquially) are followed based on popularity.

Yeah, I fully get that. The post and comments were very specific about how if you dont follow XDG, you're fucking up, while only generally saying that "everything would be better if everyone followed the same standard."

I pointed out that there are several standards and asked for a unique reason why XDG was the best to use.

I still haven't heard one, which is fine, but it undermines the "If youre not using, XDG youre a idiot" tone of the post and comments.

I think the logic is that it's the most used, so to avoid seriously competing standards, it's better to stick with it.

So far, thats the most specific reason someone has given to use XDG, but I dont think it accurate.

FHS is the most used, as it's been the primary linux filesystem standard for decades. Isn't it better to stick with it if the only metric is popularity?

I thought XDG-aware apps fell back to FHS if no XDG vars were set? Or do they not do that

/etc can't be edited on immutable distros and usually apps store the editable config in /home/config and make the /etc one kind of read-only.

/etc can’t be edited on immutable distros

False on at least Fedora Atomic^[1]^, NixOS^[2]^ and openSUSE Aeon^[3]^..

Which 'immutable' distros are you referring to?


  1. On Fedora Atomic, changing /etc is literally identical to how it goes any other distro; or at least 1-to-1 as on traditional Fedora. The bonus is that a pristine copy of the original /etc is kept inside a sub-directory of /usr. Furthermore, all changes compared to the pristine copy are kept track of.
  2. On NixOS, changes have to be applied through configuration.nix. Though, regardless, it's effectively possible to edit and populate /etc like it is on other distros.
  3. It's explicitly mentioned that /etc does not belong to the immutable base.

Fedora Atomic allowed it recently afaik. I'm always forgetting this. And NixOS is not immutable because of R/W FS.

No sorry, Fedora Atomic has allowed changes to /etc since at least 2019. Regarding NixOS, the consensus is that it's an immutable distro. The immutability of /nix/store/ suffices for this.

Your notion on Fedora Atomic was false. So, what other 'immutable' distro did you have in mind when making that comment?

Please stop harassing me. And idk. I saw that issue but at this point I think it was just misinformation.

Thank you for your honesty! I only intend for the truth to prevail and/or to reach mutual understanding. So please don't feel attacked. If somehow I came off as such, my apologies; that has never been my intent.

In this case it would be XDG_CONFIG_HOME=/home/config. That simple.