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 --user gnome-extensions-cli
Install latest version from the repository
$ pip3 install --user 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
$ git clone https://github.com/essembeh/gnome-extensions-cli
$ cd gnome-extensions-cli
$ make venv
$ make install
$ make test
$ source venv/bin/activate
(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.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87d8399f4dc595d75b2beb494e2027afa38f0ba9d138c337621dea2d48584979 |
|
MD5 | 23fe95f6bd50a4827ff4c01afcdf656f |
|
BLAKE2b-256 | 665ff751b5d9fe3056b173e80015a35d5bc5975b2a622efc1abb583b463fefad |
Hashes for gnome_extensions_cli-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fb76d0beae201e945ab40a37f4cded5d7f324b83402ab59ba5b623ebf64ace3 |
|
MD5 | 064977f362c04b11751f7986eac7260e |
|
BLAKE2b-256 | 022462413db5f32178c4d0cd8a03cc7fe7b0b87c937bd1188b84ccec8570fc28 |