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 -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
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.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd0bae4ef03ceb2a6daf83d200753fb8aa60d4cb20542814d0f38b6ba245af92 |
|
MD5 | c88a24ead36fd5148e2069bdaeb7c9d1 |
|
BLAKE2b-256 | 98c3ca2ad4dd20d049b499f54fd4d5743387cdc0bf7a7a3475d5a967809cac87 |
Hashes for gnome_extensions_cli-0.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba2d59901a12bbe5b5a68ca72c3dd80a83a636455268ce91c0e809c78c6b3f24 |
|
MD5 | 42ee5c4efb37059275c86f28659d1e9e |
|
BLAKE2b-256 | 9cc9adfe8e494d09d5a6618772411cf460410e49fa8f816c8a58701be539c8c8 |