Manage Gnome Shell Extensions from Command Line

Last updated: November 10, 2025 — Leave a comment

This tutorial shows how to install, remove, enable or disable Gnome Shell extensions and configure extensions’ preferences in Ubuntu, Fedora, etc Linux distributions with Gnome Desktop.

We usually install/uninstall Gnome Shell extension by either visiting extensions.gnome.org in web browser or using Extension Manager app, then manage them through either GNOME Extensions or Extension Manager.

Gnome Extension Manager App

For choice, Gnome has a built-in command line tool that can help sometimes without using a graphical user interface.

Why using Command Line

The command line tool gnome-extensions is useful for advanced users and developers for scripting purpose.

It’s also a good choice for installing extensions from local packages (e.g., ZIP archive) without internet connection. And, in some cases you may use gsettings command to configure extension preferences.

Install an Extension from Command Line

Besides using web browser or Extension Manager, user may manually install an extension by putting the source folder (usually name@xxx.xxx.com) to .local/share/gnome-shell/extensions directory.

Say you downloaded an extension package from extensions.gnome.org, by choosing Gnome Shell version and Extension version.

Download an extension from extensions.gnome.org

You may then install it by running command:

gnome-extensions install /path/to/extension.zip

The command do the job decompressing the ZIP archive (.tar.xz, .tar.gz etc also supported) and moving the source to the user’s extension directory mentioned above.

This method however need a log out and back in, before being able to enable the new installed extension.

List Installed Extensions from Command Line

To list all the installed extensions, simply use command:

gnome-extensions list

For choice, you may list user installed extensions via --user option, or system extensions via --system.

gnome-extensions list --user

And, use --enabled option for enabled extensions, --disabled for disabled extensions, and --details for more about extensions, including name, description, source URL, version, and state.

gnome-extensions list --user --enabled

Enable/Disable Extensions

Once you got the extension IDs via the command above, you may get more about it by running command:

gnome-extensions info ubuntu-dock@ubuntu.com

Here replace the ID ubuntu-dock@ubuntu.com with yours.

Then, enable or disable an extension by running command:

gnome-extensions enable ubuntu-dock@ubuntu.com

or:

gnome-extensions disable ubuntu-dock@ubuntu.com

Also replace the extension ID ubuntu-dock@ubuntu.com, and optionally add --quiet flag to ignore error messages (if any).

Configure Extension Preferences from Command Line

NOTE: if you just want to launch the graphical configuration dialog from command line, then use command (replace extension ID):

gnome-extensions prefs ubuntu-dock@ubuntu.com

To configure extension preferences from command line, use gsettings command.

For system extensions, first run command below to list all the available keys and the values:

gsettings list-recursively org.gnome.shell.extensions.dash-to-dock

Here replace dash-to-dock (Ubuntu Dock) to the extension name you’re going to configure. Or, press Tab twice before typing its name to print available choices.

After that, run similar command below to configure an extension key value:

gsettings set org.gnome.shell.extensions.dash-to-dock always-center-icons false

Also replace extension name dash-to-dock, key-name always-center-icons, and key-value false according to the last command output.

Or, run command to reset an extension’s key value to default.

gsettings reset org.gnome.shell.extensions.dash-to-dock always-center-icons

For user extensions, run gnome-extensions list --user to find the ID, then do following steps instead:

  • First, print the extension info, Just Perfection for example, and find out the PATH.
    gnome-extensions info just-perfection-desktop@just-perfection
  • Then, print the extension metadata according to its PATH, and find out the settings schema:
    cat /home/ji/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/metadata.json

  • After found out the extension PATH and settings schema, set the following constants.
    SCHEMADIR=/home/ji/.local/share/gnome-shell/extensions/just-perfection-desktop@just-perfection/schemas
    
    SCHEMA=org.gnome.shell.extensions.just-perfection

    So that I can use $SCHEMADIR and $SCHEMA in next commands without typing full PATH and settings schema.

  • Next, run command to list all the available keys and their values:
    gsettings --schemadir $SCHEMADIR list-recursively $SCHEMA

  • Finally, according to last command output, run commands below to set or reset something:
    gsettings --schemadir $SCHEMADIR set $SCHEMA top-panel-position 1
    gsettings --schemadir $SCHEMADIR reset $SCHEMA top-panel-position

    Also replace the key and value accordingly.

For more, see the Ubuntu gsettings and gnome-extensions man-pages

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Buy me a coffee: https://ko-fi.com/ubuntuhandbook1 |

No Comments

Be the first to start the conversation.

Leave a Reply

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

*