Change:
The meson build doesn't compile the schemas, opting to do it instead in a package shell script. Unfortunately it seems that compiling the schemas aren't enough to make all the extensions work. In particular at least and still won't work (seems to fix though). With the schemas installed Tweaks simply complains that the extension is incorrectly installed. complains about lacking any typelib file for . I'm not sure how well these extensions worked before 3.28, but a report on irc indicated that at least worked before. cc Run Tweaks on nixos-unstable, try to enable eg. the extension under or . Running a schema fix on top of system: host os: multi-user?: sandbox: version: channels(hed): channels(root): nixpkgs:
The extension works for me when I manually change the directory structure to: As for the , I removed from dependencies so that might explain this failure. The extension should probably be fixed like .
You're able to switch switch themes in in Tweaks? Might be something wrong on my end. I'll submit a PR fixing the schemas at least.
Testing out a fix for .
Hmm, I can enable it but the theme switching does not work. I seems to require the extension schemas in when running Tweaks. Maybe it got picked up from global for bash users, but the option was always disabled for me with fish.
We might want to add as a dependency to Tweaks so that it could work for non-bash users. Then we will need to fix the schemas: the schemas in and find a hack similar to to add the schemas path to the extension. like the following to put the schemas where extensions can find them and add symlink for Tweaks. same thing as the second point but accomplished by patching files.
Your suggested fix worked for at least :) I went with basically adding the code from to to fix the schema problem. Generating the directory structure you quoted above seems the most sane and keeping with upstream. Tested things out in a vm with bash, and didn't seem to work there either. So not sure if the problem is non bash. Anyway, adding to fixes , so I think that's appropriate. I should've got everything now, will submit a PR :)
I think it only works in bash and globally installed packages or something. I would not rely on it since I consider it an ugly impurity. I would prefer the first solution since it will be the cleanest and could be possibly automated in the future, but number two is fine too.

Discussion:
<del> { stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib, gnome3 }: </del> <ins> { stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib , gnome3, substituteAll }: </ins> stdenv.mkDerivation rec { name = "gnome-shell-extensions-${version}";

}; }; <ins> patches = [ (substituteAll { src = ./fix_gmenu.patch; gmenu_path = "${gnome3.gnome-menus}/lib/girepository-1.0"; }) ]; </ins> doCheck = true; nativeBuildInputs = [ meson ninja pkgconfig gettext glib ];

mesonFlags = [ "-Dextension_set=all" ]; <ins> preFixup = '' # The meson build doesn't compile the schemas. # Fixup adapted from export-zips.sh in the source. extensiondir=$out/share/gnome-shell/extensions schemadir=$out/share/gsettings-schemas/gnome-shell-extensions-3.28.0/glib-2.0/schemas/ glib-compile-schemas $schemadir for f in $extensiondir/*; do name=`basename ''${f%%@*}` uuid=$name@gnome-shell-extensions.gcampax.github.com schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml if [ -f $schema ]; then mkdir $f/schemas ln -s $schema $f/schemas; glib-compile-schemas $f/schemas fi done ''; </ins> meta = with stdenv.lib; { homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions; description = "Modify and extend GNOME Shell functionality and behavior";

<ins> From f72924a59d4a30daefccf84526bd854ebbe65ac8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= <torhedinbronner@gmail.com> Date: Tue, 3 Apr 2018 14:13:12 +0200 Subject: [PATCH] Fix gmenu typelib path --- extensions/apps-menu/extension.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js index 5b38213..d706f64 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -1,5 +1,7 @@ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ +imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@'); + const Atk = imports.gi.Atk; const DND = imports.ui.dnd; const GMenu = imports.gi.GMenu; -- 2.16.2 </ins>

libsoup gnome3.gnome-settings-daemon gnome3.nautilus gnome3.mutter gnome3.gnome-desktop gobjectIntrospection gnome3.nautilus <ins> # Makes it possible to select user themes through the `user-theme` extension gnome3.gnome-shell-extensions </ins> ]; postPatch = ''