gnome-extensions
Manage GNOME Shell extensions
TLDR
List all the installed extensions
Display information about a specific extension
Enable a specific extension
Disable a specific extension
Uninstall a specific extension
Display help for a specific subcommand (like list)
Display version
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.