An extension manager for browsing and installing GNOME Shell Extensions.

Extension Manager

A native tool for browsing, installing, and managing GNOME Shell Extensions.

Written with GTK 4 and libadwaita.

Screenshot of the main GUI

Features

The tool supports:

  • Browsing and searching extensions from extensions.gnome.org
  • Installation
  • Enabling and Disabling
  • Uninstall

Things that are not yet supported:

  • Updating extensions in-app
  • Translations (help wanted)

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

Building

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

If you run into issues, make sure you have the gnome-nightly flatpak repository installed.

Owner
Matt Jakeman
Studying Software Engineering at the University of Auckland | Formerly @firox263
Matt Jakeman
Comments
  • No extensions are installing

    No extensions are installing

    The install button does not actually install anything on my system. My distro is Fedora 36 and I used Flatpak to install extension manager. I've even tried manually installing extensions from the web but the browser doesn't install anything either.

  • Updating needs the 'GNOME Extensions' app on GNOME 40

    Updating needs the 'GNOME Extensions' app on GNOME 40

    I had a situation where i opened the app knowing there was an update for Just Perfection. However nothing seemed to happened, no sign of the update at all. I closed and reopened the app a few times to try and trigger an update check but again nothing happened. I then installed the official extensions app and that immediately seemed to get the update. Now i am not quite sure if the app hadn't triggered the check properly or even what need to happen for a check to occur but a way that i can manually check for updates would have been useful here

  • Bad looking on Ubuntu 22.04

    Bad looking on Ubuntu 22.04

    Hello there, this is the look of Extension Manager on my pre-released Ubuntu 22.04 I am using the dark theme by the way.

    • Dark theme is not being applied even when forcing using the menu on the top
    • Top bar is stretched.
    • Icons on the top bar are glued close to the text
    • List items are squished and not well formatted

    image image

    What do I do to check if this is being caused by Ubuntu or a missing config file?

    Do you know any workaround for any of these issues?

  • Crashes! behind system proxy

    Crashes! behind system proxy

    I'm using U 22.04 and a VPN app to go out . My system proxy is 127.0.0.1:. I have to use the app + system proxy pair for Internet.

    Every time I click Browse, the app crashed with error "Segmentation fault (core dumped)"

    Please tell me the solution. Thanks!

  • SSL Handshake failure while installing extensions

    SSL Handshake failure while installing extensions

    ** (extension-manager:2): CRITICAL **: 02:51:28.526: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code36: GDBus.Error:org.gnome.Shell.ExtensionError: Unexpected response: SSL handshake failed

  • Application not starting if using Nvidia drivers on Wayland

    Application not starting if using Nvidia drivers on Wayland

    Hi, i'm using Ubuntu 22.04 (fresh install) with closed source Nvidia 510 drivers and Wayland session.

    Applications fails to open with the following error: Gdk-Message: 23:33:06.474: Error 71 (Protocol error) dispatching to Wayland display.

    The only way i found to start it, it's using the following variables: GSK_RENDERER=cairo extension-manager

    Thanks

  • Inconsistent headerbar height

    Inconsistent headerbar height

    The headerbar does not seem to match its vertical height, with any other apps on my system. Running gnome 42, with an assortment of GTK3, GTK4 and libadwaita apps.

    Screenshot from 2022-06-02 04-23-10

  • Missing glib2 dependency.

    Missing glib2 dependency.

    ../extension-manager/src/local/shell-dbus-interface.c:17:12: fatal error: gio/gunixfdlist.h: No such file or directory
       17 | #  include <gio/gunixfdlist.h>
          |            ^~~~~~~~~~~~~~~~~~~
    

    That file is part of glib2. I don't know how meson work but I'm assuming that a dependency on it is missing. More specifically what is defined in the pkg-config file gio-unix-2.0.pc.

  • app is crashing when browsing an extension

    app is crashing when browsing an extension

    ❯ extension-manager
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.828: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    <p>Brilliant!</p>
    Root Node discovered: html
    Ignored element html
    Ignored element body
    
    (extension-manager:282139): GLib-GObject-WARNING **: 14:18:46.828: g_object_set_is_valid_property: object class 'TextDisplay' has no property named 'frame'
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.829: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    <p>For those who don&#x27;t get it working, I remind you that you have to open the ports:<br>$ sudo ufw allow proto tcp to any port 1714:1764<br>$ sudo ufw allow proto udp to any port 1714:1764</p>
    
    <p>Great extension, congratulations!</p>
    Root Node discovered: html
    Ignored element html
    Ignored element body
    
    (extension-manager:282139): GLib-GObject-WARNING **: 14:18:46.829: g_object_set_is_valid_property: object class 'TextDisplay' has no property named 'frame'
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.829: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    <p>Такие же проблемы с сопряжением. Надеюсь починят.</p>
    Root Node discovered: html
    Ignored element html
    Ignored element body
    
    (extension-manager:282139): GLib-GObject-WARNING **: 14:18:46.829: g_object_set_is_valid_property: object class 'TextDisplay' has no property named 'frame'
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.829: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    <p>Oh that&#x27;s on Ubuntu 22.04</p>
    Root Node discovered: html
    Ignored element html
    Ignored element body
    
    (extension-manager:282139): GLib-GObject-WARNING **: 14:18:46.829: g_object_set_is_valid_property: object class 'TextDisplay' has no property named 'frame'
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.829: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    <p>settings are no longer working and I cannot get it to pair with the phone now</p>
    Root Node discovered: html
    Ignored element html
    Ignored element body
    
    (extension-manager:282139): GLib-GObject-WARNING **: 14:18:46.829: g_object_set_is_valid_property: object class 'TextDisplay' has no property named 'frame'
    
    ** (extension-manager:282139): CRITICAL **: 14:18:46.830: text_node_clear: assertion 'TEXT_IS_NODE (*self)' failed
    [1]    282139 segmentation fault (core dumped)  extension-manager
    
    

    Installed from: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=extension-manager-git

  • [question] Will CLI be supported, install extensions via manager through commands?

    [question] Will CLI be supported, install extensions via manager through commands?

    I love this manager. But I have 2 questions:

    1. Will extension manager keep extensions up-to-date that have been installed via Pamac (using AUR)? Because some of the extensions in AUR are not being updated in a timely matter (for example Bing Wallpaper). If I would install Extension Manager (via Pamac/AUR) I wonder if it can keep my other extensions up to date. Currently, extensions installed via Pamac appear under "System Extensions".
    2. Are you planning to add CLI support, using your extension to install extensions via command line?

    I ask because I use a post-install script runs after a clean (Manjaro Gnome) install, it takes care of everything and it's like a did not do a clean install, it installs and configures applications, the system and Gnome. I can install everything (including Gnome Extensions) simply via Pamac, it will automatically get the packages via official Manjaro repositories or AUR.

    The 2 major downsides: some extensions are outdated in AUR and it requires a reboot to be able to enable them.

    If your extension cannot keep extensions installed via Pamac/AUR up to date, it might be better to install them via your extension, but currently there is no way to handle that in a script.

  • Allow installing unsupported extensions

    Allow installing unsupported extensions

    • Rework install button
    • Unify install state between detail view and search rows
    • Warn the user if they try to install an unsupported extension

    Unfortunately, it is impossible to access gnome shell's version check gsettings key from within the sandbox. For now, let all users install 'unsupported' extensions as the reworked error handling will list them as out of date anyway. If the user manually overrides the disable-extension-version-validation preference, then Extension Manager will reflect those changes.

    Fixes #64

  • Trying to install the beyboard brightness slider, on a fresh 22.04 install

    Trying to install the beyboard brightness slider, on a fresh 22.04 install

    Running the extension manager and received the following error... Any help would be appreciated, as I am frustrated that the laptop keyboard backlight works on a reboot, but not after a resume.

    I would also like to be able to set the colour values of the LEDs to get the best balance.

    Many thanks.

    Could not check for updates: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.gnome.Shell.Extensions” on object at path /org/gnome/Shell

  • I con't install any extensions

    I con't install any extensions

    I tried to install extensions using the browser and clicked on a prompt that showed up nothing happened. I tried using the app same prompt that showed up nothing happened. On the website there is a message saying :

    Your native host connector does not support the following APIs: v6. Probably you should upgrade the native host connector or install plugins for missing APIs. Refer documentation for instructions.

    The latest chrome-gnome-shell is installed. I am using the latest ZorinOS 16.2 it's based on Ubuntu 20.04. And I tried sudo apt-get update; sudo apt-get upgrade;.

    Screenshot from 2022-12-16 00-13-21 Screenshot from 2022-12-16 00-15-53

  • Some strings are not translated

    Some strings are not translated

    From @ViBE-HU in #316:

    Made some corrections and added the new strings. Btw looks like the "Compatible" and "Checking" (on Upgrade Assistant page) phrases are not present in the language files.

  • Error when starting the application from oracle linux 8.7 (gnome 3.32.2)

    Error when starting the application from oracle linux 8.7 (gnome 3.32.2)

    This window appears:

    Captura de pantalla de 2022-12-06 03-01-11

    With the following text:

    Could not check for updates: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell.Extensions was not provided by any .service files

  • Automatic window size height to avoid scrolling

    Automatic window size height to avoid scrolling

    Please autosize the window to avoid needing me to do it everytime I launch the application. Even better if you could use multiple columns for contents to actually use the widescreen real estate of my display! Ideally, I shouldn't have to scroll at all in most cases.

