According to this answer, GNOME shell extensions can be found in two directories. Namely,

  • ~/.local/share/gnome-shell/extensions/
  • /usr/share/gnome-shell/extensions/

If I have the same extension (but of different versions) installed into each of these directories, how do I know which extension will actually be used when I log in as a standard user? Or will such a situation cause a conflict to GNOME shell? The assumption here is that this extension is enabled.


  • ~/.local/share/gnome-shell/extensions/extA@gmail.com
  • /usr/share/gnome-shell/extensions/extA@gmail.com

Also, as root/sudo this command was executed.

$ gsettings set org.gnome.shell enabled-extensions "['extA@gmail.com']"

Now, when I am logged-in as user, which extensions will I be using?

1 Answer 1


Like many other things (for example .desktop launchers for applications), the local directory has the higher priority.

(Now defunct) 'Ubuntu GNOME' flavour of Ubuntu used to come with a few extensions (e.g. AlternateTab, Applications Menu, Window List etc.) installed system-wide (hence in the /usr/share/gnome-shell/extensions/ directory) by default. If there was an update for such an extension and if the user updated it using the GNOME Shell Extensions website, it used to create a local copy (in the ~/.local/share/gnome-shell/extensions/ directory) of the extension with the updated version overriding the older system-wide one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.