Skip to main content

Github PyPi Python CI

gnome-extensions-cli

Install, update and manage your Gnome Shell extensions from your terminal !

Features

  • You can install any extension available on Gnome website
  • Use DBus to communicate with Gnome Shell like the Firefox addon does
    • Also support non-DBus installations if needed
  • Automatically select the compatible version to install for your Gnome Shell
  • Update all your extensions with one command: gext update

Available commands:

  • gext list to list you installed extensions
  • gext search to search for extensions on Gnome website
  • gext install to install extensions
  • gext update to update any or all your extensions
  • gext uninstall to uninstall extensions
  • gext show to show details about extensions
  • gext enable to enable extensions
  • gext disable to disable extensions
  • gext preferences to open the extension configuration window

Note: gext is an alias of gnome-extensions-cli

Install

Releases

Releases are available on PyPI

Note: PipX is the recommended way to install 3rd-party apps in dedicated environments.

# install using pip
$ pip3 install --upgrade gnome-extensions-cli

# or using pipx (you need to install pipx first)
$ pipx install gnome-extensions-cli --system-site-packages

# gext is an alias for gnome-extensions-cli
$ gnome-extensions-cli --help
$ gext --help

From the source

You can also install the latest version from the Git repository:

$ pip3 install --upgrade git+https://github.com/essembeh/gnome-extensions-cli

You can setup a development environment with, requires Poetry

# dependencies to install PyGObject with pip
$ sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0

# clone the repository
$ git clone https://github.com/essembeh/gnome-extensions-cli
$ cd gnome-extensions-cli

# install poetry if you don't have it yet
$ pipx install poetry

# create the venv using poetry
$ poetry install
$ poetry shell
(.venv) $ gnome-extensions-cli --help

Using

By default commands output use terminal colors and styles for a better experience. If you want to disable the colors and style, when using gext in shell scripts for example, you can

  • use gext --no-color ...
  • or set the environment variable export NO_COLOR=1 in your shell script before calling gext

List your extensions

By default, the list command only display the enabled extensions, using -a|--all argument also displays disabled ones.

gext list

Install, update or uninstall extensions

The install commands allows you to install extensions from their uuid or pk.

Note: You can use search command to find extensions, gext prints uuids in yellow .

# Install extension by its UUID
$ gext install dash-to-panel@jderose9.github.com

# or use its package number from https://extensions.gnome.org
$ gext install 1160

# You can also install multiple extensions at once
$ gext install 1160 todo.txt@bart.libert.gmail.com

# Uninstall extensions
$ gext uninstall todo.txt@bart.libert.gmail.com

# You can enable and disable extensions
$ gext enable todo.txt@bart.libert.gmail.com
$ gext disable todo.txt@bart.libert.gmail.com dash-to-panel@jderose9.github.com

gext install

The update command without arguments updates all enabled extensions. You can also update a specific extension by giving its uuid.

gext update

Note: the --install argument allow you to install extensions given to update command if they are not installed.

Search for extensions and show details

The search command searches from Gnome website and prints results in your terminal:

gext search

The show command fetches details from Gnome website and prints them:

gext show

Under the hood: DBus vs Filesystem

gext can interact with Gnome Shell using two different implementations, using dbus or using a filesystem operations.

Note: By default, it uses dbus (as it is the official way), but switches to filesystem if dbus is not available (like with ssh sessions)

DBus

Using --dbus, the application uses dbus messages with DBus Python API to communicate with Gnome Shell directly.

Installations are interactive, like when you install extensions from your browser on Gnome website, you are prompted with a Gnome Yes/No dialog before installing the extensions

Pros:

  • You are using the exact same way to install extensions as the Firefox addon
  • Automatically restart the Gnome Shell when needed
  • Very stable
  • You can open the extension preference dialog with gext edit EXTENSION_UUID

Cons:

  • You need to have a running Gnome session

Filesystem backend

Using --filesystem, the application uses unzip packages from Gnome website directly in you ~/.local/share/gnome-shell/extensions/ folder, enable/disable them and restarting the Gnome Shell using subprocesses.

Pros:

  • You can install extensions without any Gnome session running (using ssh for example)
  • Many gext alternatives CLI tools use this method

Cons:

  • Some extensions might not install well

Metadata

Release files for gnome-extensions-cli 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gnome-extensions-cli 0.11.0
File Size Uploaded Provenance Actions
gnome_extensions_cli-0.11.0.tar.gz 19.1 kB Without provenance Details for gnome_extensions_cli-0.11.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gnome-extensions-cli 0.11.0
File Interpreter ABI Platform Actions
gnome_extensions_cli-0.11.0-py3-none-any.whl Python 3 none any Details for gnome_extensions_cli-0.11.0-py3-none-any.whl

Total release size: 45.6 kB

Release files / gnome_extensions_cli-0.11.0.tar.gz

Download URL gnome_extensions_cli-0.11.0.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e4e2f499ad7bad703e5120c04d54173b7391583030a06077c7ce41488b116a96
BLAKE2b-256 checksum
How to use checksums
f48b1226b048198f9a5e04c473db31fd867a90a2c4cb3a2aabe0e31a370be722
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

Release files / gnome_extensions_cli-0.11.0-py3-none-any.whl

Download URL gnome_extensions_cli-0.11.0-py3-none-any.whl
Size 26.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c54a61e1bf0c0003413fadc5afd88f738ec8119b06cd2be42f49151862bf2581
BLAKE2b-256 checksum
How to use checksums
b91b2befef6f7b510fc6307319a76d041ef18247062c4180bc9843dede6ffaab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

Security for gnome-extensions-cli 0.11.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page