about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/gnome
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-07-23 09:26:00 +0000
committerAlyssa Ross <hi@alyssa.is>2021-07-23 09:26:00 +0000
commitab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d (patch)
tree504b28a058661f6c1cbb7d3f580020e50367ca7f /nixpkgs/pkgs/desktops/gnome
parent55cc63c079f49e81d695a25bc2f5b3902f2bd290 (diff)
parentb09661d41fb93562fd53f31574dbf781b130ac44 (diff)
downloadnixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.gz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.bz2
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.lz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.xz
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.tar.zst
nixlib-ab63e0bb8dcf2b1bf8d4a26ed360af777b8f241d.zip
Merge commit 'b09661d41fb93562fd53f31574dbf781b130ac44'
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome')
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/evince/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix22
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix9
-rwxr-xr-xnixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix27
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix33
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix60
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix42
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix36
52 files changed, 176 insertions, 597 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index 8d0e86b1a93b..529596cd6e17 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -54,11 +54,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "40.2";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "hzN1mi2GpWNnWWpTSQRjO4HKqlxFpWNtsulZDHFK6Nk=";
+    sha256 = "//COj0Wkvm0zsKGpY6yzc5ujld6yFZDUOLsepvv3QFg=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 0a07428b1b22..779f1855371c 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-maps";
-  version = "40.2";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-g+gVAFTQxLWmPJoJvyx9+YmuaQ7Kwb5r97ExKqpjm9Q=";
+    sha256 = "sha256-p58Fz+u1UMUanGKwgDk2PXDdo90RP+cTR6lCW9cYaIk=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
index f5652d8c64a1..11cd3735e1d5 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/evince/default.nix
@@ -44,13 +44,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "40.2";
+  version = "40.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "D/fseTdqipesTNJ00y6ATH4jbvLS1dP2Rt5uuIKmPHc=";
+    sha256 = "M0IFAODgYPF4pDUGMZfULa57Z+OcxDepZRCjPd9+lfs=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index 56bd074c2cb9..1a7887fc35da 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "40.1";
+  version = "40.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-igeJcwUhnFaZVJriBI9xVVFe+Xx85NZYXd2hXVhZ4c8=";
+    sha256 = "sha256-U9ZGlEbXoJsCaTZ2nllTUv3zvlYy80a7Af5XyLUWLOs=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index c11a1df883a0..ead50f1c9d1a 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "40.1";
+  version = "40.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-KkuZrBHKIzlLKMVYS56WKE6MWk2mXPBiB95U9Csf8UE=";
+    sha256 = "sha256-ztES6qh9j/ohOv1NC62TnPp662cbeySIWaHchNb1Iec=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 0a7b60b7bca8..f507ef0e4bb6 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "40.2";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "O9cUg/YMDY9yQ5E7kmJe8Vx3iS/uP5MifqXw+XsMWqs=";
+    sha256 = "5QP9HUiFL112qr9iLR7ymWs4TYjaMf0WoQ1RPwmpDdc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 9ccaf8bd6375..8013e101913e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "40.2";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "qFGN1Mg6eE+o05pe1gC/gdY3oY7r5ZDjticYPgv5FPg=";
+    sha256 = "nfh/qVNSAf68o9UI/b97rQFxz3ony2ZN1OPB+WxO0Es=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index c1bd10ce2ea3..aa7efdf51c83 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "40.2";
+  version = "40.3";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Tp2CmwOfoK3TO7ZYP8e04Cjtjc/3r4pXfgnMZpiMKBw=";
+    sha256 = "sha256-erEMbulpmCjdch6/jOHeRk3KqpHUlYI79LhMiTmejCs=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index 226b251ec46a..c8e637124ae4 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -43,11 +43,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "40.2";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "y9HdKguvw/U93kIAPEpKA3RsuNZNxdJ+uNvmc27nJ5Y=";
+    sha256 = "y39TbLCfWCyQdVyQl08+g9/5U56it8CWibtOCsP/yF8=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/default.nix b/nixpkgs/pkgs/desktops/gnome/default.nix
index ae2255acb911..979ddafc10f0 100644
--- a/nixpkgs/pkgs/desktops/gnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/default.nix
@@ -312,7 +312,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   # added 2019-02-08
   inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
-      libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4
+      libgtop libgudev libhttpseverywhere librsvg libsecret gdk-pixbuf gtksourceview gtksourceviewmm gtksourceview4
       easytag meld orca rhythmbox shotwell gnome-usage
       clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
   inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16
