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 or disable extensions and open preferences
Install
Install from PyPI
$ pip3 install --upgrade gnome-extensions-cli
Install latest version from the repository
$ pip3 install --upgrade git+https://github.com/essembeh/gnome-extensions-cli
Install with pipx
$ pipx install gnome-extensions-cli --system-site-packages
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
By default, the list
command only display the enabled extensions, using -a|--all
argument also displays disabled ones.
Show some details about extensions
The show
command fetch details from Gnome website and print them.s.
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 todo.txt@bart.libert.gmail.com
# Uninstall extensions
$ gnome-extensions-cli uninstall todo.txt@bart.libert.gmail.com
# You can enable and disable extensions
$ gnome-extensions-cli enable todo.txt@bart.libert.gmail.com
$ gnome-extensions-cli disable todo.txt@bart.libert.gmail.com dash-to-panel@jderose9.github.com
The update
command without arguments updates all enabled extensions.
You can also update
a specific extension by giving its uuid.
Note: the
--install
argument allow you to install extensions given toupdate
command if they are not installed.
Backends: DBus vs Filesystem
gnome-extensions-cli
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 tofilesystem
ifdbus
is not available)
DBus backend
Using --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 EXTENSION_UUID
Cons:
- Installations are interactive, you are prompted with a Gnome Yes/No dialog before installing the extensions, so 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 (usign ssh for example)
- 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.9.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1017be9bdc790c9ab39489d499fb4309a831d0f685f9c6033f3330a179e66aba |
|
MD5 | cca1f8cba35c2ede881bb443c58bd22d |
|
BLAKE2b-256 | e092e959874674be7ff9f938bbbadbd0e49bf5d148dfbe5f53cc1d5215aded1e |
Hashes for gnome_extensions_cli-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 691be77840d49478aae3820e631a26d14a794d15ad1bea8fa8402f5b7877e6d8 |
|
MD5 | cb60c36ea09bef822257304c8ff4ea8a |
|
BLAKE2b-256 | ce98321f65ac2ea2669ecfe8ea713d34eed8b7d65307456ce65a662fc485f4c7 |