I’d like to set nautilus to show hidden files, but I can’t stand the amount of “trash” there’s in home
Everyone is thinking “my app is the best, it totally deserves a ~/.myappisthebest directory”
If you care, please take time to upvote or file bugs on packages that don’t follow XDG. Or even better, make PRs.
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.
XDG is a Red Hat thing.
Stuff outside of their influence is unlikely to change, like OpenSSH or ZSH.
Old things like that get a pass. New tools and frameworks should definitely obey the standards.
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.
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.
The software can read from both locations in a backwards compatible way. Many tools already do this.
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.
I’ve made about 5 MRs changing dotfile locations, and not once has it ever been declined
I don’t care.
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
I absolutely despise the following directories: Documents, Music, Pictures, Public, Templates, Videos. Why? Because applications randomly dump stuff into these directories and fill them with junk files. I don’t want any application putting anything into directories I actually use, unless I explicitly tell them to. It is not possible to keep your files organized if applications randomly dump trash files into them.
Same shit happens on Windows. Games will just install their shit literally all over OS with no rhyme or reason to it.
Why can’t the save game and config.ini just be in the main god damn game directory? Nobody knows.
Microsoft OWNS not just gaming companies, but one of the largest gaming hardware companies and many of the largest game developers.
You’d think by now we’d get a dedicated Saves folder to organize this shit after this long.
My Documents > My Games is kinda the default, but then you have steam cloud syncing and tons of games that default to various Appdata folder seemingly at random.
There is, been there since 7. Just hardly any game Devs use it, including Microsoft.
C:\Users\Username\Saved Games
is a thing. Not a lot of games use it though.There’s also
C:\Users\Username\Documents\My Games
which seems more popular with some devs. Though some devs inexplicably use the base Documents folder, which is just obnoxious.But yeah, a lot of devs still use AppData. I read a post from a dev once that explained the advantages and disadvantages to each Directory, though I can’t remember the specifics, there is at least logic to why saves get stored in so many odd locations.
Actual reason is system permissions.
Most the default installation path is Program Files. That needs elevation to write to. Fine when you’re installing something, but not something you want to need just to run the game.
Writing to %APPDATA% or really anywhere in %USERHOME% is guaranteed to have the right permissions for this user.
Granted, a lot of home PCs and gaming PCs are single-user environments. The “personal” computer. In that case there’s no reason games and applications can’t be installed in %LOCALAPPADATA%, and in fact, I think windows has an environment variable or registry setting for that.
It’s no different in Linux. You don’t want users writing to /etc. And you may expect multiple users. So all of that stuff goes to dot files in $HOME.
I have my own directories on windows. I never use system provided directories for my own stuff, it always sucks. And if I want to move directories between drives or just change permissions, all hell breaks loose because everything depends on the default locations… So I just leave them be if I can.
deleted by creator
They’re probably trying to handle per user config. But nowadays, there’s mostly only one user using a machine.
These places are a cesspool of junk in every system, it’s incredible. MacOS has this kind of shit too, just like Windows, with apps dumping crap there without a care.
This is why I’ve made a “Filing Cabinet” directory. My stuff goes in there nice and organized, while I ignore the rest.
I just keep my stuff far away from
$HOME
and not bother about the junk. Not even a subdirectory under$HOME
.Same goes for ’ My documents’ on windows.
Tangentially related: I recently learned that there are tools for handling dotfiles such as chezmoi and yadm. I would suppose that after spending some time on backing up the dotfiles that matter one can purge the remainders without much issue. I also remember some tool that was made for the purpose of cleaning $HOME, but can not recall its name (if anyone knows please let me know).
deleted by creator
xdg-ninja maybe?
Yes, that is the one. Thanks!
The rust library mentioned there doesn’t support system install paths for windows or macOS, it only uses XDG. I recommend the
directories
crate which properly supports Linux, Mac, and Windows.Same with Python. I use a combination of the
platformdirs
andxdg
libraries.Thanks I was going to look for one with multi OS support :)
I just write my config files directly to random unused blocks on /dev/sda, filesystems are overrated.
A filesystem is just writing to random unused blocks with extra steps.
XDG gang, rise up!
Also, I know that this community and dot-files in general are Unix based, but this holds true for Windows development as well. You should be putting app files in the users’
%APPDATA%
directory, not their user folder. It’s probably even more important since Windows doesn’t autohide dot files.One of my proudest accomplishments is contributing to the XDG Base Dir spec. I fixed a typo.
Which one?
The My Documents / Documents folder on Windows is a dumping ground for game saves and random applications. I no longer use it for saving my documents anymore…
Yep, my ~/Projects folder is where I keep anything I need to actually find. All the normal places are full of random cruft.
To be honest, pretty much all my files that actually matter are under my Dropbox folder. Everything else is ephemeral. I mostly depend on Steam or the likes to backup game saves. Not much else I care about. I’ve upgraded my PC a few times (with no full backups) and never missed a single thing that got lost in the upgrade.
I don’t touch it either for two reasons that go together.
- It’s a pig sty before I even get there.
- Nothing in there will ever be included in backups for that reason.
My cloud drive has SO much random flstudio crap in it. That’s the worst program in the world when it comes to that. If you install their program they think they own your hard drive.
Also while I’m bitching about windows folders, why did they make it so weird to get to your home folder? It feels like we aren’t supposed to know it exists anymore.
It makes me so mad every time I remember my instance is fucking censored
For the last point, even worse on Mac
It’s not terrible once you learn the muscle memory.
I’m sure there’s some obscure key bind to go directly there, but I just do
Cmd
+Shift
+G
in Finder to get to the browse to path dialog, type~
, and hit return.Still a stupid extra amount of work, but at least it’s not having to use my mouse, typing
%USERPROFILE%
, or having to type the absolute path. That would piss me off even more.I’m sure there’s some obscure key bind to go directly there
It’s just
Cmd+Shift+H
(for Home). The shortcuts for many of the most common locations are extremely intuitive.Cmd+Shift+A
(Applications)Cmd+Shift+D
(Desktop)Cmd+Shift+L
(~/Library)Cmd+Shift+C
(Computer)
Finder > Go > Home
Been that way for decades. Or you can add it to the sidebar by dragging and dropping, or just edit Finder prefs:
Finder > Preferences > Sidebar
Microsoft only started showing the Home folder by default in 11 I believe so it’s a pretty common pattern to not reveal the home folder (for some asinine reason).
First thing I do on any OS is build my own folder structure under my home.
Unfortunately not even Microsoft does that… On windows having a logical order is a lost battle
.word
You might wanna backup your dotfiles somewhere remote too. I literally lost dotfiles that I’d been building up for years because I couldn’t remember the password to my Linux machine after coming back from vacation. Funny enough though, a couple hours after nuking my OS I magically remember my password.
After two years of typing in the same boot pass on my same laptop at my same job I woke up one day and couldn’t remember it. Almost died trying. Right as I was reaching out to my admin it came to me.
Unless you disk was encrypted, you could have booted up a live distro and back up the files you needed (or even overwrite the shadow file to get a new password)
And maybe could still get them with testdisk 😁
I really did try so many forensic and recovery tools after remembering my password but with no luck 😂
I’m glad you tried! Stories of needless data loss really get to me 😹
Oof. Yeah, I once forgot my LastPass password literally less than 30 seconds after entering it on another device. Muscle memory versus active memory kind of thing.
Put your dotfiles in git (or source control of your choice)- massages it easier to propagate improvements across machines!
One of my greatest pet peeves is random folders appearing in my home folder. Thanks for this
Let’s count them. (not including legacy or standard locations like .local, .config, or .cache, .ssh, and shell configuration files
- .aws
- .azure
- .bun
- .byobu
- .cargo
- .dbus
- .docker
- .dokku
- .keychain
- .kube
- .minikube
- .motd_shown
- .node_repl_history
- .npm
- .nuxt
- .nuxtrc
- .nvm
- .oh-my-zsh
- .pack
- .psql_history
- .pyenv
- .python_history
- .redhat
- .ruff_cache
- .rustup
- .selected_editor
- .sqlite_history
- .sudo_as_admin_successful
- .tmux.conf
- .tox
- .ts_node_repl_history
- .vim
- .viminfo
- .vimrc
- .vscode-server
- .wget-hsts
- .yarn
And a couple more, non-hidden files for Go.
- go
- sdk/go1.20
i can almost ignore the hidden ones, but
~/go
? no thats just rudeWhy aren’t all of these just normal directories under either .local (for data files) or .config (for configuration)???
Actually, I think the XDG directories should be under a single XDG directory either dotted or not (a better name would be OK with me) ~/xdg/Documents, ~/xdg/Music, ~/xdg/Pictures etc.
Documents, Music, etc actually are configurable. Just edit
~/.config/user-dirs.dirs
I also had to (under KDE)
-
Edit the settings for each of the folders in Dolphin (The file manager)
-
Edit the location of the desktop folder in the settings found by right-clicking the desktop and going into “Configure Desktop and Wallpaper” Location.
-
Edit the show item by choosing Custom Location, and adding the XDG directory for the desktop. This setting may not stick.
-
That’s the beauty: XDG compliant applications are entirely configurable using standardized environment variables.
afaik, tmux can use
~/.config/tmux/tmux.conf
or something, if~/.tmux
is not foundNeat! Git has the same behavior.
If these were links to issues that could be reacted to, I’d totally do that.
And wtf is with anaconda3 just permanently changing your “user@machine” terminal prompt?? Who thought that was a good idea?
As someone who uses anaconda, it’s quite useful to know what environment I’m in, but I definitely don’t have it enabled by default.
deleted by creator
deleted by creator
Even when using home manager or any other dotfile manager your $HOME folder is still filled with junk. It maybe in your controlled repo but it still ends up as symlink to that repo.
Hmmmmmm
No.
Great read, thanks for sharing this!