Chapter 14. Enabling and enforcing GNOME Shell extensions


GNOME Shell extensions are add-ons that enhance the functionality and appearance of the GNOME desktop environment. Users can enable extensions for their own desktop session or for all users on the system.

14.1. Enabling system-wide GNOME Shell extensions

You can automatically enable GNOME extensions for all users, which eliminates the need for individual installations. Existing users with personalized extensions are not affected.

Prerequisites

  • Administrative access.

Procedure

  1. Download the extension archive from the GNOME Extensions website.
  2. Extract the archive into the /usr/share/gnome-shell/extensions/ directory:

    # unzip -q <extension-file.zip> -d /usr/share/gnome-shell/extensions/
    Copy to Clipboard

    Replace <extension-file.zip> with the name of the extension zip file.

  3. Adjust the permissions to ensure that the extension files are readable and executable by everyone:

    # chmod -R 755 /usr/share/gnome-shell/extensions/<extension-directory>/
    Copy to Clipboard

    Replace <extension-directory> with the name of the extension directory.

  4. Create a new /etc/dconf/db/local.d/00-extensions file with the following content:

    [org/gnome/shell]
    enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com']
    Copy to Clipboard

    Replace the UUIDs (myextension1@myname.example.com, myextension2@myname.example.com) with the ones you want to enable. You can find the UUID of an extension on its GNOME Shell extensions website page.

  5. Apply the changes to the system databases:

    # dconf update
    Copy to Clipboard

After completing these steps, the specified extensions are enabled by default for all new users on your system.

14.2. Restricting GNOME Shell extensions

By locking down specific GNOME Shell extensions, you can ensure that a predefined set of extensions is consistently available to all users. You can configure a set of mandatory extensions and prevent users from modifying them. The specified extensions are mandatory for all users, and the Looking Glass tool is disabled to ensure compliance with the predefined configuration.

Prerequisites

  • Administrative access.

Procedure

  1. Create a new /etc/dconf/db/local.d/00-extensions file with the following content:

    [org/gnome/shell]
    enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com']
    development-tools=false
    Copy to Clipboard

    Replace the UUIDs (myextension1@myname.example.com, myextension2@myname.example.com) with the ones you want to enable. You can find the UUID of an extension on its GNOME Shell extensions website page.

  2. To prevent users from changing these settings, create a new /etc/dconf/db/local.d/locks/extensions file with the following content:

    /org/gnome/shell/enabled-extensions
    /org/gnome/shell/development-tools
    Copy to Clipboard
  3. Apply the changes to the system databases:

    # dconf update
    Copy to Clipboard

Extensions that are not listed in the org.gnome.shell.enabled-extensions file are not loaded by the GNOME Shell, preventing the user from using them.

14.3. Managing GNOME Shell extensions by using the command line

The gnome-extensions utility is a command-line tool to manage GNOME Shell extensions from the terminal. It provides various commands to list, install, enable, disable, remove, and get information about extensions.

Each GNOME Shell extension has a Universally Unique Identifier (UUID). You can find the UUID of an extension on its GNOME Shell extensions website page.

Procedure

  • To list the installed GNOME Shell extensions, use:

    $ gnome-extensions list
    Copy to Clipboard
  • To install a GNOME Shell extension, use:

    $ gnome-extensions install <UUID>
    Copy to Clipboard
  • To enable a GNOME Shell extension, use:

    $ gnome-extensions enable <UUID>
    Copy to Clipboard
  • To show information about a GNOME Shell extension, use:

    $ gnome-extensions info <UUID>
    Copy to Clipboard
  • To disable a GNOME Shell extension, use:

    $ gnome-extensions disable <UUID>
    Copy to Clipboard
  • To remove a GNOME Shell extension, use:

    $ gnome-extensions uninstall <UUID>
    Copy to Clipboard

Replace the <UUIDs> with the unique identifier assigned to the GNOME Shell extension you want to install.

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat