Enablling machine wide gnome shell extensions

I have multiple users across multiple machines, so it makes sense to have extensions installed only once then available to all users. However, I can’t get it to work. It’s a fresh install of 42.3.

I have installed extensions as a user, then copied the folder using the UUID from ~/.local/share/gnome-shell/extensions/some.extension@gmail.com to /usr/share/gnome-shell/extensions/some.extension@gmail.com. I notice that the default install has several extensions already installed there, AlternateTab, Applications menu etc, and these are indeed available to all users. However, my newly copied ones do not show up for all users in their Tweak Tool.

I have followed https://help.gnome.org/admin/system-admin-guide/stable/extensions-enable.html.en But nothing happens after doing that (tried multiple permutations) and I notice that the files that guide tells me to create and not already there which they should be if Suse is following that procedure.

So, how does Suse Leap install those extensions machine-wide? and how do I replicate that action with my chosen extensions? OFC I have logged out, ATL F2 r, rebooted etc etc. Permissions seem fine.

Tks/T

Hi
I would guess you haven’t rebuilt the schemas or are in the correct location…

If you look at the rpm spec file for the common extensions you can see where things go
https://build.opensuse.org/package/view_file/openSUSE:Leap:42.3/gnome-shell-extensions/gnome-shell-extensions.spec?expand=1

Did you download from the respective github repo, or just copy the extension from a user directory (won’t work no schema)?

@MalcolmLewis
Tks v.much for your guidance…I got it working. Indeed, what I was doing was using extensions.gnome.org with the chrome extension to first install them locally as a user, then just giving it rather brutal “sudo cp -r …” to place the UUID head folder of each extension into /user/share/gnome-shell/extensions. Instead of doing that, if I sudo wget or git clone from the github repo of each extension from within /user/share/gnome-shell/extensions then it works fine. Some extensions require a basic compilation, but most just unpack subfolders and it was simply a matter of renaming the head folder to the extension’s UUID (which looks like an email address - something like some.extension@blah.com). ALT F2 r and they’re all in tweak tool :slight_smile:

So, 8 new system wide extensions happily installed. Available to all users to enable//disable. They all seem (haven’t tested extensively) to keep each user’s settings separate as well. I can’t see why this isn’t the default location for extensions if each user can enable/disable separately - maybe I’ll find out why in a few weeks :open_mouth:

Tks again
T

Hi
Well the system wide ones (if correct) should be in a disabled state (off, but working) and remain grayed out in the user tweak tool…

If your wanting to enable/disable on a per user basis, then perhaps would be better to have pre-configured somewhere and as a user is created and the first time they log in the extensions are copied over into their home directory (/etc/profile.d).