Chapter 11. GNOME Shell Extensions

This chapter introduces system-wide configuration of GNOME Shell Extensions. You will learn how to view the extensions, how to enable them, how to lock a list of enabled extensions or how to set up several extensions as mandatory for the users of the system.
You will be using dconf when configuring GNOME Shell Extensions, setting the following two GSettings keys:
  • org.gnome.shell.enabled-extensions
  • org.gnome.shell.development-tools
For more information on dconf and GSettings, see Chapter 9, Configuring Desktop with GSettings and dconf.

11.1. What Are GNOME Shell Extensions?

GNOME Shell extensions allow for the customization of the default GNOME Shell interface and its parts, such as window management and application launching.
Each GNOME Shell extension is identified by a unique identifier, the uuid. The uuid is also used for the name of the directory where an extension is installed. You can either install the extension per-user in ~/.local/share/gnome-shell/extensions/uuid, or machine-wide in /usr/share/gnome-shell/extensions/uuid.
The uuid identifier is globally-unique. When choosing it, remember that the uuid must possess the following properties to prevent certain attacks:
  • Your uuid must not contain Unicode characters.
  • Your uuid must not contain the gnome.org ending as it must not appear to be affiliated with the GNOME Project.
  • Your uuid must contain only alphanumerical characters, the period (.), the at symbol (@), and the underscore (_).

Important

Before deploying third-party GNOME Shell extensions on Red Hat Enterprise Linux, make sure to read the following document to learn about the Red Hat support policy for third-party software:
To view installed extensions, you can use Looking Glass, GNOME Shell's integrated debugger and inspector tool.

Procedure 11.1. View installed extensions

  1. Press Alt+F2.
  2. Type in lg and press Enter to open Looking Glass.
  3. On the top bar of Looking Glass, click Extensions to open the list of installed extensions.
Viewing Installed extensions with Looking Glass

Figure 11.1. Viewing Installed extensions with Looking Glass