16 stdenv.mkDerivation (finalAttrs: {
17 pname = "gnome-shell-extensions";
21 url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
22 hash = "sha256-3XdKApFYSRer3oi7xOzPkkQXjjwmnOBhjQSVF3wSZS0=";
27 src = ./fix_gmenu.patch;
28 gmenu_path = "${gnome-menus}/lib/girepository-1.0";
31 src = ./fix_gtop.patch;
32 gtop_path = "${libgtop}/lib/girepository-1.0";
44 mesonFlags = [ "-Dextension_set=all" ];
47 # Since we do not install the schemas to central location,
48 # let’s link them to where extensions installed
49 # through the extension portal would look for them.
50 # Adapted from export-zips.sh in the source.
52 extensiondir=$out/share/gnome-shell/extensions
53 schemadir=${glib.makeSchemaPath "$out" "$name"}
55 for f in $extensiondir/*; do
56 name=$(basename "''${f%%@*}")
57 schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
58 schemas_compiled=$schemadir/gschemas.compiled
60 if [[ -f $schema ]]; then
62 ln -s "$schema" "$f/schemas"
63 ln -s "$schemas_compiled" "$f/schemas"
69 updateScript = gnome.updateScript { packageName = "gnome-shell-extensions"; };
73 homepage = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions";
74 changelog = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
75 description = "Modify and extend GNOME Shell functionality and behavior";
76 maintainers = teams.gnome.members;
77 license = licenses.gpl2Plus;
78 platforms = platforms.linux;