How to Use GNOME Extensions

How to Use GNOME Extensions

This guide helps you get started with GNOME (Shell) Extensions. When I reference ‘GNOME Extensions’ instead of ‘GNOME Shell Extensions,’ understand both have the same meaning. The scope of this post is mainly Debian-based distributions like Ubuntu, Pop-OS, and Debian.

GNOME Extensions have been around for quite some time. And still, to this day, many people are not taking full advantage of its possibilities. In this guide, I will help you to start navigating the beautiful world of GNOME Extensions. What is a GNOME (Shell) Extension? Finding GNOME (Shel) Extensions. Installing GNOME (Shell) Extensions. And Managing GNOME (Shell) Extensions. I will take through all these topics and take you from the beginning of where to start all through the journey of installing, managing, updating, and even removing extensions.

What is a GNOME (Shell) Extension?

Before we start with What is a GNOME (Shell) Extension. I will be sure to give you some more information. An explanation that is skipped by many blogs. What is GNOME Shell? Well, let’s not dive too deep into it. It’s your desktop. The user interface from where you launch your applications, the system tray, and notifications at the top. That is the GNOME Shell.

So then, “What is a GNOME (Shell) Extension ?The official explanation can be read here. But to put it is simple. GNOME (Shell) Extensions are little blocks built by various people, and their goal is to change how GNOME Shell works. That’s an excellent way of avoiding the well-known synonym called a plugin.

So what can they do? GNOME (Shell) Extensions have to power to alter the GNOME Shell, your desktop. The changes can be minimal. For example, they move the clock from its default center top position to the right. Or even significant changes like how windows move and behave when you are dragging them around.

Gnome (Shell) Extension Example
Gnome (Shell) Extension example

Finding GNOME (Shell) Extensions

So now we know what they are for, and we have a rough idea of what they can do. What’s next? To customize our GNOME shell, we now need to know where to get them. Fortunately for us, instead of scouring the internet to find GNOME (Shell) Extensions, there is a single place. The GNOME Shell project provides a location for all extensions to be published. It’s a free marketplace where everybody who creates an extension publishes it. You can find it here, extensions.gnome.org is the official place to publish extensions. So while installing extensions from other locations is possible, I strongly suggest sticking to extensions.gnome.org.

Install Requirements

Before you visit extensions.gnome.org, you might have to install some essential GNOME extensions, enabling you to install extensions from the web portal. Most popular distributions provide a package with these minimal set extensions to get your system ready. By installing these through your distribution package manager, you do not have to worry about compatibility or updates.

sudo apt install gnome-shell-extensions chrome-gnome-shell
sudo dnf install gnome-shell-extensions chrome-gnome-shell
sudo pacman -Syu gnome-shell-extensions chrome-gnome-shell

Restarting the GNOME Shell is optional but very advisable. How to restart the GNOME Shell, the easiest solution is to logout and login again. Installing an extension from the website requires two components: a native host connector and a browser plugin. Installing the chrome-gnome-shell takes care of the native host connector.

Note: while the native host connector has the word chrome in it, it does not relate to the Google Chrome browser.

After installing the chrome-gnome-shell, you are now almost ready to install extensions. Continue and open the website extensions.gnome.org. The first time you visit it, it will show you the following message.

To control GNOME Shell extensions using this site, you must install GNOME Shell integration that consists of a browser extension and native host messaging application.

First time visit of extensions.gnome.org

You can safely click on the provided link called “Click here to install browser extension” we already took care of installing the native host connector, so after you refresh the web page. The error should disappear, and you will be ready to install extensions. If not, please restart your browser.

The first thing I would suggest is only to show the extensions compatible with your version of the GNOME Shell. Select “Current Version” for the option “Compatible with.”

compatibility selection

Sometimes extensions are a bit behind, meaning that the author did not yet have the time to provide an update to the latest version of the GNOME Shell. In such events, you might want to keep the default setting of “All versions” for compatibility. In this case, you at least need to know which version of the GNOME Shell you are running. Get your current GNOME Shell version with the command:

