Restrict 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.

Before you begin

  • You have administrative access.

Procedure

  1. Create a new /etc/dconf/db/local.d/00-extensions file with the following content:
    [org/gnome/shell]
    # The GNOME Shell does not load extensions that are not listed in the `org.gnome.shell.enabled-extensions` file, preventing the user from using them.
    
    enabled-extensions=['myextension1@myname.example.com', 'myextension2@myname.example.com']
    development-tools=false

    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
  3. Apply the changes to the system databases:
    # dconf update

Results

  • 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.