Attached: 1 image
My fellow software engineer,
It's the year 2024.
Please store your #Linux #desktop application configurations ONLY in `$XDG_CONFIG_HOME`.
NOT in `$HOME` or other non-standard or obsolete places.
May #FreeDesktop be your guide.
https://www.freedesktop.org/wiki/Specifications/
#Programming #DevOps #SysAdmin
Maybe Linux should have .local and .roaming folders like Windows. local = only useful on this system, roaming = good to sync across systems. Config would be in .roaming if it’s not machine-specific.
There’s some stuff in~/.config that’s specific to the computer. KDE is a good example - a lot of KDE apps mix config and state in the same file. There’s some solutions for syncing these files, like https://github.com/VorpalBlade/chezmoi_modify_manager which is an addon to Chezmoi that can exclude particular keys when storing an INI-style config file in Git.
I’m sure there’s some config files in there that are entirely specific to the computer. Things like the Wayland per-monitor scaling settings are in there somewhere I think.
There’s also things like data files that you may want to keep in sync across machines. They’re not really configs.
What I want in
$HOME
are the following directories:If I’m on a GUI-based environment:
In general:
I’d like everything else to live within something like ~/.local thanks
Maybe Linux should have
.local
and.roaming
folders like Windows. local = only useful on this system, roaming = good to sync across systems. Config would be in.roaming
if it’s not machine-specific.The only practical difference between Local and Roaming and LocalLow is that developers randomly pick one and dump your game saves in there.
Does
~/.config
fit the bill for the second one?There’s some stuff in
~/.config
that’s specific to the computer. KDE is a good example - a lot of KDE apps mix config and state in the same file. There’s some solutions for syncing these files, like https://github.com/VorpalBlade/chezmoi_modify_manager which is an addon to Chezmoi that can exclude particular keys when storing an INI-style config file in Git.I’m sure there’s some config files in there that are entirely specific to the computer. Things like the Wayland per-monitor scaling settings are in there somewhere I think.
There’s also things like data files that you may want to keep in sync across machines. They’re not really configs.
There is a
.local
folder these days.Profile roaming hasn’t been solved aside from NFS mounts. I guess Syncthing might work.
I know
.local
exists - My comment was more about.roaming
which would be nice to exist, but doesn’t currently exist.I’m using Chezmoi to sync some dotfiles, scripts, etc. to a Git repo and that seems to work well enough for me. I’m not syncing much yet, though.