gnome-shell --version

Installing GNOME (Shell) Extensions

When it comes to installing extensions, it’s pretty straightforward. When searching for an extension, pick the one you like and install. Well, let’s go over it step by step. You can search for an extension using the search bar, and the neat thing about it is that it will also search in the full description of the extension. This is very important because sometimes, the developers of an extension do not give it a name that makes sense. For most extensions, however, the names are pretty explanatory.

Once you have found an extension, click on its name to open its description page. Here you will find an On/Off slider. This slider is actually what you need to click to install an extension.

overview description
Click the “On/Off” slider to install the extension

After clicking on the “On/Off” slider to request installation of the extension, the system will ask for confirmation to install the extension.

confirm install gnome extension
Install confirmation dialog

After you press “Install” and thereby confirm the extension installation, you will see that additional buttons will appear next to the “On/Off” slider. If these buttons do not appear, you can refresh the web page by clicking Refresh in your browser or pressing F5.

install gnome extension
Additional button appear next to “On/Off” after successful install

So far, you have learned to install an extension. Now on to the next step, which is managing your extensions.

Managing GNOME (Shell) Extensions

Installing extensions is like any other software; at some point in time, maintenance has to be done. So the next step in our journey is managing our plugins. I will be teaching two different ways of managing your extensions. I will start with my personal favorite. GNOME Tweaks. In all major distributions, there is a small utility available that makes managing and tweaking other parts of the GNOME Shell very easy. The utility GNOME Tweaks can be installed with the following command:

sudo apt install gnome-tweaks
sudo dnf install gnome-tweaks
sudo pacman -Syu gnome-tweaks

After installation of GNOME Tweaks and opening it, your extensions can be managed from the extensions tab.

Manage gnome extensions with gnome tweaks
GNOME Tweaks – Extensions

Through the Extensions tab of the GNOME Tweaks, utility extensions can be turned off and on. This can be very useful if you temporarily need to disable an extension while waiting for the author to update the extension. Suppose the extension shows a Gear button next to the “On/Off” slider, which means that the extension in question has additional configuration options.

The extension tab provides a useful “Enable/Disable” for all extensions. This slider is within the title bar of the GNOME Tweaks utility. I advise you only to use this option if you encounter problems with your GNOME Shell.

The GNOME Tweaks utility only provides an option to turn an extension on or off. It does not offer an option to remove an extension, as mentioned before; I will provide two options for managing your extensions. The second option of how to manage your extensions also allows for the removal of extensions.

The native host connector manages the extensions. What does that mean? It means you can control all the extensions through the website extensions.gnome.org. At the top of the web page, you will find an option called “Installed Extensions” this will allow you to manage your installed extensions. Open this web-based control panel directly with the link Installed Extensions.”

Note: If I manage my extensions through a web page, will everything break if I delete my cookies and temporary internet files or if something happens to my browser? No, nothing will happen even if you reset your browser. Your browser talks to your GNOME Shell. Your browser plugin you installed earlier talks to the native host connector. Or reinstall the browser plugin. The web page will still show you all the extensions you have installed. So there is nothing to worry about.

extensions.gnome.org can show you all the installed extensions. The difference with the GNOME Tweaks utility is that it will also show a red remove button to remove the extension.

Manage gnome extensions
Installed extensions as shown by extensions.gnome.org

Some extensions might not show a button for removal. Removal of these extensions can not be done because they are part of your distribution. Without these extensions, your distribution will not function properly. As shown in the above example, “Cosmic Dock” cannot be removed because it is part of the core GNOME Shell as provided by Linux distribution Pop!_OS.

Through this guide I hope you have learned how to find, install and manage the GNOME (Shell) Extensions which will make the GNOME Shell your own. Please leave a comment or share this post if you enjoyed this guide.

Here you can find a list of the best extensions for the GNOME Shell.