Command line tool to manage your Gnome Shell extensions
Project description
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
- Automatic Gnome Shell restart if needed
- Update all your extensions with one command:
gnome-extensions-cli update
- You can also uninstall, enable and disable extensions and open preferences
Install
Install from PyPI
$ pip3 install -u gnome-extensions-cli
Install latest version from the repository
$ pip3 install -u git+https://github.com/essembeh/gnome-extensions-cli
Or setup a development environment
# 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
# create the venv using poetry
$ poetry install
$ poetry shell
(venv) $ gnome-extensions-cli --help
Using
List your extensions
$ gnome-extensions-cli list
Installed extensions:
[ ] auto-move-windows@gnome-shell-extensions.gcampax.github.com
[X] dash-to-panel@jderose9.github.com (v37)
[X] todo.txt@bart.libert.gmail.com (v25)
# Use verbose to see available updates
$ gnome-extensions-cli list -v
Installed extensions:
[ ] auto-move-windows@gnome-shell-extensions.gcampax.github.com
available version: 37
[X] dash-to-panel@jderose9.github.com (v37)
[X] todo.txt@bart.libert.gmail.com (v25)
Note: the first
[X]
or[ ]
indicates if the extension is enabled or not
You also have a search
command to print informations from Gnome extensions website
$ gnome-extensions-cli search 570
Todo.txt: todo.txt@bart.libert.gmail.com
url: https://extensions.gnome.org/extension/570
tag: 8141
recommended version: 25
installed version: 25
available versions:
version 30 for Gnome Shell 3.36
version 29 for Gnome Shell 3.34
version 28 for Gnome Shell 3.32
[...]
Install, uninstall and update
# Install extension by its UUID
$ gnome-extensions-cli install dash-to-panel@jderose9.github.com
# or use its package number from https://extensions.gnome.org
$ gnome-extensions-cli install 1160
# You can also install multiple extensions at once
$ gnome-extensions-cli install 1160 570
# Uninstall extensions
$ gnome-extensions-cli uninstall todo.txt@bart.libert.gmail.com
# ... or use extension number
$ gnome-extensions-cli uninstall 570
# You can enable and disable extensions
$ gnome-extensions-cli disable todo.txt@bart.libert.gmail.com dash-to-panel@jderose9.github.com
$ gnome-extensions-cli enable todo.txt@bart.libert.gmail.com
# equivalent to
$ gnome-extensions-cli disable 570 1160
$ gnome-extensions-cli enable 570
The update
command by default updates only the enabled extensions, use --all/-a
to also update disabled extensions
# Update all enabled extensions
$ gnome-extensions-cli update
# Update only given extensions
$ gnome-extensions-cli update dash-to-panel@jderose9.github.com
# ... or use extension number
$ gnome-extensions-cli update 1160
Backends: DBus vs File
gnome-extensions-cli
can interact with Gnome Shell using two different implementations, using dbus
or using a file
based way:
By default, it uses
dbus
which is the safest way ;)
DBus
Using --backend dbus
, the application uses dbus messages to communicate with Gnome Shell directly.
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
gnome-extensions-cli edit EXTENSION1_UUID
Cons: - Installations are interactive, you are prompted with e Gnome Yes/No dialog before installing the extensions, so you need to have a running Gnome sessions
File
Using --backend dbus
, 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
- Many
gnome-extensions-cli
alternatives use this method ... but Cons: - Some extensions are not installed well
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gnome_extensions_cli-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | df3bd6d4017006301ed69dcfa9a42cf6c6c9d9c35205b9ca424c79f6033a4cff |
|
MD5 | 93d3011e04500a9ebc64f24952a41bbc |
|
BLAKE2b-256 | 1eed1064be2a102e54785299dfc23e1d75f4d0395888503b36338dd211fc22f4 |
Hashes for gnome_extensions_cli-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a7a6a7eaa182f79457284ff18d0f65609a40d3c88273673bd95f800fb3042db |
|
MD5 | 89fc09dc62f77f0237d7e0435e587c18 |
|
BLAKE2b-256 | 6602c0fa451e2c10b7cef88ae280b7d4167ed62ebc08cd52fabf3c5e0a28a426 |