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.
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