I have long wondered why software installed not use the folders that are already there under .local. We have .local/share which is highly used and .local/bin by Python pip packages. Why do we not use .local/etc for configs and Flatpaks and AppImages be installed in .local/var instead of the .var folder at the root of our home folder? Seems we are adding to the madness of piling into the root of the home folder, or configs which really contain data should be installed in .local/share. Would it be better to install all the configs in .local/etc? Thats how it’s done out on the system-wide configs? .var would have fit nicely under .local/var. (without the dot) Even the cache seems better fit under .local/cache. This would eliminate all the clutter at the root of the home folder? I included a screenshot of my .local folder as an example. Fedora could set the trend to clean up the home folder if we make this transition. The maintainers would have to repackage most software in the repositories, but at least the older folders would not be created again. It would be clean and efficient in my opinion. Also keeping atomic distros like Silverblue clean, from trying to install system-wide by layering? Systemctl —user would be better suited under .local/etc. It’s that way out on the host system.
Upstream developers may choose the directories used under a user’s home directory. Changing the upstream choice is more work for packagers and can be confusing to upstream support forums where user on different distros end up with different locations for files. At one time there was an effort to standardize such things across Linux distros, but it didn’t stick. I worked with a large niche scientific package used in labs with different distros, so had to deal with various files going to different locations depending on the distro causing confusion for collaborations among users with different distros.
I agree. Every Linux distro out there has most of the folders I posted. .local/etc has been there all along. I noticed the fall off of the attempted unification under the XDG but even they kept recommending .config which I think was a mistake. If you look at their chart, the two that didn’t seem to fit was .config and .cache. All the rest were under .local. I will keep compiling my own where I can. This may not ever get fixed until a distro come along that package all their software in .local. When very popular distros like RHEL park packages in your home folder like crc and odo which can grow to over 100GB for Kubernetes, we are in trouble. Look where they parked the Flatpaks. Right at the root of our home folder (.var) as if that couldn’t be put under .local/var or .local/share/applications. Seems it is only used to place .desktop files. Make you wonder who make these decisions.
