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.

  • Lunya \ she/it@iusearchlinux.fyi
    ·
    3 months ago

    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.