I have a multiple user linux system. Well actually a couple of them. They are running different distros which are arch-based, debian-based and fedora-based.
I want to globally use non-executable components not available via my system's package manager. Such as themes, icons, cursors, wallpapers and sounds.
Some of them are my own original work that I manage in git repos. Others are downloaded as packages/collections. If there is a git repo available I prefer to clone because it can theoretically be updated by pulling. And sometimes I make my own forks or branches of other people's work. So it's really a mix.
I want to keep these in a totally separate area where no package manager will go. So that it is portable and can be backed up / copied between systems without confusion. Which is why I don't want to use /usr/local
.
I also want to be able to add/edit in this area without su
to root
. So that I can easily modify or add items which then can be accessed by all users. Also a reason to avoid /usr/local
I tried making a directory like /home/shared/themes
then symlinking ~/.themes
in different users to that. It sometimes worked OK but I ran into permissions issues. Git really didn't seem to like sharing repos between users. I can live with only using a single user to edit the repos but it didn't like having permissions recursively changed to even allow access.
Is there a way to tell linux to look in a custom location for these resources for every user on the system? I also still want it to look in the normal places so I can use the package managers when possible.
fonts - once solved
On one install, I found a way to add a system-wide custom font directory though I am not able to recall how that was done. I believe it had to do with xorg or x11 config files. I can't seem to find in my shell histories how it was done but I will look some more. I do recall the method was highly specific to fonts and didn't appear to be transferable to other resources.
I'd say make a group to fix permissions, put everything in a common directory (that has rw permissions for that group), and symlink everything to the standard locations.