- cross-posted to:
- programming@lemmy.ml
- cross-posted to:
- programming@lemmy.ml
Shameless plug: I am the author.
Golang puts shit specifically in
$HOME/go
. Not even.go
. Just plaingo
.Why is it so difficult to follow industry standards
Go pisses me off with that. I separate projects the way I want but go wants every project written in go in one big directory?
I really didn’t like this either. It’s quite surprising, because the rest of Go tooling is quite nice. Not having a venv, or at least something like pnpm-style node_modules is weird
Why would go have a virtual environment or dep tree like node_modules equivalent, it’s not interpreted or dynamically linked.
With modules, dependencies can be vendored.
Obviously it’s not, but you have to download all this shit somewhere before compilation. That’s the whole point
off the shelf go was too annoying for me
Nowadays I set GOENV_ROOT to an XDG location and use goenv instead.
My fellow FOSS users, patches are welcome.
100% agree and I also despise devs who do this on windows, instead of using %appdata% they’re using c:\users\username\.myappisimportantandtotallydeservesthisdir
I have to use a separate Documents folder for my actual documents lol
To be fair here, appdata is technically a hidden folder and there are lots of reasons an app would want it’s data accessable by the user.
Yes but then just spam the documents folder like anyone else, don’t hoard the home root for no reason except that is a lazy cross platform port
Not to mention - this isn’t necessarily the correct place for Windows anyway. That is exactly why they standardized stuff around Vista.
Plus - what about apps that store an ungodly amount data in there? Personally, I only keep the OS and basic app data (such as configs and cache) on the partition and nothing else.
Then something like Minecraft comes along and it’s like “humpty dumpty I’m crapping a lumpty” and stores all its data in “.minecraft” right there in your user directory.
Then you gotta symlink stuff around and it becomes a mess…
Shameless flex
I regret checking this
This is probably a dumb question, but what program is that?
thunar (and the smaller window is the xfce4-terminal).
Lol, the minimalist window decoration had me thinking you were running a terminal inside of the home directory of your file manager. :D
I’ve seen weirder things.
Honestly, that’s what I thought too, and wanted to check that out
Looks like thunar (default file manager on xfce)
Whoa I’m a stickler for getting as much as I can out but even I have .zshenv and some other too hard to figure out things in there. How’d you manage a total wipeout?
zsh is actually easy and it is detailed in the archwiki
You have to set
$ZDOTDIR
in/etc/zsh/zshenv
and iirc that was the only location that required root to edit.For the rest of stuff, here is how I fix steam for example and you can check the rest of my dotfiles for how I configured zsh and all of that.
Although I haven’t updated them, I still had a
.local
directory back then, it was 1 week ago that I changed.local
forLocal
and that let to an issue with distrobox which I made a PR fixing it that’s still open though.That’s awesome!
ls Volatile
It’s empty lol, it’s a directory on tmpfs that i use to build programs and similar stuff to not be hammering my ssd with unnecessary writes.
I have
$XDG_CACHE_HOME
in tmp as well and I moved the mesa sharer caches to$XDG_STATE_HOME
as that’s really the only thing so far I’ve needed to preserve.tmpfs (…) to build programs (…) to not be hammering my ssd with unnecessary writes
Sounds useful. How did you setup the directory?
Running
df
tells me “tmpfs” is mounted on /run. If I build in that that directory then would it be stored in RAM, or do I need to do something else?I have /tmp in my fstab with these mount options.
tmpfs /tmp tmpfs rw,noatime,size=20G 0 0
And the rest of the setup is done in my zprofile
I think I should be able to get this working following your zprofile file. Thanks!
Here is a more concise way to achieve the same thing:
ls -ACd ~/.??*/ | sed -e "s#$HOME/##g"
ls -A | grep "^\."
I had to make a dummy
.dotfile
to test because I don’t have hidden files in my home.
there’s no place like 127.0.0.1
there’s no place like XDG_CONFIG_HOME.
BRB, putting in a PR to make /etc mode 1777 by default.
vim now has an option to put the .vim folder in ~/.config; though I’m not sure if the default plugin/package & syntax folders can be set under ~/.local/share.
You can also just use neovim instead, among other improvements, it’s configs are in the xdg dirs
yes please!
YOU’RE NOT MY MOM I’LL DO WHAT I WANT
But what’s the difference? It’ll be in /home anyways and I heard BSD had some issues with something that could be XDG.
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 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 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.
For me personally I just hate that I do not know where to find configs, especially when using a dotfiles repo, it becomes harder than if they’re all available under a common path.
Better organization and backup / restore. For example if you want to restore config files but don’t want to move over the large “.local” folder, applications that write to $HOME will create diifculty.
But what’s the difference?
I can only imagine someone asking this if they a) don’t use the terminal except if Stackexchange says they should and b) have yet to try and cleanup a system that’s acquired cruft over a few years. If you don’t care about it, then let me flip that around and ask why you care if people use XDG? The people who care about it are the people in the spaces that concern it.
Off the top of my head this matters because:
- it’s less clutter, especially if you’re browsing your system from terminal
- it’s a single, specified place for user specific configs, session cache, application assets, etc. Why wouldn’t such important foundational things required for running apps not be in a well defined specification? Why just dump it gracelessly in the user’s root folder outside of pure sloppy laziness?
- it makes uninstalling apps easier
- it makes maintenance easier
- it makes installing on new machines easier
It’ll be in /home anyways and I heard BSD had some issues with something that could be XDG.
🙄
Weird to me that you apparently think the only way of viewing files is in a terminal
It’s weird to me that you think I think that. I do primarily browse files by terminal, but not always. Before I got into heavy terminal use I was a power user of Nemo. In any case, dumping everything in /home does not make for a better gui file browsing experience, either
The implication seemed to be “if you don’t care exactly where all your files are you must not use terminal”. Which I still don’t get. Just about anyone who would even be in a community like this uses terminal a lot anyway.
Someone asking a question doesnt merit the insult of saying they “would never ask if they used a terminal.” I have no particular dog in this fight, but not being a dick isn’t that hard.
It may actually be the best now, but so were the 14 others that came before it. Your stated reasons are the same reasons as everyone agreeing to use any other standard. Consistency, predictability, automation,ease of backup/restore, etc.
What sets this standard apart from all the rest? Based on their own description, they aren’t even an official standard, just one in “very active” use.
So why this, specifically? Just because its what you’re already doing?
Someone asking a question doesnt merit the insult of saying they “would never ask if they used a terminal.” I have no particular dog in this fight, but not being a dick isn’t that hard.
This is true, and something that I’m working on. For some reason my brain is uncharitable in these situations and I interpret it not as a simple question but a sarcastically hostile put down in the form of a question. In this case, “Why would you be dumb and not just put things in /home”. That really is a silly interpretation of the OP question, so I apologize.
As to using this standard, just because this is your preferred standard, doesnt mean its the only standard.
Sure, but the OP was essentially asking “Why isn’t dumping everything into a user’s /home the standard? Why are you advocating for something different?”
Based on their own description, they aren’t even an official standard, just one in “very active” use.
There are a LOT of “unofficial standards” that are very impactful. System D can be considered among those. The page you link to does talk about a lot of specifications, but it also says that a lot of them are already under the XDG specification or the reason for XDG is to bring such a scheme under a single specification, i.e. XDG.
So why this, specifically? Just because its what you’re already doing?
- yes I do use it, so I am definitely biased in that regard
- it bring a bunch of disparate mostly abandoned specification into a single, active one
- it’s the active specification that has learned from past attempts
This would just further complicate things for me. It assumes that 1) the system even has a windowing system/desktop environment or 2) all the installed software is XDG-aware. Most of the time I’m fiddling with headless environments.
The spec doesn’t make those assumptions at all, idk where that’s coming from.
I have headless machines with XDG vars configured and ones without them. XDG compliant software works in either case, but I’m less likely to use a piece of software that clutters my $HOME.
Whatever happened to Linux being all about choice? Do you want that or not?
حق
Are there abstractions available around the XDG specifications to resolve the proper paths?