A window manager for GNOME, with rounded corners patch
A window manager for GNOME, with rounded corners patch

Tested in gnome-shell 40.5, should works in gnome 40 and 41. integrate the blur effects with rounded corners.The source code can be found here. Issues

Jan 4, 2023
Simple Software Application Package Installer for CachyOS which helps setting up & installing applications

cachyos-packageinstaller Simple Software Application Package Installer. Requirements C++20 feature required (tested with GCC 11.1.0 and Clang 13(clang

Jul 1, 2022
My_Shell is a user-defined interactive shell written in C that works similar to the original shell in linux

MY_SHELL Overview My_Shell is a user-defined interactive shell written in C that works similar to the original shell and it can execeute many of the l

Nov 22, 2021
Budgie Screensaver is a fork of old gnome screensaver for purposes of providing an authentication prompt on wake.

budgie-screensaver Budgie Screensaver is a fork of gnome-screensaver intended for use with Budgie Desktop and is similar in purpose to other screensav

Nov 17, 2022
Budgie Control Center is a fork of GNOME Control Center for the Budgie 10 Series.

Budgie Control Center Budgie Control Center is a fork of GNOME Settings / GNOME Control Center with the intent of providing a simplified list of setti

Dec 12, 2022
XML toolkit from the GNOME project

XML toolkit from the GNOME project

Jan 2, 2023
Building blocks for modern GNOME applications

Adwaita Building blocks for modern GNOME applications. License Libadwaita is licensed under the LGPL-2.1+. Building We use the Meson (and thereby Ninj

Jan 19, 2022
"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

"Sigma File Manager" is a free, open-source, quickly evolving, modern file manager (explorer / finder) app for Windows, MacOS, and Linux.

Dec 31, 2022
First-up chord-send and tap-and-hold chord repeat extensions to QMK.

Quantum Mechanical Keyboard Firmware This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM co

Dec 14, 2022
C++17 & C++ 20 error-handling and utility extensions.

C++ 17 & C++ 20 error-handling and utility extensions. Overview STX is a collection of libraries and utilities designed to make working with C++ easie

Dec 31, 2022
C Extensions i made for DragonRuby!

drext C Extensions i made for DragonRuby NOTE: DragonRuby Pro required for C Extensions. List Name Description Platforms drbat Battery information lib

Dec 5, 2022
Some extensions for windows explorer, tested on windows 10+

WindowsExplorerExtension Extensions for windows explorer, tested on windows 10 & windows 11. New Folder Extension What's This A Gnome nautilus inspire

Jan 13, 2022
Examples of C extensions in Ruby gems

Ruby C Extensions, Explained Background How To Use This Repository Strategies Strategy 0, "isolated" Strategy 1, "system" Strategy 2a, "packaged_sourc

Dec 30, 2022
Useful UE4 Visual Studio extensions.
Useful UE4 Visual Studio extensions.

UE4 Smarter Macro Indenting This extension was designed to fix the unnecessary and annoying "smart" indenting that Visual Studio likes to do around va

Dec 16, 2022
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.
Hobbyist Operating System targeting x86_64 systems. Includes userspace, Virtual File System, An InitFS (tarfs), Lua port, easy porting, a decent LibC and LibM, and a shell that supports: piping, file redirection, and more.

SynnixOS Epic Hobby OS targeting x86_64 CPUs, it includes some hacked together functionality for most essential OSs although, with interactivity via Q

Oct 28, 2022
New linux driver and tools for RME HDSPe sound cards and extension modules

snd-hdspe New linux kernel ALSA driver for RME HDSPe MADI / AES / RayDAT / AIO and AIO Pro sound cards and extension modules. In addition to the funct

Dec 21, 2022
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window

Asm-Dude Assembly syntax highlighting and code assistance for assembly source files and the disassembly window for Visual Studio 2015, 2017 and 2019.

Jan 6, 2023
A custom macOS statusbar with shell plugin, interaction and graph support
A custom macOS statusbar with shell plugin, interaction and graph support

SketchyBar This is a rewrite of the spacebar project, which itself is a rewrite of the statusbar code from yabai. Features: As many widgets as you lik

Dec 28, 2022
Shell program written in C to implement various system calls, with support of executing commands, output redirection and signals.

Use ./shell command to start the shell. $<space>path/executable to run the executable(please specify the path without beginning it with "/"). Eg. type

Nov 15, 2021