diff --git a/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix
index 501aaa91c978..ca9b8f7fb81a 100644
--- a/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/devtools/gnome-devel-docs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-devel-docs";
-  version = "40.0";
+  version = "40.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-devel-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0zqp01ks8m3s6jn5xqd05rw4fwbvxy5qvcfg9g50b2ar2j7v1ar8";
+    sha256 = "v+jyHcqx70sRVlThchK8sDtqEAgzQIA/SW8ia0oILPY=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index 57d78bf756ab..f08fc7ec0df6 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "EasyScreenCast@iacopodeenosee.gmail.com";
+  passthru.extensionUuid = "EasyScreenCast@iacopodeenosee.gmail.com";
 
   meta = with lib; {
     description = "Simplifies the use of the video recording function integrated in gnome shell";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix
deleted file mode 100644
index 65576d292a8d..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/appindicator/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, gnome }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-appindicator";
-  version = "37";
-
-  src = fetchFromGitHub {
-    owner = "Ubuntu";
-    repo = "gnome-shell-extension-appindicator";
-    rev = "v${version}";
-    sha256 = "1yss91n94laakzhym409iyjs5gwhln2pkq0zrdrsxc3z70zlslxl";
-  };
-
-  # This package has a Makefile, but it's used for building a zip for
-  # publication to extensions.gnome.org. Disable the build phase so
-  # installing doesn't build an unnecessary release.
-  dontBuild = true;
-
-  uuid = "appindicatorsupport@rgcjonas.gmail.com";
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp *.js $out/share/gnome-shell/extensions/${uuid}
-    cp -r interfaces-xml $out/share/gnome-shell/extensions/${uuid}
-    cp metadata.json $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "AppIndicator/KStatusNotifierItem support for GNOME Shell";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ jonafato ];
-    platforms = gnome.gnome-shell.meta.platforms;
-    homepage = "https://github.com/Ubuntu/gnome-shell-extension-appindicator";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
index c3ed99b788b8..2720026357d2 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/arcmenu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-arcmenu";
-  version = "10";
+  version = "12";
 
   src = fetchFromGitLab {
     owner = "arcmenu";
     repo = "ArcMenu";
     rev = "v${version}";
-    sha256 = "04kn3gnjz1wakp0pyiwm0alf0pwsralhis36miif9i6l5iv6a394";
+    sha256 = "sha256-R1OUDf/YMyMlxwXM9rNsrasPumHEoYhJK0evnYGeIkA=";
   };
 
   patches = [
@@ -24,7 +24,10 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" ];
 
-  uuid = "arcmenu@arcmenu.com";
+  passthru = {
+    extensionUuid = "arcmenu@arcmenu.com";
+    extensionPortalSlug = "arcmenu";
+  };
 
   meta = with lib; {
     description = "Application menu for GNOME Shell, designed to provide a more traditional user experience and workflow";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
index 8b2d538f4fea..7ac5f916736e 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/caffeine/default.nix
@@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0dyagnjmk91h96xr98mc177c473bqpxcv86qf6g3kyh3arwa9shs";
   };
 
-  uuid = "caffeine@patapon.info";
+  passthru = {
+   extensionPortalSlug = "caffeine";
+   extensionUuid = "caffeine@patapon.info";
+  };
 
   nativeBuildInputs = [
     glib gettext
@@ -27,7 +30,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "caffeine@patapon.info" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix
deleted file mode 100644
index efdcab6a4634..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/clipboard-indicator/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, gettext, glib }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-clipboard-indicator";
-  version = "38";
-
-  src = fetchFromGitHub {
-    owner = "Tudmotu";
-    repo = "gnome-shell-extension-clipboard-indicator";
-    rev = "v${version}";
-    sha256 = "FNrh3b6la2BuWCsriYP5gG0/KNbkFPuq/YTXTj0aJAI=";
-  };
-
-  uuid = "clipboard-indicator@tudmotu.com";
-
-  nativeBuildInputs = [
-    gettext
-    glib
-  ];
-
-  makeFlags = [
-    "INSTALLPATH=${placeholder "out"}/share/gnome-shell/extensions/${uuid}/"
-  ];
-
-  meta = with lib; {
-    description = "Adds a clipboard indicator to the top panel and saves clipboard history";
-    license = licenses.mit;
-    maintainers = with maintainers; [ jonafato ];
-    platforms = platforms.linux;
-    homepage = "https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix
index 3e02d33857a6..1f749574c40c 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/clock-override/default.nix
@@ -10,7 +10,10 @@ stdenv.mkDerivation rec {
     stripRoot = false;
   };
 
-  uuid = "clock-override@gnomeshell.kryogenix.org";
+  passthru = {
+    extensionUuid = "clock-override@gnomeshell.kryogenix.org";
+    extensionPortalSlug = "clock-override";
+  };
 
   nativeBuildInputs = [ gettext glib ];
 
@@ -22,8 +25,8 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r {convenience.js,extension.js,format.js,locale,metadata.json,prefs.js,schemas} $out/share/gnome-shell/extensions/${uuid}
+    mkdir -p "$out/share/gnome-shell/extensions/clock-override@gnomeshell.kryogenix.org"
+    cp -r {convenience.js,extension.js,format.js,locale,metadata.json,prefs.js,schemas} "$out/share/gnome-shell/extensions/clock-override@gnomeshell.kryogenix.org"
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
index 97815a844d75..ebf15cada970 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
@@ -24,7 +24,10 @@ stdenv.mkDerivation rec {
     "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
   ];
 
-  uuid = "dash-to-dock@micxgx.gmail.com";
+  passthru = {
+    extensionUuid = "dash-to-dock@micxgx.gmail.com";
+    extensionPortalSlug = "dash-to-dock";
+  };
 
   meta = with lib; {
     description = "A dock for the Gnome Shell";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
index 728f341589d8..6abff2c7b411 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/dash-to-panel/default.nix
@@ -17,7 +17,10 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "dash-to-panel@jderose9.github.com";
+  passthru = {
+    extensionUuid = "dash-to-panel@jderose9.github.com";
+    extensionPortalSlug = "dash-to-panel";
+  };
 
   meta = with lib; {
     description = "An icon taskbar for Gnome Shell";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
index 0e1167561ebe..f98e2fb4e67a 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
@@ -1,5 +1,6 @@
 { lib
 , callPackage
+, callPackages
 , config
 }:
 let
@@ -60,14 +61,16 @@ in rec {
   gnome40Extensions = mapUuidNames (produceExtensionsList "40");
 
   gnomeExtensions = lib.recurseIntoAttrs (
-    (mapReadableNames (produceExtensionsList "40"))
-    // (callPackage ./manuallyPackaged.nix {})
+    (mapReadableNames
+      (lib.attrValues (gnome40Extensions // (callPackages ./manuallyPackaged.nix {})))
+    )
     // lib.optionalAttrs (config.allowAliases or true) {
       unite-shell = gnomeExtensions.unite; # added 2021-01-19
       arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
 
       nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
       mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
+      remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40.";
     }
   );
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix
deleted file mode 100644
index 166ab61565f8..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/disable-unredirect/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-disable-unredirect";
-  version = "unstable-2021-04-13";
-
-  src = fetchFromGitHub {
-    owner = "kazysmaster";
-    repo = "gnome-shell-extension-disable-unredirect";
-    rev = "2a4c0e6a7a7a5f1aad9907ee2cf43d0725e10c19";
-    sha256 = "06hbyy20xz0bvzg0vs5w4092nyfpg372c86cdm1akcjm72m5sim9";
-  };
-
-  uuid = "unredirect@vaina.lt";
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/gnome-shell/extensions
-    cp -R ${uuid} $out/share/gnome-shell/extensions/${uuid}
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Disables unredirect fullscreen windows in gnome-shell to avoid tearing";
-    license = licenses.gpl3Only;
-    homepage = "https://github.com/kazysmaster/gnome-shell-extension-disable-unredirect";
-    maintainers = with maintainers; [ eduardosm ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix
deleted file mode 100644
index 90e8bffeec97..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/draw-on-your-screen/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchgit, gettext, gnome }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-draw-on-your-screen";
-  version = "10";
-
-  src = fetchgit {
-    url = "https://framagit.org/abakkk/DrawOnYourScreen/";
-    rev = "v${version}";
-    sha256 = "07adzg3mf6k0pmd9lc358w0w3l4pr3p6374day1qhmci2p4zxq6p";
-  };
-
-  uuid = "drawOnYourScreen@abakkk.framagit.org";
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r . $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "A drawing extension for GNOME Shell";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ericdallo ahuzik ];
-    platforms = gnome.gnome-shell.meta.platforms;
-    homepage = "https://framagit.org/abakkk/DrawOnYourScreen";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix
index a994e427fb0e..ebcf918df103 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/drop-down-terminal/default.nix
@@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0igfxgrjdqq6z6xg4rsawxn261pk25g5dw2pm3bhwz5sqsy4bq3i";
   };
 
-  uuid = "drop-down-terminal@gs-extensions.zzrough.org";
+  passthru = {
+    extensionUuid = "drop-down-terminal@gs-extensions.zzrough.org";
+    extensionPortalSlug = "drop-down-terminal";
+  };
 
   patches = [
     (substituteAll {
@@ -23,7 +26,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions/
+    cp -r "drop-down-terminal@gs-extensions.zzrough.org" $out/share/gnome-shell/extensions/
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix
deleted file mode 100644
index aee636d45346..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/dynamic-panel-transparency/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, gnome, glib }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-dynamic-panel-transparency";
-  version = "unstable-2021-03-04";
-
-  src = fetchFromGitHub {
-    owner = "ewlsh";
-    repo = "dynamic-panel-transparency";
-    rev = "f9e720e98e40c7a2d87928d09a7313c9ef2e832c";
-    sha256 = "0njykxjiwlcmk0q8bsgqaznsryaw43fspfs6rzsjjz5p0xaq04nw";
-  };
-
-  uuid = "dynamic-panel-transparency@rockon999.github.io";
-
-  nativeBuildInputs = [ glib ];
-
-  buildPhase = ''
-    runHook preBuild
-    glib-compile-schemas --strict --targetdir=${uuid}/schemas/ ${uuid}/schemas
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r ${uuid} $out/share/gnome-shell/extensions
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "This extension fades your top panel to nothingness when there are no maximized windows present";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ rhoriguchi ];
-    homepage = "https://github.com/ewlsh/dynamic-panel-transparency";
-    broken = versionOlder gnome.gnome-shell.version "3.36";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
index 70f09463d121..6f249bcb635d 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/emoji-selector/default.nix
@@ -11,20 +11,23 @@ stdenv.mkDerivation rec {
     sha256 = "0x60pg5nl5d73av494dg29hyfml7fbf2d03wm053vx1q8a3pxbyb";
   };
 
-  uuid = "emoji-selector@maestroschan.fr";
+  passthru = {
+    extensionUuid = "emoji-selector@maestroschan.fr";
+    extensionPortalSlug = "emoji-selector";
+  };
 
   nativeBuildInputs = [ glib ];
 
   buildPhase = ''
     runHook preBuild
-    glib-compile-schemas ./${uuid}/schemas
+    glib-compile-schemas "./emoji-selector@maestroschan.fr/schemas"
     runHook postBuild
   '';
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "emoji-selector@maestroschan.fr" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix b/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
index 912e47a104e9..9df97998891f 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -14,6 +14,8 @@
   "lockkeys@fawtytoo" = "lock-keys-2";
 
 
+
+  # ############################################################################
   # These are conflicts for 3.38 extensions. They will very probably come back
   # once more of them support 40.
 
@@ -26,4 +28,24 @@
 
   # That extension is broken because of https://github.com/NixOS/nixpkgs/issues/118612
   #"flypie@schneegans.github.com" = null;
+
+
+
+  # ############################################################################
+  # Overrides for extensions that were manually packaged in the past but are gradually
+  # being replaced by automatic packaging where possible.
+  #
+  # The manually packaged ones:
+  "EasyScreenCast@iacopodeenosee.gmail.com" = "easyScreenCast"; # extensionPortalSlug is "easyscreencast"
+  "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com" = "fuzzy-app-search"; # extensionPortalSlug is "gnome-fuzzy-app-search"
+  "TopIcons@phocean.net" = "topicons-plus"; # extensionPortalSlug is "topicons"
+  "paperwm@hedning:matrix.org" = "paperwm"; # is not on extensions.gnome.org
+  "no-title-bar@jonaspoehler.de" = "no-title-bar"; # extensionPortalSlug is "no-title-bar-forked"
+  # These extensions are automatically packaged at the moment. We preserve the old attribute name
+  # for backwards compatibility.
+  "appindicatorsupport@rgcjonas.gmail.com" = "appindicator"; # extensionPortalSlug is "appindicator-support"
+  "unredirect@vaina.lt" = "disable-unredirect"; # extensionPortalSlug is "disable-unredirect-fullscreen-windows"
+  "drawOnYourScreen@abakkk.framagit.org" = "draw-on-your-screen"; # extensionPortalSlug is "draw-on-you-screen"
+  "timepp@zagortenay333" = "timepp"; # extensionPortalSlug is "time"
+  "windowIsReady_Remover@nunofarruca@gmail.com" = "window-is-ready-remover"; # extensionPortalSlug is "window-is-ready-notification-remover"
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix
index 9a884ac78ac7..39224e6245b6 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/freon/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-freon";
   version = "44";
 
-  uuid = "freon@UshakovVasilii_Github.yahoo.com";
+  passthru = {
+    extensionUuid = "freon@UshakovVasilii_Github.yahoo.com";
+    extensionPortalSlug = "freon";
+  };
 
   src = fetchFromGitHub {
     owner = "UshakovVasilii";
@@ -17,14 +20,14 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    glib-compile-schemas --strict --targetdir=${uuid}/schemas ${uuid}/schemas
+    glib-compile-schemas --strict --targetdir="freon@UshakovVasilii_Github.yahoo.com/schemas" "freon@UshakovVasilii_Github.yahoo.com/schemas"
     runHook postBuild
   '';
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "freon@UshakovVasilii_Github.yahoo.com" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix
deleted file mode 100755
index 9ba9ddaf09b1..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/fuzzy-app-search/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitLab, gnome, glib }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-fuzzy-app-search";
-  version = "4.0.1";
-
-  src = fetchFromGitLab {
-    owner = "Czarlie";
-    repo = "gnome-fuzzy-app-search";
-    rev = "v${version}";
-    sha256 = "127n3jc5d6cl0yrpjf8acdj76br97knks1wx4f6jcswkx9x47w0a";
-  };
-
-  uuid = "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com";
-
-  nativeBuildInputs = [ glib ];
-
-  makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ];
-
-  meta = with lib; {
-    description = "Fuzzy application search results for Gnome Search";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ rhoriguchi ];
-    homepage = "https://gitlab.com/Czarlie/gnome-fuzzy-app-search";
-    broken = versionOlder gnome.gnome-shell.version "3.18";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index a777da990d83..96451d325bb0 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -98,7 +98,10 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  uuid = "gsconnect@andyholmes.github.io";
+  passthru = {
+    extensionUuid = "gsconnect@andyholmes.github.io";
+    extensionPortalSlug = "gsconnect";
+  };
 
   passthru = {
     tests = {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix
deleted file mode 100644
index 3430dff1355b..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/gtile/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ stdenv, lib, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-gtile";
-  version = "44";
-
-  src = fetchFromGitHub {
-    owner = "gTile";
-    repo = "gTile";
-    rev = "V${version}";
-    sha256 = "0i00psc1ky70zljd14jzr627y7nd8xwnwrh4xpajl1f6djabh12s";
-  };
-
-  uuid = "gTile@vibou";
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r * $out/share/gnome-shell/extensions/${uuid}
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "A window tiling extension for Gnome. This is the new official home of the vibou.gTile extension.";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ mdsp ];
-    platforms = platforms.linux;
-    homepage = "https://github.com/gTile/gTile";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix
deleted file mode 100644
index aaa5870996ab..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/hot-edge/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-hot-edge";
-  version = "jdoda";
-
-  src = fetchFromGitHub {
-    owner = "jdoda";
-    repo = "hotedge";
-    rev = "bb7f651becea5287241caf7cda246a68ab07dac8";
-    sha256 = "oeTs0kRan6b5relxzhK1IKbV0Yv2d5YdvvUPJ3fM9ik=";
-  };
-
-  dontBuild = true;
-
-  uuid = "hotedge@jonathan.jdoda.ca";
-
-  installPhase = ''
-    runHook preInstall
-    install -Dt $out/share/gnome-shell/extensions/${uuid} extension.js metadata.json stylesheet.css
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Replace the top-left hot corner with a bottom hot edge";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ jtojnar ];
-    homepage = "https://github.com/jdoda/hotedge";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix
index 820d96988c9a..b5b2ae8ec747 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/icon-hider/default.nix
@@ -11,12 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "18c8zkdrmdbghqqz7b450vhgpykgz25mgigwn2nggcb2lxmvm9ks";
   };
 
-  uuid = "icon-hider@kalnitsky.org";
+  passthru = {
+    extensionUuid = "icon-hider@kalnitsky.org";
+    extensionPortalSlug = "icon-hider";
+  };
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "icon-hider@kalnitsky.org" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
index 95477222163c..867534ba61d0 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/impatience/default.nix
@@ -24,11 +24,14 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r impatience $out/share/gnome-shell/extensions/${uuid}
+    cp -r impatience "$out/share/gnome-shell/extensions/impatience@gfxmonk.net"
     runHook postInstall
   '';
 
-  uuid = "impatience@gfxmonk.net";
+  passthru = {
+    extensionUuid = "impatience@gfxmonk.net";
+    extensionPortalSlug = "impatience";
+  };
 
   meta = with lib; {
     description = "Speed up builtin gnome-shell animations";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 207ba6979c90..3e99f3143d24 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -1,40 +1,26 @@
 { callPackage }:
 {
-  appindicator = callPackage ./appindicator { };
-  arcmenu = callPackage ./arcmenu { };
-  caffeine = callPackage ./caffeine { };
-  clipboard-indicator = callPackage ./clipboard-indicator { };
-  clock-override = callPackage ./clock-override { };
-  dash-to-dock = callPackage ./dash-to-dock { };
-  dash-to-panel = callPackage ./dash-to-panel { };
-  disable-unredirect = callPackage ./disable-unredirect { };
-  draw-on-your-screen = callPackage ./draw-on-your-screen { };
-  drop-down-terminal = callPackage ./drop-down-terminal { };
-  dynamic-panel-transparency = callPackage ./dynamic-panel-transparency { };
-  easyScreenCast = callPackage ./EasyScreenCast { };
-  emoji-selector = callPackage ./emoji-selector { };
-  freon = callPackage ./freon { };
-  fuzzy-app-search = callPackage ./fuzzy-app-search { };
-  gsconnect = callPackage ./gsconnect { };
-  hot-edge = callPackage ./hot-edge { };
-  icon-hider = callPackage ./icon-hider { };
-  impatience = callPackage ./impatience { };
-  material-shell = callPackage ./material-shell { };
-  mpris-indicator-button = callPackage ./mpris-indicator-button { };
-  night-theme-switcher = callPackage ./night-theme-switcher { };
-  no-title-bar = callPackage ./no-title-bar { };
-  noannoyance = callPackage ./noannoyance { };
-  paperwm = callPackage ./paperwm { };
-  pidgin-im-integration = callPackage ./pidgin-im-integration { };
-  remove-dropdown-arrows = callPackage ./remove-dropdown-arrows { };
-  sound-output-device-chooser = callPackage ./sound-output-device-chooser { };
-  system-monitor = callPackage ./system-monitor { };
-  taskwhisperer = callPackage ./taskwhisperer { };
-  tilingnome = callPackage ./tilingnome { };
-  timepp = callPackage ./timepp { };
-  topicons-plus = callPackage ./topicons-plus { };
-  unite = callPackage ./unite { };
-  window-corner-preview = callPackage ./window-corner-preview { };
-  window-is-ready-remover = callPackage ./window-is-ready-remover { };
-  workspace-matrix = callPackage ./workspace-matrix { };
+  "arcmenu@arcmenu.com" = callPackage ./arcmenu { };
+  "caffeine@patapon.info" = callPackage ./caffeine { };
+  "clock-override@gnomeshell.kryogenix.org" = callPackage ./clock-override { };
+  "dash-to-dock@micxgx.gmail.com" = callPackage ./dash-to-dock { };
+  "dash-to-panel@jderose9.github.com" = callPackage ./dash-to-panel { };
+  "drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
+  "EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
+  "emoji-selector@maestroschan.fr" = callPackage ./emoji-selector { };
+  "freon@UshakovVasilii_Github.yahoo.com" = callPackage ./freon { };
+  "gsconnect@andyholmes.github.io" = callPackage ./gsconnect { };
+  "icon-hider@kalnitsky.org" = callPackage ./icon-hider { };
+  "impatience@gfxmonk.net" = callPackage ./impatience { };
+  "nightthemeswitcher@romainvigier.fr" = callPackage ./night-theme-switcher { };
+  "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
+  "paperwm@hedning:matrix.org" = callPackage ./paperwm { };
+  "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
+  "sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { };
+  "system-monitor@paradoxxx.zero.gmail.com" = callPackage ./system-monitor { };
+  "taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { };
+  "tilingnome@rliang.github.com" = callPackage ./tilingnome { };
+  "TopIcons@phocean.net" = callPackage ./topicons-plus { };
+  "unite@hardpixel.eu" = callPackage ./unite { };
+  "window-corner-preview@fabiomereu.it" = callPackage ./window-corner-preview { };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix
deleted file mode 100644
index 9b683c1af6b5..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/material-shell/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, gnome }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-material-shell";
-  version = "12";
-
-  src = fetchFromGitHub {
-    owner = "material-shell";
-    repo = "material-shell";
-    rev = version;
-    sha256 = "0ikrh70drwr0pqjcdz7l1ky8xllpnk7myprjd4s61nqkx9j2iz44";
-  };
-
-  # This package has a Makefile, but it's used for building a zip for
-  # publication to extensions.gnome.org. Disable the build phase so
-  # installing doesn't build an unnecessary release.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r * $out/share/gnome-shell/extensions/${uuid}/
-    runHook postInstall
-  '';
-
-  uuid = "material-shell@papyelgringo";
-
-  meta = with lib; {
-    description = "A modern desktop interface for Linux";
-    license = licenses.mit;
-    maintainers = with maintainers; [ benley ];
-    homepage = "https://github.com/material-shell/material-shell";
-    platforms = gnome.gnome-shell.meta.platforms;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix
deleted file mode 100644
index 8d9faaa89add..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/mpris-indicator-button/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, nix-update-script
-, gnome
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-mpris-indicator-button-unstable";
-  version = "2020-03-21";
-
-  src = fetchFromGitHub {
-    owner = "JasonLG1979";
-    repo = "gnome-shell-extension-mpris-indicator-button";
-    rev = "de54160e7d905b8c48c0fe30a437f7c51efc1aa3";
-    sha256 = "0n5qlx51fxjq1nn10zhdwfy905j20sv7pwh2jc6fns757ac4pwwk";
-  };
-
-  uuid = "mprisindicatorbutton@JasonLG1979.github.io";
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
-    runHook postInstall
-  '';
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "gnomeExtensions.${pname}";
-    };
-  };
-
-
-  meta = with lib; {
-    description = "A simple MPRIS indicator button for GNOME Shell";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ ];
-    platforms = gnome.gnome-shell.meta.platforms;
-    homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button";
-    broken = versionOlder gnome.gnome-shell.version "3.34";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
index a7ee6d566d42..d57ccdcff837 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/night-theme-switcher/default.nix
@@ -14,12 +14,15 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ unzip ];
   buildInputs = [ glib gnome.gnome-shell ];
 
-  uuid = "nightthemeswitcher@romainvigier.fr";
+  passthru = {
+    extensionUuid = "nightthemeswitcher@romainvigier.fr";
+    extensionPortalSlug = "night-theme-switcher";
+  };
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/
-    unzip build/${uuid}.shell-extension.zip -d $out/share/gnome-shell/extensions/${uuid}
+    unzip "build/nightthemeswitcher@romainvigier.fr.shell-extension.zip" -d "$out/share/gnome-shell/extensions/nightthemeswitcher@romainvigier.fr"
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix
index ad588be18ce9..e46b49c8f6ea 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/no-title-bar/default.nix
@@ -23,7 +23,9 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "no-title-bar@jonaspoehler.de";
+  passthru = {
+    extensionUuid = "no-title-bar@jonaspoehler.de";
+  };
 
   meta = with lib; {
     description = "Integrates maximized windows with the top panel";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix
deleted file mode 100644
index 1a53e6abd550..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/noannoyance/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-noannoyance";
-  version = "unstable-2021-01-17";
-
-  src = fetchFromGitHub {
-    owner = "BjoernDaase";
-    repo = "noannoyance";
-    rev = "f6e76916336aee2f7c4141796f3c40c870d2b347";
-    sha256 = "1iy3nif8rjjcwf83fg9ds93fi7vmhliynmlwqnx036s3msmxvgs3";
-  };
-
-  uuid = "noannoyance@daase.net";
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp metadata.json extension.js $out/share/gnome-shell/extensions/${uuid}
-  '';
-
-  meta = with lib; {
-    description = "Removes the 'Window is ready' notification and puts the window into focus";
-    homepage = "https://github.com/BjoernDaase/noannoyance";
-    license = licenses.gpl2Only;
-    maintainers = with maintainers; [ tu-maurice ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix
index 201628b4b424..627c4b3f2c3f 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/paperwm/default.nix
@@ -11,14 +11,14 @@ stdenv.mkDerivation rec {
     sha256 = "1jq15qrq3khqpjsjbcc17amdr1k53jkvambdacdf56xbqkycvlgs";
   };
 
-  uuid = "paperwm@hedning:matrix.org";
+  passthru.extensionUuid = "paperwm@hedning:matrix.org";
 
   dontBuild = true;
 
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r . $out/share/gnome-shell/extensions/${uuid}
+    mkdir -p "$out/share/gnome-shell/extensions/paperwm@hedning:matrix.org"
+    cp -r . "$out/share/gnome-shell/extensions/paperwm@hedning:matrix.org"
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
index 93ffcda830a1..92e0bfe94d70 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
@@ -23,7 +23,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  uuid = "pidgin@muffinmad";
+  passthru = {
+    extensionUuid = "pidgin@muffinmad";
+    extensionPortalSlug = "pidgin-im-integration";
+  };
 
   meta = with lib; {
     homepage = "https://github.com/muffinmad/pidgin-im-gnome-shell-extension";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix
deleted file mode 100644
index e310f5dcf10c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/remove-dropdown-arrows/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-remove-dropdown-arrows";
-  version = "13";
-
-  src = fetchFromGitHub {
-    owner = "mpdeimos";
-    repo = "gnome-shell-remove-dropdown-arrows";
-    rev = "version/${version}";
-    sha256 = "09b2hnfbqym20pb1sfc8xiz7gs2kbs6b1s7xl8swc8dydhsbambk";
-  };
-
-  # This package has a Makefile, but it's used for publishing and linting, not
-  # for building. Disable the build phase so installing doesn't attempt to
-  # publish the extension.
-  dontBuild = true;
-
-  uuid = "remove-dropdown-arrows@mpdeimos.com";
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp extension.js $out/share/gnome-shell/extensions/${uuid}
-    cp metadata.json $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Remove dropdown arrows from GNOME Shell Menus";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ jonafato ];
-    homepage = "https://github.com/mpdeimos/gnome-shell-remove-dropdown-arrows";
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
index f01a2cd545e0..e439e5b5a50a 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
@@ -27,7 +27,10 @@ stdenv.mkDerivation rec {
 
   dontBuild = true;
 
-  uuid = "sound-output-device-chooser@kgshank.net";
+  passthru = {
+    extensionUuid = "sound-output-device-chooser@kgshank.net";
+    extensionPortalSlug = "sound-output-device-chooser";
+  };
 
   makeFlags = [
     "INSTALL_DIR=${placeholder "out"}/share/gnome-shell/extensions"
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix
index 0a959de26819..439f02622a64 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/system-monitor/default.nix
@@ -28,18 +28,21 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
+    glib-compile-schemas --targetdir="system-monitor@paradoxxx.zero.gmail.com/schemas" "system-monitor@paradoxxx.zero.gmail.com/schemas"
     runHook postBuild
   '';
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "system-monitor@paradoxxx.zero.gmail.com" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
-  uuid = "system-monitor@paradoxxx.zero.gmail.com";
+  passthru = {
+    extensionUuid = "system-monitor@paradoxxx.zero.gmail.com";
+    extensionPortalSlug = "system-monitor";
+  };
 
   meta = with lib; {
     description = "Display system informations in gnome shell status bar";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
index 68d07e2d1429..19936f6be61d 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/taskwhisperer/default.nix
@@ -19,7 +19,10 @@ stdenv.mkDerivation rec {
     taskwarrior
   ];
 
-  uuid = "taskwhisperer-extension@infinicode.de";
+  passthru = {
+    extensionUuid = "taskwhisperer-extension@infinicode.de";
+    extensionPortalSlug = "taskwhisperer";
+  };
 
   makeFlags = [
     "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix
index c1ca77d9d73f..42c6467dba80 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/tilingnome/default.nix
@@ -21,12 +21,15 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r * $out/share/gnome-shell/extensions/${uuid}/
+    mkdir -p "$out/share/gnome-shell/extensions/tilingnome@rliang.github.com"
+    cp -r * "$out/share/gnome-shell/extensions/tilingnome@rliang.github.com/"
     runHook postInstall
   '';
 
-  uuid = "tilingnome@rliang.github.com";
+  passthru = {
+    extensionUuid = "tilingnome@rliang.github.com";
+    extensionPortalSlug = "tilingnome";
+  };
 
   meta = with lib; {
     description = "Tiling window management for GNOME Shell";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix
deleted file mode 100644
index cb4234a2513c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/timepp/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, gnome }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-timepp";
-  version = "unstable-2020-03-15";
-
-  src = fetchFromGitHub {
-    owner = "zagortenay333";
-    repo = "timepp__gnome";
-    rev = "34ae477a51267cc1e85992a80cf85a1a7b7005c1";
-    sha256 = "1v0xbrp0x5dwizscxh7h984pax4n92bj8iyw3qvjk27ynpxq8ag1";
-  };
-
-  uuid = "timepp@zagortenay333";
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp -r . $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarms gnome-shell extension.";
-    homepage = "https://github.com/zagortenay333/timepp__gnome";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ svsdep ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix
index 084548e1a105..eedfeb098c03 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/topicons-plus/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALL_PATH=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "TopIcons@phocean.net";
+  passthru.extensionUuid = "TopIcons@phocean.net";
 
   meta = with lib; {
     description = "Brings all icons back to the top panel, so that it's easier to keep track of apps running in the backround";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
index 228cb7061505..776139b36867 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
@@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Ys2kWPj/FugW/LkvLAZdbj7Ufg/KShC+EX6QrjKNVH8=";
   };
 
-  uuid = "unite@hardpixel.eu";
+  passthru = {
+    extensionUuid = "unite@hardpixel.eu";
+    extensionPortalSlug = "unite";
+  };
 
   nativeBuildInputs = [ glib ];
 
@@ -19,14 +22,14 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    glib-compile-schemas --strict --targetdir=${uuid}/schemas/ ${uuid}/schemas
+    glib-compile-schemas --strict --targetdir="unite@hardpixel.eu/schemas/" "unite@hardpixel.eu/schemas"
     runHook postBuild
   '';
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "unite@hardpixel.eu" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
index 0e71345bb8a7..ef0e22b7abed 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
@@ -13,11 +13,15 @@ stdenv.mkDerivation rec {
 
   dontBuild = true;
 
-  uuid = "window-corner-preview@fabiomereu.it";
+  passthru = {
+    extensionUuid = "window-corner-preview@fabiomereu.it";
+    extensionPortalSlug = "window-corner-preview";
+  };
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
+    cp -r "window-corner-preview@fabiomereu.it" $out/share/gnome-shell/extensions
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix
deleted file mode 100644
index 3f0e9e71b571..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/window-is-ready-remover/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-window-is-ready-remover";
-  version = "1.02";
-
-  src = fetchFromGitHub {
-    owner = "nunofarruca";
-    repo = "WindowIsReady_Remover";
-    rev = "v${version}";
-    sha256 = "1xaf95gn0if44avvkjxyf8fl29y28idn9shnrks0m9k67jcwv8ns";
-  };
-
-  uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions/
-    cp -r ${uuid} $out/share/gnome-shell/extensions/${uuid}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "GNOME Shell extension removing window is ready notification";
-    homepage = "https://github.com/nunofarruca/WindowIsReady_Remover";
-    license = licenses.asl20;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix
deleted file mode 100644
index eb1d6e7e319c..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/extensions/workspace-matrix/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, findutils, glib }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-workspace-matrix";
-  version = "4.0.2";
-
-  src = fetchFromGitHub {
-    owner = "mzur";
-    repo = "gnome-shell-wsmatrix";
-    rev = "v${version}";
-    sha256 = "0dbn6b3fdd7yblk0mhsmaiqs3mwgcf3khkx1dsnlqn5hcs0a3myd";
-  };
-
-  uuid = "wsmatrix@martin.zurowietz.de";
-
-  nativeBuildInputs = [
-    findutils
-    glib
-  ];
-
-  buildFlags = "schemas";
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/gnome-shell/extensions
-    cp -r ${uuid} $out/share/gnome-shell/extensions
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Arrange workspaces in a two dimensional grid with workspace thumbnails";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ chkno ];
-    homepage =  "https://github.com/mzur/gnome-shell-wsmatrix";
-  };
-}