What are Extensions ?

The GNOME Shell extension project is designed to give a high degree of power to the parts of the GNOME interface managed by the shell, you can extend, change and add features to your desktop by simply loading arbitrary JavaScript and CSS code. This gives developers a way to make many kinds of changes and share those changes with others, without having to patch the original source code and recompile it, and somehow distribute the patched code.

It is a replacement for the "applets" or "widgets" system of GNOME 2. Extensions can add their own items to the top panel, but they can also do much more: adding a custom search provider, for instance. If you lack ideas, see this post.

How to Install GNOME Extensions ?

There is a large collection of extensions on the GNOME Shell Extensions repository website. But you won’t be able to install them if you are using Firefox 52 or later. You will need a Chromium based browser. If you have such a browser :

  • You first have to install the Chrome Extension API. (link)
  • Than install the host connector :

sudo add-apt-repository ppa:ne0sight/chrome-gnome-shell
sudo apt-get update && sudo apt-get install chrome-gnome-shell

Once you are done, you should be able to flip the switch on a compatible extension's page to install it. If you have any trouble, use the link at the bottom of the page to file a bug report.

Starting with GNOME 3.22, you can install extensions directly from the Software Center on Fedora 25.

Enabling and Disabling

  • The easiest way is to open the gnome-tweak-tool and enable/disabel your extension in the extensions tab.
  • You can enable and disable installed extensions on the GNOME extension website too.

  • You can as well modify the GSettings key directly :

    gsettings set org.gnome.shell enabled-extensions name-of-the-extension

If your extension does not appear in any of these tools, try to restart your shell by pressing ALT+F2 and typing "r" or "restart" in the dialogue.

Viewing Installed Extensions

Your extensions will be listed :


  • Uninstall an extension by clicking the uninstall button ("X") on https://extensions.gnome.org/local/

  • Alternatively you can check the extensions' installation location (~/.local/share/gnome-shell/extensions) and delete the extension manually.


  • On systemd-based systems (like Debian), you can see error and log output of extensions using

journalctl /usr/bin/gnome-session -f. On other systems, logs might be written to ~/.xsession-errors.

  •  gnome-shell --replace  in a terminal will show errors in real time.

Writing your own Extension

If you are interested in developing your own extension, you will have to :

Once you have all of this done, you can :

Several older tutorials exist if you need more help :

Projects/GnomeShell/Extensions/EcoDoc (last edited 2017-05-06 05:31:37 by Fulleco)