How often is the Gnome Extensions list updated?

It seems that we can only install Gnome extensions through our configuration.nix files (extensions.gnome.org isn’t working anymore, I’m getting a “Bad Request” error). However, an extension that I’m interested in was recently updated with a feature that I’d really like to use. It was updated just earlier today, but NixOS unstable channel extension list was last updated 20 days ago - History for pkgs/desktops/gnome/extensions/extensions.json - NixOS/nixpkgs · GitHub (I’m looking at the timestamp of the last change). Out of curiosity, how often are the gnome extensions lists updated? Is it regularly updated? Is there any way that I can force Nix to choose a newer version of an extension (one that hasn’t yet been pushed into our unstable channel)?

Thanks!

1 Like

The update process is manual, see the extensions README for the instructions, so it is mostly updated when someone remembers to do it.

The latest iteration is https://github.com/NixOS/nixpkgs/pull/180482. After it is merged, the standard automated channel update process applies.

You can override the parameters of buildGnomeExtension as follows but you will need a base64-encoded content of metadata.json file from the extension:

(gnomeExtensions.shell-configurator.override {
  version = "5";
  metadata = "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvZGVuYW1lIjogIldoaXRlc21va2UiLAogICJkZXNjcmlwdGlvbiI6ICJDb25maWd1cmUgYW5kIGN1c3RvbWl6ZSBHTk9NRSBTaGVsbCB3aXRoIGFkdmFuY2VkIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsLWNvbmZpZ3VyYXRvciIsCiAgImluc3RhbGwtdHlwZSI6ICJ1c2VyIiwKICAibmFtZSI6ICJTaGVsbCBDb25maWd1cmF0b3IiLAogICJyZWxlYXNlLXN0YXRlIjogInN0YWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FkZXN3YW50YVRlY2hzL3NoZWxsLWNvbmZpZ3VyYXRvciIsCiAgInV1aWQiOiAic2hlbGwtY29uZmlndXJhdG9yQGFkZXN3YW50YSIsCiAgInZlcnNpb24iOiA1Cn0=";
  sha256 = "sha256-LrEOMq7iE/DFf7EEsP13cfd9xDma47XKLasjLNJt2iI=";
})

To get it, I would recommend running the extensions update process in your local checkout of Nixpkgs and then copying the content of metadata and sha256 fields from the updated extensions.json file.

Some additional points:

  • The extensions updates are not backported to release branches, so if you are using a stable release you need to override the extensions with the unstable channel.
  • You should still be able to install extensions locally through the browser. Both should work out fine alongside each other.

Thanks @jtojnar! Your comment was very informative!

That PR is perfectly timed as well, I’ll use the override until unstable is updated with it.

@piegames Thanks! Regarding installing through the browser, that’s actually what I used to do but it’s been completely broken for me for the last few days at least (I havent tried in a while though, so I don’t know when it started breaking). For example, if I try to update Applications Menu - GNOME Shell Extensions, I get the following error in my journalctl logs:

JS ERROR: Extension apps-menu@gnome-shell-extensions.gcampax.github.com: Error: Unexpected response: Bad Request                                              
checkResponse@resource:///org/gnome/shell/ui/extensionDownloader.js:95:15                                              
installExtension@resource:///org/gnome/shell/ui/extensionDownloader.js:45:22                                              
async*InstallRemoteExtensionAsync@resource:///org/gnome/shell/ui/shellDBus.js:439:36                                              
_handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:354:35                                              
_wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:387:34

In case anyone else is looking at this:

It looks like the above “Bad Request” error was actually a problem on the side of extensions.gnome.org!

1 Like