LinuxCommandLibrary

gnome-extensions

Manage GNOME Shell extensions

TLDR

List all the installed extensions

$ gnome-extensions list
copy

Display information about a specific extension
$ gnome-extensions info "[extension_id]"
copy

Enable a specific extension
$ gnome-extensions enable "[extension_id]"
copy

Disable a specific extension
$ gnome-extension disable "[extension_id]"
copy

Uninstall a specific extension
$ gnome-extension uninstall "[extension_id]"
copy

Display help for a specific subcommand (like list)
$ gnome-extensions help [subcommand]
copy

Display version
$ gnome-extensions version
copy

SYNOPSIS

gnome-extensions <command> [arguments...]
gnome-extensions [--version] [--help]

PARAMETERS

list
    Lists all installed GNOME Shell extensions, showing their names, UUIDs, and current status (enabled/disabled).

info
    Displays detailed information about a specific extension identified by its UUID (Universally Unique Identifier).

show
    An alias for the info subcommand, providing detailed information about an extension.

enable
    Enables a specified extension. The extension must be installed and identified by its UUID.

disable
    Disables a specified extension. The extension must be installed and identified by its UUID.

install
    Installs a new extension from a local ZIP FILE path or a direct URL to an extension package.

uninstall
    Removes an installed extension from the system, identified by its UUID.

prefs
    Opens the graphical preferences dialog for the specified extension, if it provides one. This command typically launches a new window.

reset
    Resets the state of all GNOME Shell extensions, typically disabling them or reverting to default settings.

--version
    Displays the version of the gnome-extensions command-line tool.

--help
    Shows a help message with available commands and options.

DESCRIPTION

`gnome-extensions` is a powerful command-line utility designed for managing GNOME Shell extensions. It provides a comprehensive interface for users to interact with their installed extensions without needing the graphical "Extensions" application or `gnome-tweaks`. This tool is indispensable for system administrators, developers, and users who prefer terminal-based workflows or wish to script extension management tasks.

It allows operations such as listing all installed extensions, enabling or disabling specific ones, viewing detailed information, and even installing new extensions from local files or URLs. Furthermore, it supports uninstalling extensions and opening their preferences dialogs directly. Its capabilities make it crucial for automating desktop setup, troubleshooting extension conflicts, or integrating extension control into larger system management scripts. It directly interfaces with the GNOME Shell's extension system, providing a robust and efficient way to control the behavior and appearance of the desktop environment.

CAVEATS

Session Requirement: Most operations like enabling, disabling, or opening preferences require a running GNOME Shell session. Changes might not take effect immediately without a Shell restart or log out/in.

Compatibility: Extensions are tied to specific GNOME Shell versions. An extension designed for one version might not work correctly or at all on a different version.

Security Risk: Installing extensions from untrusted sources via the install subcommand can pose a security risk, as extensions run with user permissions and can potentially access user data or modify the system.

UUID Volatility: While UUIDs are stable for officially published extensions, locally developed or unofficial extensions might have varying UUIDs or conflicts if not managed carefully.

<B>EXTENSION UUIDS</B>

Each GNOME Shell extension is uniquely identified by a UUID (Universally Unique Identifier). This identifier is typically found in the extension's `metadata.json` file. Commands like info, enable, disable, and uninstall require this UUID to target the correct extension.

<B>OFFICIAL EXTENSIONS WEBSITE</B>

The primary official source for GNOME Shell extensions is extensions.gnome.org. This website allows users to browse, install, and manage extensions directly through a web browser, often complementing the gnome-extensions command for graphical interaction.

HISTORY

The `gnome-extensions` command-line tool emerged as a dedicated interface for managing GNOME Shell extensions, reflecting the growing importance and complexity of the extension ecosystem. Initially, users primarily managed extensions through the official GNOME Extensions website or the graphical GNOME Tweaks application. As the need for more programmatic and automated control grew, `gnome-extensions` was developed, providing a consistent command-line API. It became an integral part of the gnome-shell package or its related utilities, evolving to support new features and address the nuances of extension management across different GNOME Shell versions. Its development underscored the shift towards providing robust CLI tools for desktop environment configuration.

SEE ALSO

gnome-shell(1), gsettings(1), dconf(7), gnome-tweaks(1)

Copied to clipboard