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)?
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:
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
sha256 fields from the updated
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 email@example.com: Error: Unexpected response: Bad Request
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!