01. Overview & Architecture

Profile: v0.6.5
Schema validatedSource pinned
Purpose
Native app to browse, install and manage GNOME Shell extensions.
Compatibility
Any distro (Server: BOTH)
Desktop Part
DE extensions
Window Manager & Theme
GNOME / Other

02. Installation & Deployment

Before you installThis changes your desktop configuration and installs packages. Run it as your normal user, never with sudo: it asks for sudo only where a step needs it (listed below).The guided installer shows its plan first. Files it would replace are kept unless you approve. Everything it copies, clones or appends to in your home folder is backed up and verified first, and --rollback restores it. Packages, sudo changes and the other commands listed under Impact are not undone.
IntegrityEach release from main builds the installers in GitHub Actions and signs them with a GitHub build attestation. Verify your download against the repository, not this website (Option B, step 2). If it does not verify, don't run it.
ImpactPackages: extension-manager
RecoveryGuided: backups in ~/.local/state/0xtsoa/backups/, undo with bash install.sh --rollback.Manual: the steps below only write in the download folder or run listed commands.
Option A: manual installAdvanced
Read the source at the reviewed commit, back up, then run each step yourself.
$git clone https://github.com/mjakeman/extension-manager ~/0xtsoa-review/mjakeman-extension-manager# 1. clone to a review folder
$git -C ~/0xtsoa-review/mjakeman-extension-manager checkout --detach 43a5460222dc8b98deeb4ab444b6720adc8834fa# 2. the reviewed commit
Then the steps. Package commands are written for Arch; on other distros use your package manager.

Step-by-step deployment protocol

Step-by-step deployment
1Install extension-manager (Arch repos)
$sudo pacman -S --needed extension-manager
$# Other distros: see the upstream README
Option B: guided installerRecommended
The same steps as one script for any distro. It shows the plan first, keeps files you already have unless you approve replacing them, and backs up everything it changes in your home folder. Never pipe it into a shell.
$curl -fsSLo install.sh 'https://www.0xtsoa.dev/configs/mjakeman/extension-manager/install.sh'# 1. download
$gh attestation verify install.sh --repo nyharena25/0xTsoa --signer-workflow nyharena25/0xTsoa/.github/workflows/attest-installers.yml# 2. verify (GitHub CLI 2.49+, signed in)
$less install.sh# 3. read it
$bash install.sh --dry-run# 4. preview: changes nothing
$bash install.sh# 5. install (asks first)
$bash install.sh --rollback# undo the file changes
View script in browserOther options: --force (replace conflicts, backed up first), --yes, --help

03. Screenshot Gallery // Extension Manager

Capture 01 // Fullscreen
Screenshot of the main GUI (light mode)
01 / 04

04. Documentation & Guide

Source: mjakeman/extension-managerRef: 43a5460222
README.md|GitHub Flavored Markdown

📋 Features

The tool supports:

  • Browsing and searching extensions from extensions.gnome.org
  • Installation and Removal
  • Enabling and Disabling
  • Updating in-app (GNOME 43+)
  • Screenshots & Images
  • Ratings & Comments
  • Translations (add your language!)

If there's something you'd like to see, contributions are welcome!

💬 Community

We now have a matrix room for Extension Manager.

Join and say hello! https://matrix.to/#/#extension-manager:matrix.org

💻 Installing

Flatpak is the recommended way to install Extension Manager.

You can get the latest version from flathub by clicking the button below. There may also be independently-maintained packages available for your distribution.

Get it on Flathub

Third Party Packages

You may also be able to obtain Extension Manager from your distribution's package manager.

Important

These packages are maintained independently and thus may differ from the official version on Flathub. There is no guarantee of support. Please report any issues experienced to the package maintainer (not here!).

![Packaging status](https://repology.org/badge/vertical-allrepos/extension-manager.svg)

🌐 Translations

Extension Manager is translated into more than 30 languages.

Note

We use Weblate - an open source continuous localisation tool - for translation management. Access to Hosted Weblate is kindly provided free of charge to the Extension Manager project.

Contribute

Contributions to translations are always welcome!

We have a comprehensive translation guide here.

If you are new to Localisation (l10n), fear not! The entire process is explained above in as much detail as possible. If you have any trouble, please also get in touch.

⚠️ Known Issues

Extensions are not being updated

Updates do not work out of the box on GNOME 40 and certain older versions of GNOME 41 and 42 unless the official GNOME Extensions app is also installed. See here for details and a simple workaround: Wiki Page

⏰ Using Unsupported Extensions

GNOME Shell will not load extensions that were not designed for your current version. You can override this behaviour by manually disabling GNOME Shell's version check. Extension Manager will respect this preference and allow you to use unsupported extensions fully.

Caution

Unsupported extensions will likely not work as intended and may introduce instability to your system. Disable the version check at your own risk.

Important

Re-enable the version check before filing issues against GNOME components.

Turn off the version check and allow unsupported extensions:

gsettings set org.gnome.shell disable-extension-version-validation true

Use the default setting and return to safety:

gsettings reset org.gnome.shell disable-extension-version-validation

🔨 Building

The easiest way to build is by cloning this repo with GNOME Builder. It will automatically resolve all relevant flatpak SDKs automatically.

Extension Manager needs a recent version of the GNOME SDK in order to build. See the Development or Stable Flatpak manifests for a full dependency list.

Dependencies

Extension Manager depends on the following libraries:

  • gettext
  • glycin (and glycin-gtk4)
  • gtk4
  • libadwaita
  • libjson-glib
  • libsoup
  • libxml2
  • blueprint

On Debian-based distributions, the required dependencies can be installed with the following command:

sudo apt install blueprint-compiler gettext libadwaita-1-dev libglycin-2-dev libglycin-gtk4-2-dev libgtk-4-dev libjson-glib-dev libsoup-3.0-dev libxml2-dev meson

Building From Source

meson setup _build
meson compile -C _build
meson install -C _build

👫 Code of Conduct

This project follows the GNOME Code of Conduct. Please adhere to it in all project spaces and interactions.

GitHub Flavored Markdown (github-markdown-css)README snapshot at 43a5460222