this post was submitted on 28 Sep 2023
655 points (98.7% liked)

Linux

46775 readers
1926 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 77 points 10 months ago (3 children)

If you care, please take time to upvote or file bugs on packages that don't follow XDG. Or even better, make PRs.

[–] [email protected] 6 points 10 months ago (6 children)

Those bugs and PRs would just get closed without comment. Nobody is going to move a dotfile as a breaking change in any established software. You either get it right the first time or probably never.

[–] [email protected] 33 points 10 months ago (1 children)

The software can read from both locations in a backwards compatible way. Many tools already do this.

[–] [email protected] 3 points 10 months ago (1 children)

The best way to handle this is to have the next version move the old directory (if it exists) and then start reading from there.

That way it's in compliance from then forward.

A UI notice is nice but will probably be ignored.

[–] [email protected] 11 points 10 months ago

That could break some peoples' dotfile management, e.g. symlinks or git repos. I'd say deprecation notice and reading from both, at least for a while, is better.

[–] [email protected] 22 points 10 months ago* (last edited 10 months ago) (2 children)

Nobody is going to move a dotfile as a breaking change in any established software

We have oodles of counterexamples to this. GIMP did it, Blender did it, DOSBox did it, Libreoffice did it, Skype did it, Wireshark did it, ad nauseum. It's not really as big a deal as you make it to be (or a big deal at all). You have a transitional period where you look for config files in both locations, and mark the old location as obsolete.

[–] [email protected] 7 points 10 months ago

It’s not really as big a deal as you make it to be (or a big deal at all).

It's a big deal to developers who were inconsiderate enough to do it in the first place. To do it in a non-breaking, non-confusing way requires slightly more care than doing it correctly to begin with. Hence why your $HOME is still a giant mess.

[–] [email protected] 2 points 10 months ago

I mean if the code is well written it shouldn't be hard in the first place. You likely have a sinlge code var for the config path already so instead of hardcoding it to be in $HOME make it check if the file is in XDG_Config, if not check if it's in $HOME. If the file is in neither of these it does not exist -> create a new one in XDG_Config. If it does exist in $HOME -> Move it to XDG_Config.

[–] [email protected] 10 points 10 months ago

They will if enough people whine about it.

In the old days (I'm 50+) tumbleweed drifted through ~/ apart from my drivel and I'd have a folder for that so /home/gerdesj/docs was the root of my stuff. I also had ~/tmp/ for not important stuff. I don't have too much imagination and ~/ was pretty clean. I was aware of dot files and there were a shit load of them but I didn't see them unless I wanted to.

This really isn't the most important issue ever but it would be nice if apps dumped their shit in a consistently logical way. XDG is the standard.

[–] [email protected] 8 points 10 months ago* (last edited 10 months ago)

I know developers are busy, and I don't mean to berate them for their choices or work. I only have a two year Computer Information Systems degree and haven't programmed a lot for a while, but supporting the XDG specification and remaining backwards compatible doesn't seem to be very difficult or would cause so much breakage (of course, the amount of work would depend on the software and how the hardcoded path is implemented). I look up git repository issues for the software and tend to find ubiquitous examples like vim to be resistant to such change: https://github.com/vim/vim/issues/2034

This is really frustrating and leads me to find alternative software, such as neovim/doom emacs instead of vim, nushell instead of bash, etc., just to be able to clear up my home directory. I don't mind if I have to wait for XDG to be supported, but many important projects just label the issue as "won't fix". I totally understand where you are coming from.

List of software with hardcoded paths at this time: https://wiki.archlinux.org/title/XDG_Base_Directory#Hardcoded

[–] [email protected] 7 points 10 months ago (1 children)

I've made about 5 MRs changing dotfile locations, and not once has it ever been declined

[–] [email protected] 5 points 10 months ago (1 children)

You can add the proper location to the list of possible dirs. Fhen you can movd your dotfile

[–] [email protected] 2 points 10 months ago (1 children)

If you install config files to the new location and prefer the new config file location over the old, you risk accidental misconfiguration when a system has both config files (e.g. in a build pipeline that installs the software and then copies the config to the old location). It is not impossible to solve, but there are questions that require some care if you have a large userbase and solidified codebase. More care than it takes to do it right the first time.

[–] [email protected] 1 points 10 months ago
[–] [email protected] 4 points 10 months ago

A (very well used) program I use places files in $HOME. Someone argued for changing to $XDG_CONFIG or at least add that as an option. The dev, being used to the old school way, gave the exact opposite reason: that .config was just an extra level of organization when dotfiles are what the home dir is for. So I'm not sure how successful you would be with that approach.

To be clear, I am clearly on the side of XDG, myself.

[–] [email protected] 3 points 10 months ago (1 children)

XDG is a Red Hat thing.

Stuff outside of their influence is unlikely to change, like OpenSSH or ZSH.

[–] [email protected] 10 points 10 months ago

Old things like that get a pass. New tools and frameworks should definitely obey the standards.