about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix70
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix99
-rw-r--r--pkgs/desktops/gnome/core/gnome-bluetooth/default.nix89
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix219
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/paths.patch143
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/ctl.nix42
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix136
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/fix-paths.patch35
-rw-r--r--pkgs/desktops/gnome/core/gnome-settings-daemon/43/default.nix128
-rw-r--r--pkgs/desktops/gnome/core/gnome-settings-daemon/43/fix-paths.patch15
-rw-r--r--pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch58
-rw-r--r--pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix126
-rw-r--r--pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch15
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix239
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch58
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/greeter-logo-size.patch21
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch11
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch57
-rw-r--r--pkgs/desktops/gnome/core/gnome-tour/default.nix75
-rw-r--r--pkgs/desktops/gnome/core/mutter/43/default.nix196
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix210
-rw-r--r--pkgs/desktops/gnome/default.nix76
-rw-r--r--pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/clock-override/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix3
-rw-r--r--pkgs/desktops/gnome/extensions/gsconnect/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/icon-hider/default.nix6
-rw-r--r--pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/tilingnome/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/unite/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/window-corner-preview/default.nix4
-rw-r--r--pkgs/desktops/gnome/games/gnome-2048/default.nix66
-rw-r--r--pkgs/desktops/gnome/misc/gnome-applets/default.nix81
-rw-r--r--pkgs/desktops/gnome/misc/gnome-flashback/default.nix198
-rw-r--r--pkgs/desktops/gnome/misc/gnome-panel/default.nix108
-rw-r--r--pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch31
-rw-r--r--pkgs/desktops/gnome/misc/gnome-panel/wrapper.nix66
-rw-r--r--pkgs/desktops/lxde/core/lxtask/default.nix33
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix4
-rw-r--r--pkgs/desktops/pantheon/default.nix8
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix4
41 files changed, 69 insertions, 2685 deletions
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
deleted file mode 100644
index 0ea81c6d103fd..0000000000000
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ lib
-, stdenv
-, meson
-, fetchurl
-, python3
-, pkg-config
-, gtk4
-, glib
-, gtksourceview5
-, gsettings-desktop-schemas
-, wrapGAppsHook4
-, ninja
-, gnome
-, cairo
-, enchant
-, icu
-, itstool
-, libadwaita
-, editorconfig-core-c
-, libxml2
-, desktop-file-utils
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-text-editor";
-  version = "46.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-AFtIEEqQm+Zq4HRI0rxXBsfRE3gQV6JP9tpVvfMkxz0=";
-  };
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    itstool
-    libxml2 # for xmllint
-    meson
-    ninja
-    pkg-config
-    python3
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    cairo
-    enchant
-    icu
-    glib
-    gsettings-desktop-schemas
-    gtk4
-    gtksourceview5
-    libadwaita
-    editorconfig-core-c
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-text-editor";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
-    description = "Text Editor for GNOME";
-    mainProgram = "gnome-text-editor";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
deleted file mode 100644
index 6c63a486eef76..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, fetchpatch
-, gnome
-, adwaita-icon-theme
-, meson
-, ninja
-, pkg-config
-, gtk3
-, gettext
-, glib
-, udev
-, itstool
-, libxml2
-, wrapGAppsHook3
-, libnotify
-, libcanberra-gtk3
-, gobject-introspection
-, gtk-doc
-, docbook-xsl-nons
-, docbook_xml_dtd_43
-, python3
-, gsettings-desktop-schemas
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-bluetooth";
-  version = "3.34.5";
-
-  # TODO: split out "lib"
-  outputs = [ "out" "dev" "devdoc" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "bJSeUsi+zCBU2qzWBJAfZs5c9wml+pHEu3ysyTm1Pqk=";
-  };
-
-  patches = [
-    # Fix build with meson 0.61.
-    # sendto/meson.build:24:5: ERROR: Function does not take positional arguments.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/commit/755fd758f866d3a3f7ca482942beee749f13a91e.patch";
-      sha256 = "sha256-N0MJ0pYO411o2CTNZHWmEoG2m5TGUjR6YW6HSXHTR/A=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    gettext
-    itstool
-    pkg-config
-    libxml2
-    wrapGAppsHook3
-    gobject-introspection
-    gtk-doc
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-    python3
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    udev
-    libnotify
-    libcanberra-gtk3
-    adwaita-icon-theme
-    gsettings-desktop-schemas
-  ];
-
-  mesonFlags = [
-    "-Dicon_update=false"
-    "-Dgtk_doc=true"
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.gnome-bluetooth_1_0";
-      freeze = true;
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
-    description = "Application that let you manage Bluetooth in the GNOME destkop";
-    mainProgram = "bluetooth-sendto";
-    maintainers = [ ];
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
deleted file mode 100644
index 9e4944221c150..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{
-  lib,
-  stdenv,
-  fetchurl,
-  gnome,
-  meson,
-  mesonEmulatorHook,
-  ninja,
-  pkg-config,
-  gtk4,
-  libadwaita,
-  gettext,
-  glib,
-  udev,
-  upower,
-  itstool,
-  libxml2,
-  wrapGAppsHook4,
-  libnotify,
-  gsound,
-  gobject-introspection,
-  gtk-doc,
-  docbook-xsl-nons,
-  docbook_xml_dtd_43,
-  python3,
-  gsettings-desktop-schemas,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-bluetooth";
-  version = "46.1";
-
-  # TODO: split out "lib"
-  outputs = [
-    "out"
-    "dev"
-    "devdoc"
-    "man"
-  ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-bluetooth/${lib.versions.major version}/gnome-bluetooth-${version}.tar.xz";
-    hash = "sha256-VsRKFwNFmOlgdFivrhvnXz3l798OYjVfCbpY/HvDEqw=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    gettext
-    itstool
-    pkg-config
-    libxml2
-    wrapGAppsHook4
-    gobject-introspection
-    gtk-doc
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-    python3
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ];
-
-  buildInputs = [
-    glib
-    gtk4
-    libadwaita
-    udev
-    upower
-    libnotify
-    gsound
-    gsettings-desktop-schemas
-  ];
-
-  mesonFlags = [ "-Dgtk_doc=true" ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-bluetooth";
-      attrPath = "gnome.gnome-bluetooth";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-bluetooth";
-    description = "Application that lets you manage Bluetooth in the GNOME desktop";
-    mainProgram = "bluetooth-sendto";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
deleted file mode 100644
index 59f8b2b8e746b..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ /dev/null
@@ -1,219 +0,0 @@
-{ fetchurl
-, lib
-, stdenv
-, substituteAll
-, accountsservice
-, adwaita-icon-theme
-, colord
-, colord-gtk4
-, cups
-, dbus
-, docbook-xsl-nons
-, fontconfig
-, gdk-pixbuf
-, gettext
-, glib
-, glib-networking
-, gcr_4
-, glibc
-, gnome-bluetooth
-, gnome-color-manager
-, gnome-desktop
-, gnome-online-accounts
-, gnome-settings-daemon
-, gnome-tecla
-, gnome
-, gsettings-desktop-schemas
-, gsound
-, gst_all_1
-, gtk4
-, ibus
-, json-glib
-, libgtop
-, libgudev
-, libadwaita
-, libkrb5
-, libjxl
-, libpulseaudio
-, libpwquality
-, librsvg
-, webp-pixbuf-loader
-, libsecret
-, libsoup_3
-, libwacom
-, libXi
-, libxml2
-, libxslt
-, meson
-, modemmanager
-, mutter
-, networkmanager
-, networkmanagerapplet
-, libnma-gtk4
-, ninja
-, pkg-config
-, polkit
-, python3
-, samba
-, setxkbmap
-, shadow
-, shared-mime-info
-, sound-theme-freedesktop
-, tracker
-, tracker-miners
-, tzdata
-, udisks2
-, upower
-, libepoxy
-, gnome-user-share
-, gnome-remote-desktop
-, wrapGAppsHook4
-, xorgserver
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "gnome-control-center";
-  version = "46.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Wb0wWDl3v6KOVCJ+7iEeqG9If81tORXtIfWTJCZxAeA=";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      gcm = gnome-color-manager;
-      inherit glibc tzdata shadow;
-      inherit cups networkmanagerapplet;
-    })
-  ];
-
-  nativeBuildInputs = [
-    docbook-xsl-nons
-    gettext
-    libxslt
-    meson
-    ninja
-    pkg-config
-    python3
-    shared-mime-info
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    accountsservice
-    adwaita-icon-theme
-    colord
-    colord-gtk4
-    cups
-    fontconfig
-    gdk-pixbuf
-    glib
-    glib-networking
-    gcr_4
-    gnome-bluetooth
-    gnome-desktop
-    gnome-online-accounts
-    gnome-remote-desktop # optional, sharing panel
-    gnome-settings-daemon
-    gnome-tecla
-    gnome-user-share # optional, sharing panel
-    gsettings-desktop-schemas
-    gsound
-    gtk4
-    ibus
-    json-glib
-    libepoxy
-    libgtop
-    libgudev
-    libadwaita
-    libkrb5
-    libnma-gtk4
-    libpulseaudio
-    libpwquality
-    librsvg
-    libsecret
-    libsoup_3
-    libwacom
-    libXi
-    libxml2
-    modemmanager
-    mutter # schemas for the keybindings
-    networkmanager
-    polkit
-    samba
-    tracker
-    tracker-miners # for search locations dialog
-    udisks2
-    upower
-  ] ++ (with gst_all_1; [
-    # For animations in Mouse panel.
-    gst-plugins-base
-    gst-plugins-good
-  ]);
-
-  nativeCheckInputs = [
-    dbus
-    python3.pkgs.pygobject3 # for test-networkmanager-service.py
-    python3.pkgs.python-dbusmock
-    setxkbmap
-    xorgserver # for Xvfb
-  ];
-
-  doCheck = true;
-
-  preConfigure = ''
-    # For ITS rules
-    addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
-  '';
-
-  preCheck = ''
-    # Basically same as https://github.com/NixOS/nixpkgs/pull/141299
-    export ADW_DISABLE_PORTAL=1
-    export XDG_DATA_DIRS=${glib.getSchemaDataDirPath gsettings-desktop-schemas}
-  '';
-
-  postInstall = ''
-    # Pull in WebP and JXL support for gnome-backgrounds.
-    # In postInstall to run before gappsWrapperArgsHook.
-    export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
-      extraLoaders = [
-        libjxl
-        librsvg
-        webp-pixbuf-loader
-      ];
-    }}"
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
-      # Thumbnailers (for setting user profile pictures)
-      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-      --prefix XDG_DATA_DIRS : "${librsvg}/share"
-      # WM keyboard shortcuts
-      --prefix XDG_DATA_DIRS : "${mutter}/share"
-    )
-    for i in $out/share/applications/*; do
-      substituteInPlace $i --replace "Exec=gnome-control-center" "Exec=$out/bin/gnome-control-center"
-    done
-  '';
-
-  separateDebugInfo = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-control-center";
-      attrPath = "gnome.gnome-control-center";
-    };
-  };
-
-  meta = with lib; {
-    description = "Utilities to configure the GNOME desktop";
-    mainProgram = "gnome-control-center";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/paths.patch b/pkgs/desktops/gnome/core/gnome-control-center/paths.patch
deleted file mode 100644
index 41dd5979aa4bc..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-control-center/paths.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
-index f6c84e3d2..cd897f8f5 100644
---- a/panels/color/cc-color-panel.c
-+++ b/panels/color/cc-color-panel.c
-@@ -614,7 +614,7 @@ gcm_prefs_calibrate_cb (CcColorPanel *self)
- 
-   /* run with modal set */
-   argv = g_ptr_array_new_with_free_func (g_free);
--  g_ptr_array_add (argv, g_strdup ("gcm-calibrate"));
-+  g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-calibrate", NULL));
-   g_ptr_array_add (argv, g_strdup ("--device"));
-   g_ptr_array_add (argv, g_strdup (cd_device_get_id (self->current_device)));
-   g_ptr_array_add (argv, g_strdup ("--parent-window"));
-@@ -989,7 +989,7 @@ gcm_prefs_profile_view (CcColorPanel *self, CdProfile *profile)
- 
-   /* open up gcm-viewer as a info pane */
-   argv = g_ptr_array_new_with_free_func (g_free);
--  g_ptr_array_add (argv, g_strdup ("gcm-viewer"));
-+  g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-viewer", NULL));
-   g_ptr_array_add (argv, g_strdup ("--profile"));
-   g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile)));
-   g_ptr_array_add (argv, g_strdup ("--parent-window"));
-@@ -1221,15 +1221,12 @@ gcm_prefs_device_clicked (CcColorPanel *self, CdDevice *device)
- static void
- gcm_prefs_profile_clicked (CcColorPanel *self, CdProfile *profile, CdDevice *device)
- {
--  g_autofree gchar *s = NULL;
--
-   /* get profile */
-   g_debug ("selected profile = %s",
-      cd_profile_get_filename (profile));
- 
-   /* allow getting profile info */
--  if (cd_profile_get_filename (profile) != NULL &&
--      (s = g_find_program_in_path ("gcm-viewer")) != NULL)
-+  if (cd_profile_get_filename (profile) != NULL)
-     gtk_widget_set_sensitive (self->toolbutton_profile_view, TRUE);
-   else
-     gtk_widget_set_sensitive (self->toolbutton_profile_view, FALSE);
-diff --git a/panels/system/datetime/tz.h b/panels/system/datetime/tz.h
-index feef16580..4b88ef7b1 100644
---- a/panels/system/datetime/tz.h
-+++ b/panels/system/datetime/tz.h
-@@ -27,11 +27,7 @@
- 
- G_BEGIN_DECLS
- 
--#ifndef __sun
--#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
--#else
--#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
--#endif
-+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
- 
- typedef struct _TzDB TzDB;
- typedef struct _TzLocation TzLocation;
-diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
-index ec5a905a5..689fdbebe 100644
---- a/panels/network/connection-editor/net-connection-editor.c
-+++ b/panels/network/connection-editor/net-connection-editor.c
-@@ -377,7 +377,7 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
-         GPid child_pid;
- 
-         builder = g_strv_builder_new ();
--        g_strv_builder_add (builder, "nm-connection-editor");
-+        g_strv_builder_add (builder, "@networkmanagerapplet@/bin/nm-connection-editor");
- 
-         if (self->is_new_connection) {
-                 g_autofree gchar *type_str = NULL;
-diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
-index 166670224..36f720d36 100644
---- a/panels/network/net-device-mobile.c
-+++ b/panels/network/net-device-mobile.c
-@@ -521,7 +521,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
- 
-         connection = net_device_get_find_connection (self->client, self->device);
-         uuid = nm_connection_get_uuid (connection);
--        cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
-+        cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
-         g_debug ("Launching '%s'\n", cmdline);
-         if (!g_spawn_command_line_async (cmdline, &error))
-                 g_warning ("Failed to launch nm-connection-editor: %s", error->message);
-@@ -810,7 +810,7 @@ net_device_mobile_init (NetDeviceMobile *self)
- 
-         self->cancellable = g_cancellable_new ();
- 
--        path = g_find_program_in_path ("nm-connection-editor");
-+        path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
-         gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
- }
- 
-diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
-index a31a606e3..ed5133d29 100644
---- a/panels/printers/pp-host.c
-+++ b/panels/printers/pp-host.c
-@@ -256,7 +256,7 @@ _pp_host_get_snmp_devices_thread (GTask        *task,
-   devices = g_ptr_array_new_with_free_func (g_object_unref);
- 
-   argv = g_new0 (gchar *, 3);
--  argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
-+  argv[0] = g_strdup ("@cups@/lib/cups/backend/snmp");
-   argv[1] = g_strdup (priv->hostname);
- 
-   /* Use SNMP to get printer's informations */
-diff --git a/panels/system/users/run-passwd.c b/panels/system/users/run-passwd.c
-index edbc99830..1e1d90141 100644
---- a/panels/system/users/run-passwd.c
-+++ b/panels/system/users/run-passwd.c
-@@ -152,7 +152,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
-         gchar  **envp;
-         gint    my_stdin, my_stdout;
- 
--        argv[0] = "/usr/bin/passwd";    /* Is it safe to rely on a hard-coded path? */
-+        argv[0] = "/run/wrappers/bin/passwd";    /* Is it safe to rely on a hard-coded path? */
-         argv[1] = NULL;
- 
-         envp = g_get_environ ();
-diff --git a/panels/system/users/user-utils.c b/panels/system/users/user-utils.c
-index 5b7bc1f02..13ffe6ca8 100644
---- a/panels/system/users/user-utils.c
-+++ b/panels/system/users/user-utils.c
-@@ -215,7 +215,7 @@ is_valid_username_async (const gchar *username,
-          * future, so it would be nice to have some official way for this
-          * instead of relying on the current "--login" implementation.
-          */
--        argv[0] = "/usr/sbin/usermod";
-+        argv[0] = "@shadow@/bin/usermod";
-         argv[1] = "--login";
-         argv[2] = data->username;
-         argv[3] = "--";
-diff --git a/tests/datetime/test-endianess.c b/tests/datetime/test-endianess.c
-index 9cb92007a..84d2f0fa3 100644
---- a/tests/datetime/test-endianess.c
-+++ b/tests/datetime/test-endianess.c
-@@ -26,7 +26,7 @@ test_endianess (void)
- 	g_autoptr(GDir) dir = NULL;
- 	const char *name;
- 
--	dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL);
-+	dir = g_dir_open ("@glibc@/share/i18n/locales/", 0, NULL);
- 	if (dir == NULL) {
- 		/* Try with /usr/share/locale/
- 		 * https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
diff --git a/pkgs/desktops/gnome/core/gnome-session/ctl.nix b/pkgs/desktops/gnome/core/gnome-session/ctl.nix
deleted file mode 100644
index 10b59d660bef1..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-session/ctl.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, meson
-, ninja
-, pkg-config
-, glib
-, systemd
-, wrapGAppsHook3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-session-ctl";
-  version = "42.0";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = pname;
-    rev = version;
-    hash = "sha256-XGJVmlxqbJ/1frbzn2TI7BJm449xeLk43xMMqFsLYko=";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    glib
-    systemd
-  ];
-
-  meta = with lib; {
-    description = "gnome-session-ctl extracted from gnome-session for nixpkgs";
-    homepage = "https://github.com/nix-community/gnome-session-ctl";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
deleted file mode 100644
index f7aa278fe8cc9..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ /dev/null
@@ -1,136 +0,0 @@
-{ fetchurl
-, lib
-, stdenv
-, substituteAll
-, meson
-, ninja
-, pkg-config
-, gnome
-, adwaita-icon-theme
-, glib
-, gtk3
-, gsettings-desktop-schemas
-, gnome-desktop
-, dbus
-, json-glib
-, libICE
-, xmlto
-, docbook_xsl
-, docbook_xml_dtd_412
-, python3
-, libxslt
-, gettext
-, makeWrapper
-, systemd
-, xorg
-, libepoxy
-, bash
-, gnome-session-ctl
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-session";
-  # Also bump ./ctl.nix when bumping major version.
-  version = "46.0";
-
-  outputs = [ "out" "sessions" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-session/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-xuFiSvYJC8ThoZH+Imir+nqN4HgxynpX8hfmeb97mlQ=";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      gsettings = "${glib.bin}/bin/gsettings";
-      dbusLaunch = "${dbus.lib}/bin/dbus-launch";
-      bash = "${bash}/bin/bash";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    makeWrapper
-    xmlto
-    libxslt
-    docbook_xsl
-    docbook_xml_dtd_412
-    python3
-    dbus # for DTD
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    libICE
-    gnome-desktop
-    json-glib
-    xorg.xtrans
-    adwaita-icon-theme
-    gnome.gnome-settings-daemon
-    gsettings-desktop-schemas
-    systemd
-    libepoxy
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-
-    # Use our provided `gnome-session-ctl`
-    original="@libexecdir@/gnome-session-ctl"
-    replacement="${gnome-session-ctl}/libexec/gnome-session-ctl"
-
-    find data/ -type f -name "*.service.in" -exec sed -i \
-      -e s,$original,$replacement,g \
-      {} +
-  '';
-
-  # We move the GNOME sessions to another output since gnome-session is a dependency of
-  # GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is
-  # enabled without proper GNOME installation.
-  postInstall = ''
-    mkdir $sessions
-    moveToOutput share/wayland-sessions "$sessions"
-    moveToOutput share/xsessions "$sessions"
-
-    # Our provided one is being used
-    rm -rf $out/libexec/gnome-session-ctl
-  '';
-
-  # `bin/gnome-session` will reset the environment when run in wayland, we
-  # therefor wrap `libexec/gnome-session-binary` instead which is the actual
-  # binary needing wrapping
-  preFixup = ''
-    wrapProgram "$out/libexec/gnome-session-binary" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-      --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share" \
-      --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
-  '';
-
-  separateDebugInfo = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-session";
-      attrPath = "gnome.gnome-session";
-    };
-    providedSessions = [
-      "gnome"
-      "gnome-xorg"
-    ];
-  };
-
-  meta = with lib; {
-    description = "GNOME session manager";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-session";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
deleted file mode 100644
index 38805c645b95f..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
-index b4b1f8fa..99d52cba 100755
---- a/gnome-session/gnome-session.in
-+++ b/gnome-session/gnome-session.in
-@@ -4,13 +4,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
-    [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
-    [  -n "$SHELL" ]; then
-   if [ "$1" != '-l' ]; then
--    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
-+    # Make sure the shell actually sets up the environment.
-+    unset __NIXOS_SET_ENVIRONMENT_DONE
-+    exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
-   else
-     shift
-   fi
- fi
- 
--SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
-+SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
- REGION=${SETTING#\'}
- REGION=${REGION%\'}
- 
-diff --git a/gnome-session/main.c b/gnome-session/main.c
-index a460a849..9d07898f 100644
---- a/gnome-session/main.c
-+++ b/gnome-session/main.c
-@@ -215,7 +215,7 @@ require_dbus_session (int      argc,
-         }
-         new_argv[i + 2] = NULL;
-         
--        if (!execvp ("dbus-launch", new_argv)) {
-+        if (!execvp ("@dbusLaunch@", new_argv)) {
-                 g_set_error (error, 
-                              G_SPAWN_ERROR,
-                              G_SPAWN_ERROR_FAILED,
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/43/default.nix b/pkgs/desktops/gnome/core/gnome-settings-daemon/43/default.nix
deleted file mode 100644
index 6e87a2ab6e3b5..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/43/default.nix
+++ /dev/null
@@ -1,128 +0,0 @@
-{ stdenv
-, lib
-, fetchpatch
-, substituteAll
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gnome
-, perl
-, gettext
-, gtk3
-, glib
-, libnotify
-, libgnomekbd
-, lcms2
-, libpulseaudio
-, alsa-lib
-, libcanberra-gtk3
-, upower
-, colord
-, libgweather
-, polkit
-, gsettings-desktop-schemas
-, geoclue2
-, systemd
-, libgudev
-, libwacom
-, libxslt
-, libxml2
-, modemmanager
-, networkmanager
-, gnome-desktop
-, geocode-glib_2
-, docbook_xsl
-, wrapGAppsHook3
-, python3
-, tzdata
-, nss
-, gcr_4
-, gnome-session-ctl
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-settings-daemon";
-  version = "43.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "NRO7JPxvgYFmciOmSgZ1NP3M879mMmqUA9OLDw1gE9A=";
-  };
-
-  patches = [
-    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
-      sha256 = "O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
-    })
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    perl
-    gettext
-    libxml2
-    libxslt
-    docbook_xsl
-    wrapGAppsHook3
-    python3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    modemmanager
-    networkmanager
-    libnotify
-    libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
-    gnome-desktop
-    lcms2
-    libpulseaudio
-    alsa-lib
-    libcanberra-gtk3
-    upower
-    colord
-    libgweather
-    nss
-    polkit
-    geocode-glib_2
-    geoclue2
-    systemd
-    libgudev
-    libwacom
-    gcr_4
-  ];
-
-  mesonFlags = [
-    "-Dudev_dir=${placeholder "out"}/lib/udev"
-    "-Dgnome_session_ctl_path=${gnome-session-ctl}/libexec/gnome-session-ctl"
-  ];
-
-  # Default for release buildtype but passed manually because
-  # we're using plain
-  env.NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
-
-  postPatch = ''
-    for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl; do
-      chmod +x $f
-      patchShebangs $f
-    done
-  '';
-
-  meta = with lib; {
-    description = "GNOME Settings Daemon";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/";
-    license = licenses.gpl2Plus;
-    maintainers = teams.pantheon.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/43/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-settings-daemon/43/fix-paths.patch
deleted file mode 100644
index 2229302cab7c0..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/43/fix-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/plugins/datetime/tz.h
-+++ b/plugins/datetime/tz.h
-@@ -27,11 +27,7 @@
- 
- #include <glib.h>
- 
--#ifndef __sun
--#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
--#else
--#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
--#endif
-+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
- 
- typedef struct _TzDB TzDB;
- typedef struct _TzLocation TzLocation;
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch b/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch
deleted file mode 100644
index 8bdf39ce37b62..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0 Mon Sep 17 00:00:00 2001
-From: WORLDofPEACE <worldofpeace@protonmail.ch>
-Date: Sun, 20 Sep 2020 16:09:36 -0400
-Subject: [PATCH] build: add a gnome_session_ctl_path option
-
-In gsd.service.in the ExecStopPost expects g-s-d libexecdir to
-be from the same prefix as gnome-session's, and this is not necessarily
-true as there are linux distro's that install their packages into their
-own individual prefixes (like NixOS or Guix).
----
- meson_options.txt      | 1 +
- plugins/gsd.service.in | 2 +-
- plugins/meson.build    | 6 ++++++
- 3 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/meson_options.txt b/meson_options.txt
-index 3e04cf64f..21e003c61 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -1,4 +1,5 @@
- option('udev_dir', type: 'string', value: '', description: 'Absolute path of the udev base directory')
-+option('gnome_session_ctl_path', type: 'string', value: '', description: 'Absolute path to the gnome-session-ctl binary')
- option('systemd', type: 'boolean', value: true, description: 'Enable systemd integration')
- 
- option('alsa', type: 'boolean', value: true, description: 'build with ALSA support (not optional on Linux platforms)')
-diff --git a/plugins/gsd.service.in b/plugins/gsd.service.in
-index 79b5f5536..bfbde6d05 100644
---- a/plugins/gsd.service.in
-+++ b/plugins/gsd.service.in
-@@ -23,4 +23,4 @@ BusName=@plugin_dbus_name@
- TimeoutStopSec=5
- # We cannot use OnFailure as e.g. dependency failures are normal
- # https://github.com/systemd/systemd/issues/12352
--ExecStopPost=@libexecdir@/gnome-session-ctl --exec-stop-check
-+ExecStopPost=@gnome_session_ctl@ --exec-stop-check
-diff --git a/plugins/meson.build b/plugins/meson.build
-index 83e018854..266a0f093 100644
---- a/plugins/meson.build
-+++ b/plugins/meson.build
-@@ -20,6 +20,11 @@ all_plugins = [
- 
- disabled_plugins = []
- 
-+gnome_session_ctl = get_option('gnome_session_ctl_path')
-+if gnome_session_ctl == ''
-+  gnome_session_ctl = join_paths(gsd_libexecdir, 'gnome-session-ctl')
-+endif
-+
- if not enable_smartcard
-     disabled_plugins += ['smartcard']
- endif
-@@ -125,6 +130,7 @@ foreach plugin: all_plugins
-         unit_conf.set('plugin_name', plugin_name)
-         unit_conf.set('description', plugin_description)
-         unit_conf.set('libexecdir', gsd_libexecdir)
-+        unit_conf.set('gnome_session_ctl', gnome_session_ctl)
-         unit_conf.set('plugin_dbus_name', plugin_dbus_name)
-         unit_conf.set('plugin_restart', plugin_restart_rule.get(plugin_name, 'on-failure'))
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
deleted file mode 100644
index 4284a68ee3e70..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
+++ /dev/null
@@ -1,126 +0,0 @@
-{ stdenv
-, lib
-, substituteAll
-, fetchurl
-, meson
-, ninja
-, pkg-config
-, gnome
-, perl
-, gettext
-, gtk3
-, glib
-, libnotify
-, libgnomekbd
-, libpulseaudio
-, alsa-lib
-, libcanberra-gtk3
-, upower
-, colord
-, libgweather
-, polkit
-, gsettings-desktop-schemas
-, geoclue2
-, systemd
-, libgudev
-, libwacom
-, libxslt
-, libxml2
-, modemmanager
-, networkmanager
-, gnome-desktop
-, geocode-glib_2
-, docbook_xsl
-, wrapGAppsHook3
-, python3
-, tzdata
-, gcr_4
-, gnome-session-ctl
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-settings-daemon";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-C5oPZPoYqOfgm0yVo/dU+gM8LNvS3DVwHwYYVywcs9c=";
-  };
-
-  patches = [
-    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
-    ./add-gnome-session-ctl-option.patch
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    perl
-    gettext
-    libxml2
-    libxslt
-    docbook_xsl
-    wrapGAppsHook3
-    python3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    modemmanager
-    networkmanager
-    libnotify
-    libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
-    gnome-desktop
-    libpulseaudio
-    alsa-lib
-    libcanberra-gtk3
-    upower
-    colord
-    libgweather
-    polkit
-    geocode-glib_2
-    geoclue2
-    systemd
-    libgudev
-    libwacom
-    gcr_4
-  ];
-
-  mesonFlags = [
-    "-Dudev_dir=${placeholder "out"}/lib/udev"
-    "-Dgnome_session_ctl_path=${gnome-session-ctl}/libexec/gnome-session-ctl"
-  ];
-
-  # Default for release buildtype but passed manually because
-  # we're using plain
-  env.NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
-
-
-  postPatch = ''
-    for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl; do
-      chmod +x $f
-      patchShebangs $f
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-    };
-  };
-
-  meta = with lib; {
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch
deleted file mode 100644
index 2229302cab7c0..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/fix-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/plugins/datetime/tz.h
-+++ b/plugins/datetime/tz.h
-@@ -27,11 +27,7 @@
- 
- #include <glib.h>
- 
--#ifndef __sun
--#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
--#else
--#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
--#endif
-+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
- 
- typedef struct _TzDB TzDB;
- typedef struct _TzLocation TzLocation;
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
deleted file mode 100644
index f84908eff0741..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ /dev/null
@@ -1,239 +0,0 @@
-{ fetchurl
-, fetchpatch
-, substituteAll
-, lib, stdenv
-, meson
-, ninja
-, pkg-config
-, gnome
-, json-glib
-, gettext
-, libsecret
-, python3
-, polkit
-, networkmanager
-, gi-docgen
-, at-spi2-core
-, unzip
-, shared-mime-info
-, libgweather
-, libjxl
-, librsvg
-, webp-pixbuf-loader
-, geoclue2
-, perl
-, desktop-file-utils
-, libpulseaudio
-, libical
-, gobject-introspection
-, wrapGAppsHook4
-, libxslt
-, gcr_4
-, accountsservice
-, gdk-pixbuf
-, gdm
-, upower
-, ibus
-, libnma-gtk4
-, gnome-desktop
-, gsettings-desktop-schemas
-, gnome-keyring
-, glib
-, gjs
-, mutter
-, evolution-data-server-gtk4
-, gtk4
-, libadwaita
-, sassc
-, systemd
-, pipewire
-, gst_all_1
-, adwaita-icon-theme
-, gnome-bluetooth
-, gnome-clocks
-, gnome-settings-daemon
-, gnome-autoar
-, gnome-tecla
-, asciidoc
-, bash-completion
-, mesa
-, libGL
-, libXi
-, libX11
-, libxml2
-}:
-
-let
-  pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
-in
-stdenv.mkDerivation (finalAttrs: {
-  pname = "gnome-shell";
-  version = "46.4";
-
-  outputs = [ "out" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    hash = "sha256-GIRo/nLpCsSyNOnU0HB9YH/q85oT0lvTqj63XlWj4FI=";
-  };
-
-  patches = [
-    # Hardcode paths to various dependencies so that they can be found at runtime.
-    (substituteAll {
-      src = ./fix-paths.patch;
-      glib_compile_schemas = "${glib.dev}/bin/glib-compile-schemas";
-      gsettings = "${glib.bin}/bin/gsettings";
-      tecla = "${lib.getBin gnome-tecla}/bin/tecla";
-      unzip = "${lib.getBin unzip}/bin/unzip";
-    })
-
-    # Use absolute path for libshew installation to make our patched gobject-introspection
-    # aware of the location to hardcode in the generated GIR file.
-    ./shew-gir-path.patch
-
-    # Make D-Bus services wrappable.
-    ./wrap-services.patch
-
-    # Fix greeter logo being too big.
-    # https://gitlab.gnome.org/GNOME/gnome-shell/issues/2591
-    # Reverts https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1101
-    ./greeter-logo-size.patch
-
-    # Work around failing fingerprint auth
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/dcd112d9708954187e7490564c2229d82ba5326f/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
-      hash = "sha256-mgXty5HhiwUO1UV3/eDgWtauQKM0cRFQ0U7uocST25s=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    gi-docgen
-    perl
-    wrapGAppsHook4
-    sassc
-    desktop-file-utils
-    libxslt.bin
-    asciidoc
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    systemd
-    gsettings-desktop-schemas
-    gnome-keyring
-    glib
-    gcr_4
-    accountsservice
-    libsecret
-    polkit
-    gdk-pixbuf
-    librsvg
-    networkmanager
-    gjs
-    mutter
-    libpulseaudio
-    evolution-data-server-gtk4
-    libical
-    gtk4
-    libadwaita
-    gdm
-    geoclue2
-    adwaita-icon-theme
-    gnome-bluetooth
-    gnome-clocks # schemas needed
-    at-spi2-core
-    upower
-    ibus
-    gnome-desktop
-    gnome-settings-daemon
-    mesa
-    libGL # for egl, required by mutter-clutter
-    libXi # required by libmutter
-    libX11
-    libxml2
-
-    # recording
-    pipewire
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-
-    # not declared at build time, but typelib is needed at runtime
-    libgweather
-    libnma-gtk4
-
-    # for gnome-extension tool
-    bash-completion
-    gnome-autoar
-    json-glib
-
-    # for tools
-    pythonEnv
-  ];
-
-  mesonFlags = [
-    "-Dgtk_doc=true"
-    "-Dtests=false"
-  ];
-
-  postPatch = ''
-    patchShebangs src/data-to-c.pl
-
-    # We can generate it ourselves.
-    rm -f man/gnome-shell.1
-    rm data/theme/gnome-shell-{light,dark}.css
-  '';
-
-  postInstall = ''
-    # Pull in WebP and JXL support for gnome-backgrounds.
-    # In postInstall to run before gappsWrapperArgsHook.
-    export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
-      extraLoaders = [
-        libjxl
-        librsvg
-        webp-pixbuf-loader
-      ];
-    }}"
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Until glib’s xdgmime is patched
-      # Fixes “Failed to load resource:///org/gnome/shell/theme/noise-texture.png: Unrecognized image file format”
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  postFixup = ''
-    # The services need typelibs.
-    for svc in org.gnome.ScreenSaver org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
-      wrapGApp $out/share/gnome-shell/$svc
-    done
-
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    moveToOutput "share/doc" "$devdoc"
-  '';
-
-  separateDebugInfo = true;
-
-  passthru = {
-    mozillaPlugin = "/lib/mozilla/plugins";
-    updateScript = gnome.updateScript {
-      packageName = "gnome-shell";
-      attrPath = "gnome.gnome-shell";
-    };
-  };
-
-  meta = with lib; {
-    description = "Core user interface for the GNOME 3 desktop";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-shell";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-
-})
diff --git a/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
deleted file mode 100644
index a87f5129152f1..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/data/org.gnome.Shell-disable-extensions.service b/data/org.gnome.Shell-disable-extensions.service
-index de91167c5..1c9965678 100644
---- a/data/org.gnome.Shell-disable-extensions.service
-+++ b/data/org.gnome.Shell-disable-extensions.service
-@@ -11,5 +11,5 @@ ConditionPathExists=%t/gnome-shell-disable-extensions
- [Service]
- Type=simple
- # Disable extensions
--ExecStart=gsettings set org.gnome.shell disable-user-extensions true
-+ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
- Restart=no
-diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
-index 197cc1c1c..dd74aa167 100644
---- a/js/ui/extensionDownloader.js
-+++ b/js/ui/extensionDownloader.js
-@@ -110,7 +110,7 @@ async function extractExtensionArchive(bytes, dir) {
-     stream.close_async(GLib.PRIORITY_DEFAULT, null);
- 
-     const unzip = Gio.Subprocess.new(
--        ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
-+        ['@unzip@', '-uod', dir.get_path(), '--', file.get_path()],
-         Gio.SubprocessFlags.NONE);
-     await unzip.wait_check_async(null);
- 
-@@ -132,7 +132,7 @@ async function extractExtensionArchive(bytes, dir) {
-     }
- 
-     const compileSchema = Gio.Subprocess.new(
--        ['glib-compile-schemas', '--strict', schemasPath.get_path()],
-+        ['@glib_compile_schemas@', '--strict', schemasPath.get_path()],
-         Gio.SubprocessFlags.NONE);
- 
-     try {
-diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
-index fff4e73c2..92859b099 100644
---- a/js/ui/status/keyboard.js
-+++ b/js/ui/status/keyboard.js
-@@ -1092,6 +1092,6 @@ class InputSourceIndicator extends PanelMenu.Button {
-         if (xkbVariant.length > 0)
-             description = `${description}\t${xkbVariant}`;
- 
--        Util.spawn(['tecla', description]);
-+        Util.spawn(['@tecla@', description]);
-     }
- });
-diff --git a/subprojects/extensions-tool/src/command-install.c b/subprojects/extensions-tool/src/command-install.c
-index 11fb4b6b7..e00e4807b 100644
---- a/subprojects/extensions-tool/src/command-install.c
-+++ b/subprojects/extensions-tool/src/command-install.c
-@@ -158,7 +158,7 @@ install_extension (const char *bundle,
- 
-       schemapath = g_file_get_path (schemadir);
-       proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDERR_SILENCE, &error,
--                               "glib-compile-schemas", "--strict", schemapath,
-+                               "@glib_compile_schemas@", "--strict", schemapath,
-                                NULL);
- 
-       if (!g_subprocess_wait_check (proc, NULL, &error))
diff --git a/pkgs/desktops/gnome/core/gnome-shell/greeter-logo-size.patch b/pkgs/desktops/gnome/core/gnome-shell/greeter-logo-size.patch
deleted file mode 100644
index 93965a475216f..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-shell/greeter-logo-size.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
-index 28db1a9de..805b686bf 100644
---- a/js/gdm/loginDialog.js
-+++ b/js/gdm/loginDialog.js
-@@ -46,6 +46,7 @@ const _FADE_ANIMATION_TIME = 250;
- const _SCROLL_ANIMATION_TIME = 500;
- const _TIMED_LOGIN_IDLE_THRESHOLD = 5.0;
- const _CONFLICTING_SESSION_DIALOG_TIMEOUT = 60;
-+const _LOGO_ICON_HEIGHT = 48;
- 
- export const UserListItem = GObject.registerClass({
-     Signals: {'activate': {}},
-@@ -908,7 +909,7 @@ export const LoginDialog = GObject.registerClass({
-             const scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
-             const texture = this._textureCache.load_file_async(
-                 this._logoFile,
--                -1, -1,
-+                -1, _LOGO_ICON_HEIGHT,
-                 scaleFactor, resourceScale);
-             this._logoBin.add_child(texture);
-         }
diff --git a/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch b/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
deleted file mode 100644
index 6d888725b5d2e..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/subprojects/shew/src/meson.build
-+++ b/subprojects/shew/src/meson.build
-@@ -13,7 +13,7 @@ shew_sources = [
- libshew = library(full_name,
-   sources: shew_sources,
-   dependencies: [gtk_dep, x11_dep],
--  install_dir: pkglibdir,
-+  install_dir: get_option('prefix') / pkglibdir,
-   install: true,
- )
- 
diff --git a/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch b/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
deleted file mode 100644
index eca485c321244..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/js/dbusServices/dbus-service.in b/js/dbusServices/dbus-service.in
-old mode 100644
-new mode 100755
-index 5c698f58a..1ed61a7e3
---- a/js/dbusServices/dbus-service.in
-+++ b/js/dbusServices/dbus-service.in
-@@ -1,3 +1,9 @@
-+#!@gjs@ -m
-+
-+// gjs determines the package name from argv[0], which is .*-wrapped
-+// so we need to override it to the original one.
-+imports.package._findEffectiveEntryPointName = () => '@service@'
-+
- import {programInvocationName, programArgs} from 'system';
- 
- imports.package.init({
-diff --git a/js/dbusServices/dbus-service.service.in b/js/dbusServices/dbus-service.service.in
-index 3b0d09abe..4fd4bb66d 100644
---- a/js/dbusServices/dbus-service.service.in
-+++ b/js/dbusServices/dbus-service.service.in
-@@ -1,3 +1,3 @@
- [D-BUS Service]
- Name=@service@
--Exec=@gjs@ -m @pkgdatadir@/@service@
-+Exec=@pkgdatadir@/@service@
-diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
-index eb941ed90..552051e5a 100644
---- a/js/dbusServices/meson.build
-+++ b/js/dbusServices/meson.build
-@@ -2,6 +2,7 @@ launcherconf = configuration_data()
- launcherconf.set('PACKAGE_NAME', meson.project_name())
- launcherconf.set('prefix', prefix)
- launcherconf.set('libdir', libdir)
-+launcherconf.set('gjs', gjs.full_path())
- 
- dbus_services = {
-   'org.gnome.Shell.Extensions': 'extensions',
-@@ -18,16 +19,17 @@ endif
- config_dir = '@0@/..'.format(meson.current_build_dir())
- 
- foreach service, dir : dbus_services
-+  svc_launcherconf = launcherconf
-+  svc_launcherconf.set('service', service)
-   configure_file(
-     input: 'dbus-service.in',
-     output: service,
--    configuration: launcherconf,
-+    configuration: svc_launcherconf,
-     install_dir: pkgdatadir,
-   )
- 
-   serviceconf = configuration_data()
-   serviceconf.set('service', service)
--  serviceconf.set('gjs', gjs.full_path())
-   serviceconf.set('pkgdatadir', pkgdatadir)
- 
-   configure_file(
diff --git a/pkgs/desktops/gnome/core/gnome-tour/default.nix b/pkgs/desktops/gnome/core/gnome-tour/default.nix
deleted file mode 100644
index 0cc5c596bb5c2..0000000000000
--- a/pkgs/desktops/gnome/core/gnome-tour/default.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, gettext
-, meson
-, ninja
-, fetchurl
-, pkg-config
-, gtk4
-, glib
-, gdk-pixbuf
-, desktop-file-utils
-, appstream-glib
-, wrapGAppsHook4
-, python3
-, gnome
-, libadwaita
-, librsvg
-, rustc
-, cargo
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-tour";
-  version = "46.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-8yZSqp1+8GQ3YM5jkyCCz9NkHnczt2xCm3jQl4O3xGo=";
-  };
-
-  cargoVendorDir = "vendor";
-
-  depsBuildBuild = [
-    pkg-config
-  ];
-
-  nativeBuildInputs = [
-    appstream-glib
-    cargo
-    desktop-file-utils
-    gettext
-    glib # glib-compile-resources
-    meson
-    ninja
-    pkg-config
-    python3
-    rustPlatform.cargoSetupHook
-    rustc
-    wrapGAppsHook4
-  ];
-
-  buildInputs = [
-    gdk-pixbuf
-    glib
-    gtk4
-    libadwaita
-    librsvg
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-tour";
-    description = "GNOME Greeter & Tour";
-    mainProgram = "gnome-tour";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/core/mutter/43/default.nix b/pkgs/desktops/gnome/core/mutter/43/default.nix
deleted file mode 100644
index cef4edf84c0ff..0000000000000
--- a/pkgs/desktops/gnome/core/mutter/43/default.nix
+++ /dev/null
@@ -1,196 +0,0 @@
-{ fetchurl
-, runCommand
-, lib
-, fetchpatch
-, stdenv
-, pkg-config
-, gnome
-, gettext
-, gobject-introspection
-, cairo
-, colord
-, lcms2
-, pango
-, json-glib
-, libstartup_notification
-, libcanberra
-, ninja
-, xvfb-run
-, xkeyboard_config
-, libxcvt
-, libxkbfile
-, libXdamage
-, libxkbcommon
-, libXtst
-, libinput
-, libdrm
-, gsettings-desktop-schemas
-, glib
-, gtk3
-, gnome-desktop
-, pipewire
-, libgudev
-, libwacom
-, xwayland
-, mesa
-, meson
-, gnome-settings-daemon
-, xorgserver
-, python3
-, wayland-scanner
-, wrapGAppsHook3
-, gi-docgen
-, sysprof
-, libsysprof-capture
-, desktop-file-utils
-, libcap_ng
-, egl-wayland
-, graphene
-, wayland
-, wayland-protocols
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "mutter";
-  version = "43.8";
-
-  outputs = [ "out" "dev" "man" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    sha256 = "TjTh8XWTS9hJqEvZX6Nb8G6EEuAt8loDbC8RNdUz8oE=";
-  };
-
-  patches = [
-    # Fix build with separate sysprof.
-    # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2572
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/285a5a4d54ca83b136b787ce5ebf1d774f9499d5.patch";
-      sha256 = "/npUE3idMSTVlFptsDpZmGWjZ/d2gqruVlJKq4eF4xU=";
-    })
-
-    # Remove support for window shading.
-    # The corresponding key was removed in gsettings-desktop-schemas 45.alpha.
-    # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2884
-    #
-    # Fetch the patch from magpie as they share same code base and this feature
-    # is never supported on wayland (note that magpie 0.9.x won't support wayland).
-    # https://github.com/BuddiesOfBudgie/magpie/issues/9
-    (fetchpatch {
-      url = "https://github.com/BuddiesOfBudgie/magpie/commit/4177c466375462ca8ed8fdb60913df4422f19144.patch";
-      sha256 = "NVx40WDnlUL050D529KVohvNBdVrheXxmJ73U3+KSeQ=";
-    })
-  ];
-
-  mesonFlags = [
-    "-Degl_device=true"
-    "-Dinstalled_tests=false" # TODO: enable these
-    "-Dwayland_eglstream=true"
-    "-Dprofiler=true"
-    "-Dxwayland_path=${lib.getExe xwayland}"
-    # This should be auto detected, but it looks like it manages a false
-    # positive.
-    "-Dxwayland_initfd=disabled"
-    "-Ddocs=true"
-  ];
-
-  propagatedBuildInputs = [
-    # required for pkg-config to detect mutter-clutter
-    json-glib
-    libXtst
-    libcap_ng
-    graphene
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    libxcvt
-    mesa # needed for gbm
-    meson
-    ninja
-    xvfb-run
-    pkg-config
-    python3
-    wayland-scanner
-    wrapGAppsHook3
-    gi-docgen
-    xorgserver
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    cairo
-    egl-wayland
-    glib
-    gnome-desktop
-    gnome-settings-daemon
-    gsettings-desktop-schemas
-    gtk3
-    libcanberra
-    libdrm
-    libgudev
-    libinput
-    libstartup_notification
-    libwacom
-    libxkbcommon
-    libxkbfile
-    libXdamage
-    colord
-    lcms2
-    pango
-    pipewire
-    sysprof # for D-Bus interfaces
-    libsysprof-capture
-    xkeyboard_config
-    xwayland
-    wayland
-    wayland-protocols
-  ];
-
-  postPatch = ''
-    patchShebangs src/backends/native/gen-default-modes.py
-
-    # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3187
-    substituteInPlace meson.build \
-      --replace "dependency('sysprof-4')" "dependency('sysprof-6')"
-  '';
-
-  postInstall = ''
-    ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
-  '';
-
-  postFixup = ''
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    # TODO: Move this into a directory devhelp can find.
-    moveToOutput "share/mutter-11/doc" "$devdoc"
-  '';
-
-  # Install udev files into our own tree.
-  PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
-
-  separateDebugInfo = true;
-
-  passthru = {
-    libdir = "${finalAttrs.finalPackage}/lib/mutter-11";
-
-    tests = {
-      libdirExists = runCommand "mutter-libdir-exists" {} ''
-        if [[ ! -d ${finalAttrs.finalPackage.libdir} ]]; then
-          echo "passthru.libdir should contain a directory, “${finalAttrs.finalPackage.libdir}” is not one."
-          exit 1
-        fi
-        touch $out
-      '';
-    };
-  };
-
-  meta = with lib; {
-    description = "Window manager for GNOME";
-    mainProgram = "mutter";
-    homepage = "https://gitlab.gnome.org/GNOME/mutter";
-    license = licenses.gpl2Plus;
-    maintainers = teams.pantheon.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
deleted file mode 100644
index 78b21f4d215f2..0000000000000
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ /dev/null
@@ -1,210 +0,0 @@
-{ fetchurl
-, runCommand
-, lib
-, stdenv
-, pkg-config
-, gnome
-, gettext
-, gobject-introspection
-, cairo
-, colord
-, lcms2
-, pango
-, libstartup_notification
-, libcanberra
-, ninja
-, xvfb-run
-, libxcvt
-, libICE
-, libX11
-, libXcomposite
-, libXcursor
-, libXdamage
-, libXext
-, libXfixes
-, libXi
-, libXtst
-, libxkbfile
-, xkeyboard_config
-, libxkbcommon
-, libXrender
-, libxcb
-, libXrandr
-, libXinerama
-, libXau
-, libinput
-, libdrm
-, libei
-, libdisplay-info
-, gsettings-desktop-schemas
-, glib
-, atk
-, gtk4
-, fribidi
-, harfbuzz
-, gnome-desktop
-, pipewire
-, libgudev
-, libwacom
-, libSM
-, xwayland
-, mesa
-, meson
-, gnome-settings-daemon
-, xorgserver
-, python3
-, wayland-scanner
-, wrapGAppsHook4
-, gi-docgen
-, sysprof
-, libsysprof-capture
-, desktop-file-utils
-, egl-wayland
-, graphene
-, wayland
-, wayland-protocols
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "mutter";
-  version = "46.4";
-
-  outputs = [ "out" "dev" "man" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    hash = "sha256-YRvZz5gq21ZZfOKzQiQnL9phm7O7kSpoTXXG8sN1AuQ=";
-  };
-
-  mesonFlags = [
-    "-Degl_device=true"
-    "-Dinstalled_tests=false" # TODO: enable these
-    "-Dtests=false"
-    "-Dwayland_eglstream=true"
-    "-Dprofiler=true"
-    "-Dxwayland_path=${lib.getExe xwayland}"
-    # This should be auto detected, but it looks like it manages a false
-    # positive.
-    "-Dxwayland_initfd=disabled"
-    "-Ddocs=true"
-  ];
-
-  propagatedBuildInputs = [
-    # required for pkg-config to detect mutter-mtk
-    graphene
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    libxcvt
-    mesa # needed for gbm
-    meson
-    ninja
-    xvfb-run
-    pkg-config
-    python3
-    wayland-scanner
-    wrapGAppsHook4
-    gi-docgen
-    xorgserver
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    cairo
-    egl-wayland
-    glib
-    gnome-desktop
-    gnome-settings-daemon
-    gsettings-desktop-schemas
-    atk
-    fribidi
-    harfbuzz
-    libcanberra
-    libdrm
-    libei
-    libdisplay-info
-    libgudev
-    libinput
-    libstartup_notification
-    libwacom
-    libSM
-    colord
-    lcms2
-    pango
-    pipewire
-    sysprof # for D-Bus interfaces
-    libsysprof-capture
-    xwayland
-    wayland
-    wayland-protocols
-  ] ++ [
-    # X11 client
-    gtk4
-    libICE
-    libX11
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXtst
-    libxkbfile
-    xkeyboard_config
-    libxkbcommon
-    libXrender
-    libxcb
-    libXrandr
-    libXinerama
-    libXau
-  ];
-
-  postPatch = ''
-    patchShebangs src/backends/native/gen-default-modes.py
-  '';
-
-  postInstall = ''
-    ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
-  '';
-
-  postFixup = ''
-    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
-    # TODO: Move this into a directory devhelp can find.
-    moveToOutput "share/mutter-14/doc" "$devdoc"
-  '';
-
-  # Install udev files into our own tree.
-  PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
-
-  separateDebugInfo = true;
-
-  passthru = {
-    libdir = "${finalAttrs.finalPackage}/lib/mutter-14";
-
-    tests = {
-      libdirExists = runCommand "mutter-libdir-exists" {} ''
-        if [[ ! -d ${finalAttrs.finalPackage.libdir} ]]; then
-          echo "passthru.libdir should contain a directory, “${finalAttrs.finalPackage.libdir}” is not one."
-          exit 1
-        fi
-        touch $out
-      '';
-    };
-
-    updateScript = gnome.updateScript {
-      packageName = "mutter";
-      attrPath = "gnome.mutter";
-    };
-  };
-
-  meta = with lib; {
-    description = "Window manager for GNOME";
-    mainProgram = "mutter";
-    homepage = "https://gitlab.gnome.org/GNOME/mutter";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/desktops/gnome/default.nix b/pkgs/desktops/gnome/default.nix
index a81a5ea463507..edb942833123c 100644
--- a/pkgs/desktops/gnome/default.nix
+++ b/pkgs/desktops/gnome/default.nix
@@ -17,66 +17,10 @@ in
 
 #### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
 
-  gnome-bluetooth = callPackage ./core/gnome-bluetooth { };
-
-  gnome-bluetooth_1_0 = callPackage ./core/gnome-bluetooth/1.0 { };
-
-  gnome-control-center = callPackage ./core/gnome-control-center { };
-
-  gnome-session = callPackage ./core/gnome-session { };
-
-  gnome-session-ctl = callPackage ./core/gnome-session/ctl.nix { };
-
-  gnome-shell = callPackage ./core/gnome-shell { };
-
-  gnome-settings-daemon = callPackage ./core/gnome-settings-daemon { };
-
-  # Using 43 to match Mutter used in Pantheon
-  gnome-settings-daemon43 = callPackage ./core/gnome-settings-daemon/43 { };
-
   gvfs = pkgs.gvfs.override { gnomeSupport = true; };
 
-  mutter = callPackage ./core/mutter { };
-
-  # Needed for elementary's gala, wingpanel and greeter until support for higher versions is provided
-  mutter43 = callPackage ./core/mutter/43 { };
-
-  networkmanager-openvpn = pkgs.networkmanager-openvpn.override {
-    withGnome = true;
-  };
-
-  networkmanager-vpnc = pkgs.networkmanager-vpnc.override {
-    withGnome = true;
-  };
-
-  networkmanager-openconnect = pkgs.networkmanager-openconnect.override {
-    withGnome = true;
-  };
-
-  networkmanager-fortisslvpn = pkgs.networkmanager-fortisslvpn.override {
-    withGnome = true;
-  };
-
-  networkmanager-l2tp = pkgs.networkmanager-l2tp.override {
-    withGnome = true;
-  };
-
-  networkmanager-iodine = pkgs.networkmanager-iodine.override {
-    withGnome = true;
-  };
-
   nixos-gsettings-overrides = callPackage ./nixos/gsettings-overrides { };
 
-#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
-
-  gnome-applets = callPackage ./misc/gnome-applets { };
-
-  gnome-flashback = callPackage ./misc/gnome-flashback { };
-
-  gnome-panel = callPackage ./misc/gnome-panel { };
-
-  gnome-panel-with-modules = callPackage ./misc/gnome-panel/wrapper.nix { };
-
 }) // lib.optionalAttrs config.allowAliases {
 #### Legacy aliases. They need to be outside the scope or they will shadow the attributes from parent scope.
   libgnome-keyring = lib.warn "The ‘gnome.libgnome-keyring’ was moved to top-level. Please use ‘pkgs.libgnome-keyring’ directly." pkgs.libgnome-keyring; # Added on 2024-06-22.
@@ -107,8 +51,11 @@ in
   geary = lib.warn "The ‘gnome.geary’ was moved to top-level. Please use ‘pkgs.geary’ directly." pkgs.geary; # Added on 2024-06-22.
   ghex = lib.warn "The ‘gnome.ghex’ was moved to top-level. Please use ‘pkgs.ghex’ directly." pkgs.ghex; # Added on 2024-06-22.
   gitg = lib.warn "The ‘gnome.gitg’ was moved to top-level. Please use ‘pkgs.gitg’ directly." pkgs.gitg; # Added on 2024-06-22.
+  gnome-applets = lib.warn "The ‘gnome.gnome-applets’ was moved to top-level. Please use ‘pkgs.gnome-applets’ directly." pkgs.gnome-applets; # Added on 2024-08-31.
   gnome-autoar = lib.warn "The ‘gnome.gnome-autoar’ was moved to top-level. Please use ‘pkgs.gnome-autoar’ directly." pkgs.gnome-autoar; # Added on 2024-06-13.
   gnome-backgrounds = lib.warn "The ‘gnome.gnome-backgrounds’ was moved to top-level. Please use ‘pkgs.gnome-backgrounds’ directly." pkgs.gnome-backgrounds; # Added on 2024-08-11.
+  gnome-bluetooth = lib.warn "The ‘gnome.gnome-bluetooth’ was moved to top-level. Please use ‘pkgs.gnome-bluetooth’ directly." pkgs.gnome-bluetooth; # Added on 2024-08-28.
+  gnome-bluetooth_1_0 = lib.warn "The ‘gnome.gnome-bluetooth_1_0’ was moved to top-level. Please use ‘pkgs.gnome-bluetooth_1_0’ directly." pkgs.gnome-bluetooth_1_0; # Added on 2024-08-28.
   gnome-boxes = lib.warn "The ‘gnome.gnome-boxes’ was moved to top-level. Please use ‘pkgs.gnome-boxes’ directly." pkgs.gnome-boxes; # Added on 2024-08-11.
   gnome-characters = lib.warn "The ‘gnome.gnome-characters’ was moved to top-level. Please use ‘pkgs.gnome-characters’ directly." pkgs.gnome-characters; # Added on 2024-08-11.
   gnome-chess = lib.warn "The ‘gnome.gnome-chess’ was moved to top-level. Please use ‘pkgs.gnome-chess’ directly." pkgs.gnome-chess; # Added on 2024-08-11.
@@ -118,8 +65,10 @@ in
   gnome-calculator = lib.warn "The ‘gnome.gnome-calculator’ was moved to top-level. Please use ‘pkgs.gnome-calculator’ directly." pkgs.gnome-calculator; # Added on 2024-06-22.
   gnome-calendar = lib.warn "The ‘gnome.gnome-calendar’ was moved to top-level. Please use ‘pkgs.gnome-calendar’ directly." pkgs.gnome-calendar; # Added on 2024-06-22.
   gnome-contacts = lib.warn "The ‘gnome.gnome-contacts’ was moved to top-level. Please use ‘pkgs.gnome-contacts’ directly." pkgs.gnome-contacts; # Added on 2024-08-11.
+  gnome-control-center = lib.warn "The ‘gnome.gnome-control-center’ was moved to top-level. Please use ‘pkgs.gnome-control-center’ directly." pkgs.gnome-control-center; # Added on 2024-08-28.
   gnome-dictionary = lib.warn "The ‘gnome.gnome-dictionary’ was moved to top-level. Please use ‘pkgs.gnome-dictionary’ directly." pkgs.gnome-dictionary; # Added on 2024-06-22.
   gnome-disk-utility = lib.warn "The ‘gnome.gnome-disk-utility’ was moved to top-level. Please use ‘pkgs.gnome-disk-utility’ directly." pkgs.gnome-disk-utility; # Added on 2024-06-22.
+  gnome-flashback = lib.warn "The ‘gnome.gnome-flashback’ was moved to top-level. Please use ‘pkgs.gnome-flashback’ directly." pkgs.gnome-flashback; # Added on 2024-08-31.
   gnome-font-viewer = lib.warn "The ‘gnome.gnome-font-viewer’ was moved to top-level. Please use ‘pkgs.gnome-font-viewer’ directly." pkgs.gnome-font-viewer; # Added on 2024-06-22.
   gnome-initial-setup = lib.warn "The ‘gnome.gnome-initial-setup’ was moved to top-level. Please use ‘pkgs.gnome-initial-setup’ directly." pkgs.gnome-initial-setup; # Added on 2024-08-11.
   gnome-keyring = lib.warn "The ‘gnome.gnome-keyring’ was moved to top-level. Please use ‘pkgs.gnome-keyring’ directly." pkgs.gnome-keyring; # Added on 2024-06-22.
@@ -133,10 +82,17 @@ in
   gnome-nibbles = lib.warn "The ‘gnome.gnome-nibbles’ was moved to top-level. Please use ‘pkgs.gnome-nibbles’ directly." pkgs.gnome-nibbles; # Added on 2024-08-11.
   gnome-notes = lib.warn "The ‘gnome.gnome-notes’ was moved to top-level. Please use ‘pkgs.gnome-notes’ directly." pkgs.gnome-notes; # Added on 2024-08-11.
   gnome-packagekit = lib.warn "The ‘gnome.gnome-packagekit’ was moved to top-level. Please use ‘pkgs.gnome-packagekit’ directly." pkgs.gnome-packagekit; # Added on 2024-06-22.
+  gnome-panel = lib.warn "The ‘gnome.gnome-panel’ was moved to top-level. Please use ‘pkgs.gnome-panel’ directly." pkgs.gnome-panel; # Added on 2024-08-31.
+  gnome-panel-with-modules = lib.warn "The ‘gnome.gnome-panel-with-modules’ was moved to top-level. Please use ‘pkgs.gnome-panel-with-modules’ directly." pkgs.gnome-panel-with-modules; # Added on 2024-08-31.
   gnome-power-manager = lib.warn "The ‘gnome.gnome-power-manager’ was moved to top-level. Please use ‘pkgs.gnome-power-manager’ directly." pkgs.gnome-power-manager; # Added on 2024-08-11.
   gnome-remote-desktop = lib.warn "The ‘gnome.gnome-remote-desktop’ was moved to top-level. Please use ‘pkgs.gnome-remote-desktop’ directly." pkgs.gnome-remote-desktop; # Added on 2024-08-11.
   gnome-robots = lib.warn "The ‘gnome.gnome-robots’ was moved to top-level. Please use ‘pkgs.gnome-robots’ directly." pkgs.gnome-robots; # Added on 2024-08-11.
   gnome-screenshot = lib.warn "The ‘gnome.gnome-screenshot’ was moved to top-level. Please use ‘pkgs.gnome-screenshot’ directly." pkgs.gnome-screenshot; # Added on 2024-06-22.
+  gnome-session = lib.warn "The ‘gnome.gnome-session’ was moved to top-level. Please use ‘pkgs.gnome-session’ directly." pkgs.gnome-session; # Added on 2024-08-28.
+  gnome-session-ctl = lib.warn "The ‘gnome.gnome-session-ctl’ was moved to top-level. Please use ‘pkgs.gnome-session-ctl’ directly." pkgs.gnome-session-ctl; # Added on 2024-08-28.
+  gnome-settings-daemon = lib.warn "The ‘gnome.gnome-settings-daemon’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon’ directly." pkgs.gnome-settings-daemon; # Added on 2024-08-28.
+  gnome-settings-daemon43 = lib.warn "The ‘gnome.gnome-settings-daemon43’ was moved to top-level. Please use ‘pkgs.gnome-settings-daemon43’ directly." pkgs.gnome-settings-daemon43; # Added on 2024-08-28.
+  gnome-shell = lib.warn "The ‘gnome.gnome-shell’ was moved to top-level. Please use ‘pkgs.gnome-shell’ directly." pkgs.gnome-shell; # Added on 2024-08-28.
   gnome-shell-extensions = lib.warn "The ‘gnome.gnome-shell-extensions’ was moved to top-level. Please use ‘pkgs.gnome-shell-extensions’ directly." pkgs.gnome-shell-extensions; # Added on 2024-08-11.
   gnome-software = lib.warn "The ‘gnome.gnome-software’ was moved to top-level. Please use ‘pkgs.gnome-software’ directly." pkgs.gnome-software; # Added on 2024-08-11.
   gnome-sound-recorder = lib.warn "The ‘gnome.gnome-sound-recorder’ was moved to top-level. Please use ‘pkgs.gnome-sound-recorder’ directly." pkgs.gnome-sound-recorder; # Added on 2024-08-11.
@@ -156,7 +112,15 @@ in
   iagno = lib.warn "The ‘gnome.iagno’ was moved to top-level. Please use ‘pkgs.iagno’ directly." pkgs.iagno; # Added on 2024-08-11.
   lightsoff = lib.warn "The ‘gnome.lightsoff’ was moved to top-level. Please use ‘pkgs.lightsoff’ directly." pkgs.lightsoff; # Added on 2024-08-11.
   metacity = lib.warn "The ‘gnome.metacity’ was moved to top-level. Please use ‘pkgs.metacity’ directly." pkgs.metacity; # Added on 2024-08-11.
+  mutter = lib.warn "The ‘gnome.mutter’ was moved to top-level. Please use ‘pkgs.mutter’ directly." pkgs.mutter; # Added on 2024-08-28.
+  mutter43 = lib.warn "The ‘gnome.mutter43’ was moved to top-level. Please use ‘pkgs.mutter43’ directly." pkgs.mutter43; # Added on 2024-08-28.
   nautilus = lib.warn "The ‘gnome.nautilus’ was moved to top-level. Please use ‘pkgs.nautilus’ directly." pkgs.nautilus; # Added on 2024-06-13.
+  networkmanager-openvpn = lib.warn "The ‘gnome.networkmanager-openvpn’ was moved to top-level. Please use ‘pkgs.networkmanager-openvpn’ directly." pkgs.networkmanager-openvpn; # Added on 2024-08-31.
+  networkmanager-vpnc = lib.warn "The ‘gnome.networkmanager-vpnc’ was moved to top-level. Please use ‘pkgs.networkmanager-vpnc’ directly." pkgs.networkmanager-vpnc; # Added on 2024-08-31.
+  networkmanager-openconnect = lib.warn "The ‘gnome.networkmanager-openconnect’ was moved to top-level. Please use ‘pkgs.networkmanager-openconnect’ directly." pkgs.networkmanager-openconnect; # Added on 2024-08-31.
+  networkmanager-fortisslvpn = lib.warn "The ‘gnome.networkmanager-fortisslvpn’ was moved to top-level. Please use ‘pkgs.networkmanager-fortisslvpn’ directly." pkgs.networkmanager-fortisslvpn; # Added on 2024-08-31.
+  networkmanager-l2tp = lib.warn "The ‘gnome.networkmanager-l2tp’ was moved to top-level. Please use ‘pkgs.networkmanager-l2tp’ directly." pkgs.networkmanager-l2tp; # Added on 2024-08-31.
+  networkmanager-iodine = lib.warn "The ‘gnome.networkmanager-iodine’ was moved to top-level. Please use ‘pkgs.networkmanager-iodine’ directly." pkgs.networkmanager-iodine; # Added on 2024-08-31.
   nautilus-python = lib.warn "The ‘gnome.nautilus-python’ was moved to top-level. Please use ‘pkgs.nautilus-python’ directly." pkgs.nautilus-python; # Added on 2024-06-13.
   polari = lib.warn "The ‘gnome.polari’ was moved to top-level. Please use ‘pkgs.polari’ directly." pkgs.polari; # Added on 2024-08-11.
   pomodoro = lib.warn "The ‘gnome.pomodoro’ was moved to top-level. Please use ‘pkgs.gnome-pomodoro’ directly." pkgs.gnome-pomodoro; # Added on 2024-06-22.
diff --git a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
index ea371ae6efd8f..f7f79e89dc9ce 100644
--- a/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
+++ b/pkgs/desktops/gnome/extensions/EasyScreenCast/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome, gettext, jq, intltool }:
+{ lib, stdenv, fetchFromGitHub, substituteAll, glib, gnome-shell, gettext, jq, intltool }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell-extension-EasyScreenCast";
@@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     (substituteAll {
       src = ./fix-gi-path.patch;
-      gnomeShell = gnome.gnome-shell;
+      gnomeShell = gnome-shell;
     })
   ];
 
diff --git a/pkgs/desktops/gnome/extensions/clock-override/default.nix b/pkgs/desktops/gnome/extensions/clock-override/default.nix
index 1f749574c40c2..919dfb68de046 100644
--- a/pkgs/desktops/gnome/extensions/clock-override/default.nix
+++ b/pkgs/desktops/gnome/extensions/clock-override/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, gnome, gettext, glib }:
+{ lib, stdenv, fetchzip, gnome-shell, gettext, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-clock-override";
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://github.com/stuartlangridge/gnome-shell-clock-override";
-    broken = versionOlder gnome.gnome-shell.version "3.18";
+    broken = versionOlder gnome-shell.version "3.18";
   };
 }
diff --git a/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix b/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
index 3d4108eafdf70..0eeaea47befde 100644
--- a/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
+++ b/pkgs/desktops/gnome/extensions/gnome-browser-connector/default.nix
@@ -4,6 +4,7 @@
 , ninja
 , python3
 , gnome
+, gnome-shell
 , wrapGAppsNoGuiHook
 , gobject-introspection
 }:
@@ -30,7 +31,7 @@ buildPythonApplication rec {
   ];
 
   buildInputs = [
-    gnome.gnome-shell
+    gnome-shell
   ];
 
   pythonPath = [
diff --git a/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index ca5c939de2638..97270194bdb02 100644
--- a/pkgs/desktops/gnome/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -13,7 +13,7 @@
 , glib-networking
 , gtk3
 , openssh
-, gnome
+, gnome-shell
 , evolution-data-server-gtk4
 , gjs
 , nixosTests
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgnome_shell_libdir=${gnome.gnome-shell}/lib"
+    "-Dgnome_shell_libdir=${gnome-shell}/lib"
     "-Dchrome_nmhdir=${placeholder "out"}/etc/opt/chrome/native-messaging-hosts"
     "-Dchromium_nmhdir=${placeholder "out"}/etc/chromium/native-messaging-hosts"
     "-Dopenssl_path=${openssl}/bin/openssl"
diff --git a/pkgs/desktops/gnome/extensions/icon-hider/default.nix b/pkgs/desktops/gnome/extensions/icon-hider/default.nix
index b5b2ae8ec7471..28ad5f1d32a1b 100644
--- a/pkgs/desktops/gnome/extensions/icon-hider/default.nix
+++ b/pkgs/desktops/gnome/extensions/icon-hider/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome }:
+{ lib, stdenv, fetchFromGitHub, gnome-shell }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-icon-hider";
@@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
     description = "Icon Hider is a GNOME Shell extension for managing status area items";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jonafato ];
-    platforms = gnome.gnome-shell.meta.platforms;
+    platforms = gnome-shell.meta.platforms;
     homepage = "https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider";
-    broken = versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = versionAtLeast gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix b/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
index 200ca9a63e5cc..3dc9fa61b7473 100644
--- a/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
+++ b/pkgs/desktops/gnome/extensions/pidgin-im-integration/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, glib, gnome }:
+{ lib, stdenv, fetchFromGitHub, glib, gnome-shell }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-pidgin-im-integration";
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ ];
-    broken = versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = versionAtLeast gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome/extensions/tilingnome/default.nix b/pkgs/desktops/gnome/extensions/tilingnome/default.nix
index fbf89ffa19c90..3e6a2efb990fb 100644
--- a/pkgs/desktops/gnome/extensions/tilingnome/default.nix
+++ b/pkgs/desktops/gnome/extensions/tilingnome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, glib, gnome }:
+{ stdenv, lib, fetchFromGitHub, glib, gnome-shell }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-tilingnome";
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ benley ];
     homepage = "https://github.com/rliang/gnome-shell-extension-tilingnome";
-    platforms = gnome.gnome-shell.meta.platforms;
+    platforms = gnome-shell.meta.platforms;
   };
 }
diff --git a/pkgs/desktops/gnome/extensions/unite/default.nix b/pkgs/desktops/gnome/extensions/unite/default.nix
index c39d430c937a2..5c5cf7444d875 100644
--- a/pkgs/desktops/gnome/extensions/unite/default.nix
+++ b/pkgs/desktops/gnome/extensions/unite/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, gnome, fetchFromGitHub, xprop, glib }:
+{ lib, stdenv, gnome-shell, fetchFromGitHub, xprop, glib }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-unite";
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ rhoriguchi ];
     homepage = "https://github.com/hardpixel/unite-shell";
-    broken = versionOlder gnome.gnome-shell.version "3.32";
+    broken = versionOlder gnome-shell.version "3.32";
   };
 }
diff --git a/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix b/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
index 48d80545ecca5..e8d43bb158312 100644
--- a/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
+++ b/pkgs/desktops/gnome/extensions/window-corner-preview/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gnome }:
+{ lib, stdenv, fetchFromGitHub, gnome-shell }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-window-corner-preview";
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ ];
     homepage = "https://github.com/medenagan/window-corner-preview";
-    broken = lib.versionAtLeast gnome.gnome-shell.version "3.32"; # Doesn't support 3.34
+    broken = lib.versionAtLeast gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome/games/gnome-2048/default.nix b/pkgs/desktops/gnome/games/gnome-2048/default.nix
deleted file mode 100644
index fc04ee0b8f1e7..0000000000000
--- a/pkgs/desktops/gnome/games/gnome-2048/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchpatch
-, wrapGAppsHook3
-, meson
-, vala
-, pkg-config
-, ninja
-, itstool
-, clutter-gtk
-, libgee
-, libgnome-games-support
-, gnome
-, gtk3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-twenty-forty-eight";
-  version = "3.38.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-2048/${lib.versions.majorMinor version}/gnome-2048-${version}.tar.xz";
-    sha256 = "0s5fg4z5in1h39fcr69j1qc5ynmg7a8mfprk3mc3c0csq3snfwz2";
-  };
-
-  patches = [
-    # Fix build with meson 0.61
-    # https://gitlab.gnome.org/GNOME/gnome-2048/-/merge_requests/21
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-2048/-/commit/194e22699f7166a016cd39ba26dd719aeecfc868.patch";
-      sha256 = "Qpn/OJJwblRm5Pi453aU2HwbrNjsf+ftmSnns/5qZ9E=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    itstool
-    meson
-    ninja
-    pkg-config
-    vala
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    clutter-gtk
-    libgee
-    libgnome-games-support
-    gtk3
-  ];
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = "gnome-2048";
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-2048";
-    description = "Obtain the 2048 tile";
-    mainProgram = "gnome-2048";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/misc/gnome-applets/default.nix b/pkgs/desktops/gnome/misc/gnome-applets/default.nix
deleted file mode 100644
index 0270045dad7df..0000000000000
--- a/pkgs/desktops/gnome/misc/gnome-applets/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, gettext
-, itstool
-, libxml2
-, pkg-config
-, gnome-panel
-, gtk3
-, glib
-, libwnck
-, libgtop
-, libnotify
-, upower
-, wirelesstools
-, linuxPackages
-, adwaita-icon-theme
-, libgweather
-, gucharmap
-, tracker
-, polkit
-, gnome
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-applets";
-  version = "3.52.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-bz07QoZW/21bHT7lzLfs49Kxi1S/BFes9DtxHlXi1iw=";
-  };
-
-  nativeBuildInputs = [
-    gettext
-    itstool
-    pkg-config
-    libxml2
-  ];
-
-  buildInputs = [
-    gnome-panel
-    gtk3
-    glib
-    libxml2
-    libwnck
-    libgtop
-    libnotify
-    upower
-    adwaita-icon-theme
-    libgweather
-    gucharmap
-    tracker
-    polkit
-    wirelesstools
-    linuxPackages.cpupower
-  ];
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  # Don't try to install modules to gnome panel's directory, as it's read only
-  PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-      versionPolicy = "odd-unstable";
-    };
-  };
-
-  meta = with lib; {
-    description = "Applets for use with the GNOME panel";
-    mainProgram = "cpufreq-selector";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-applets";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
deleted file mode 100644
index 770d389d77d12..0000000000000
--- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
+++ /dev/null
@@ -1,198 +0,0 @@
-{ stdenv
-, lib
-, autoreconfHook
-, fetchurl
-, gettext
-, glib
-, gnome-bluetooth
-, gnome-desktop
-, gnome-panel
-, gnome-session
-, gnome
-, gsettings-desktop-schemas
-, gtk3
-, ibus
-, libcanberra-gtk3
-, libpulseaudio
-, libxkbfile
-, libxml2
-, pkg-config
-, polkit
-, gdm
-, systemd
-, upower
-, pam
-, wrapGAppsHook3
-, writeTextFile
-, xkeyboard_config
-, xorg
-, nixosTests
-, runCommand
-, buildEnv
-}:
-let
-  pname = "gnome-flashback";
-  version = "3.52.1";
-
-  # From data/sessions/Makefile.am
-  requiredComponentsCommon = enableGnomePanel:
-    [ ]
-    ++ lib.optional enableGnomePanel "gnome-panel";
-  requiredComponentsGsd = [
-    "org.gnome.SettingsDaemon.A11ySettings"
-    "org.gnome.SettingsDaemon.Color"
-    "org.gnome.SettingsDaemon.Datetime"
-    "org.gnome.SettingsDaemon.Housekeeping"
-    "org.gnome.SettingsDaemon.Keyboard"
-    "org.gnome.SettingsDaemon.MediaKeys"
-    "org.gnome.SettingsDaemon.Power"
-    "org.gnome.SettingsDaemon.PrintNotifications"
-    "org.gnome.SettingsDaemon.Rfkill"
-    "org.gnome.SettingsDaemon.ScreensaverProxy"
-    "org.gnome.SettingsDaemon.Sharing"
-    "org.gnome.SettingsDaemon.Smartcard"
-    "org.gnome.SettingsDaemon.Sound"
-    "org.gnome.SettingsDaemon.UsbProtection"
-    "org.gnome.SettingsDaemon.Wacom"
-    "org.gnome.SettingsDaemon.XSettings"
-  ];
-  requiredComponents = wmName: enableGnomePanel: "RequiredComponents=${lib.concatStringsSep ";" ([ wmName ] ++ requiredComponentsCommon enableGnomePanel ++ requiredComponentsGsd)};";
-
-  gnome-flashback = stdenv.mkDerivation rec {
-    name = "${pname}-${version}";
-
-    src = fetchurl {
-      url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-      hash = "sha256-ugRhPNrbYr2iBkN8BHKZ4WAlzeG9gJXglKp3dpx4YDo=";
-    };
-
-    # make .desktop Execs absolute
-    postPatch = ''
-      patch -p0 <<END_PATCH
-      +++ data/applications/gnome-flashback.desktop.in
-      @@ -4 +4 @@
-      -Exec=gnome-flashback
-      +Exec=$out/bin/gnome-flashback
-      END_PATCH
-    '';
-
-    postInstall = ''
-      # Check that our expected RequiredComponents match the stock session files, but then don't install them.
-      # They can be installed using mkSessionForWm.
-      grep '${requiredComponents "metacity" true}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
-
-      rm -r $out/share/gnome-session
-      rm -r $out/share/xsessions
-      rm $out/libexec/gnome-flashback-metacity
-    '';
-
-    nativeBuildInputs = [
-      autoreconfHook
-      gettext
-      libxml2
-      pkg-config
-      wrapGAppsHook3
-    ];
-
-    buildInputs = [
-      glib
-      gnome-bluetooth
-      gnome-desktop
-      gsettings-desktop-schemas
-      gtk3
-      ibus
-      libcanberra-gtk3
-      libpulseaudio
-      libxkbfile
-      xorg.libXxf86vm
-      polkit
-      gdm
-      gnome-panel
-      systemd
-      upower
-      pam
-      xkeyboard_config
-    ];
-
-    doCheck = true;
-
-    enableParallelBuilding = true;
-
-    PKG_CONFIG_LIBGNOME_PANEL_LAYOUTSDIR = "${placeholder "out"}/share/gnome-panel/layouts";
-    PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
-
-    passthru = {
-      updateScript = gnome.updateScript {
-        packageName = pname;
-        attrPath = "gnome.${pname}";
-        versionPolicy = "odd-unstable";
-      };
-
-      mkWmApplication = { wmName, wmLabel, wmCommand }:
-        writeTextFile {
-          name = "gnome-flashback-${wmName}-wm";
-          destination = "/share/applications/${wmName}.desktop";
-          text = ''
-            [Desktop Entry]
-            Type=Application
-            Encoding=UTF-8
-            Name=${wmLabel}
-            Exec=${wmCommand}
-            NoDisplay=true
-            X-GNOME-WMName=${wmLabel}
-            X-GNOME-Autostart-Phase=WindowManager
-            X-GNOME-Provides=windowmanager
-            X-GNOME-Autostart-Notify=false
-          '';
-        };
-
-      mkGnomeSession = { wmName, wmLabel, enableGnomePanel }:
-        writeTextFile {
-          name = "gnome-flashback-${wmName}-gnome-session";
-          destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session";
-          text = ''
-            [GNOME Session]
-            Name=GNOME Flashback (${wmLabel})
-            ${requiredComponents wmName enableGnomePanel}
-          '';
-        };
-
-      mkSessionForWm = { wmName, wmLabel, wmCommand }:
-        writeTextFile
-          {
-            name = "gnome-flashback-${wmName}-xsession";
-            destination = "/share/xsessions/gnome-flashback-${wmName}.desktop";
-            text = ''
-              [Desktop Entry]
-              Name=GNOME Flashback (${wmLabel})
-              Comment=This session logs you into GNOME Flashback with ${wmLabel}
-              Exec=${gnome-session}/bin/gnome-session --session=gnome-flashback-${wmName}
-              TryExec=${wmCommand}
-              Type=Application
-              DesktopNames=GNOME-Flashback;GNOME;
-            '';
-          } // {
-          providedSessions = [ "gnome-flashback-${wmName}" ];
-        };
-
-      mkSystemdTargetForWm = { wmName, wmLabel, wmCommand, enableGnomePanel }:
-        runCommand "gnome-flashback-${wmName}.target" { } ''
-          mkdir -p $out/lib/systemd/user
-          cp -r "${gnome-flashback}/lib/systemd/user/gnome-session@gnome-flashback-metacity.target.d" \
-            "$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d"
-        '';
-
-      tests = { inherit (nixosTests) gnome-flashback; };
-    };
-
-    meta = with lib; {
-      description = "GNOME 2.x-like session for GNOME 3";
-      mainProgram = "gnome-flashback";
-      homepage = "https://gitlab.gnome.org/GNOME/gnome-flashback";
-      license = licenses.gpl2;
-      maintainers = teams.gnome.members;
-      platforms = platforms.linux;
-    };
-  };
-in
-gnome-flashback
diff --git a/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/pkgs/desktops/gnome/misc/gnome-panel/default.nix
deleted file mode 100644
index 71bfd89d4599c..0000000000000
--- a/pkgs/desktops/gnome/misc/gnome-panel/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, autoreconfHook
-, dconf
-, evolution-data-server
-, gdm
-, geocode-glib_2
-, gettext
-, glib
-, gnome-desktop
-, gnome-menus
-, gnome
-, gtk3
-, itstool
-, libgweather
-, libwnck
-, libxml2
-, pkg-config
-, polkit
-, systemd
-, wrapGAppsHook3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-panel";
-  version = "3.52.0";
-
-  outputs = [ "out" "dev" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-nim6iHPN5A1AwpNKRk+PQ7ousbUisZFEfKon3XhTxdQ=";
-  };
-
-  patches = [
-    # Load modules from path in `NIX_GNOME_PANEL_MODULESDIR` environment variable
-    # instead of gnome-panel’s libdir so that the NixOS module can make gnome-panel
-    # load modules from other packages as well.
-    ./modulesdir-env-var.patch
-  ];
-
-  # make .desktop Exec absolute
-  postPatch = ''
-    patch -p0 <<END_PATCH
-    +++ gnome-panel/gnome-panel.desktop.in
-    @@ -7 +7 @@
-    -Exec=gnome-panel
-    +Exec=$out/bin/gnome-panel
-    END_PATCH
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gnome-menus}/share"
-      --prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg"
-    )
-  '';
-
-  nativeBuildInputs = [
-    autoreconfHook
-    gettext
-    itstool
-    libxml2
-    pkg-config
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    dconf
-    evolution-data-server
-    gdm
-    geocode-glib_2
-    glib
-    gnome-desktop
-    gnome-menus
-    gtk3
-    libgweather
-    libwnck
-    polkit
-    systemd
-  ];
-
-  configureFlags = [
-    "--enable-eds"
-  ];
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
-      versionPolicy = "odd-unstable";
-    };
-  };
-
-  meta = with lib; {
-    description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
-    mainProgram = "gnome-panel";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-panel";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch b/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch
deleted file mode 100644
index 40638bf123d2a..0000000000000
--- a/pkgs/desktops/gnome/misc/gnome-panel/modulesdir-env-var.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/gnome-panel/gp-module-manager.c b/gnome-panel/gp-module-manager.c
-index 58447fd84..7af99de7d 100644
---- a/gnome-panel/gp-module-manager.c
-+++ b/gnome-panel/gp-module-manager.c
-@@ -49,8 +49,16 @@ load_modules (GpModuleManager *self)
- {
-   GDir *dir;
-   const gchar *name;
-+  const gchar *modules_dir;
- 
--  dir = g_dir_open (MODULESDIR, 0, NULL);
-+  modules_dir = g_getenv ("NIX_GNOME_PANEL_MODULESDIR");
-+
-+  if (!modules_dir) {
-+    g_warning ("The NIX_GNOME_PANEL_MODULESDIR environment variable was not set, modules will not be loaded.");
-+    return;
-+  }
-+
-+  dir = g_dir_open (modules_dir, 0, NULL);
-   if (!dir)
-     return;
- 
-@@ -63,7 +71,7 @@ load_modules (GpModuleManager *self)
-       if (!g_str_has_suffix (name, ".so"))
-         continue;
- 
--      path = g_build_filename (MODULESDIR, name, NULL);
-+      path = g_build_filename (modules_dir, name, NULL);
-       module = gp_module_new_from_path (path);
-       g_free (path);
- 
diff --git a/pkgs/desktops/gnome/misc/gnome-panel/wrapper.nix b/pkgs/desktops/gnome/misc/gnome-panel/wrapper.nix
deleted file mode 100644
index 10b81eaad62cd..0000000000000
--- a/pkgs/desktops/gnome/misc/gnome-panel/wrapper.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, lib
-, buildEnv
-, gnome-panel
-, gnome-flashback
-, xorg
-, glib
-, wrapGAppsHook3
-, panelModulePackages ? [ ]
-}:
-
-let
-  # We always want to find the built-in panel applets.
-  selectedPanelModulePackages = [ gnome-panel gnome-flashback ] ++ panelModulePackages;
-
-  panelModulesEnv = buildEnv {
-    name = "gnome-panel-modules-env";
-    paths = selectedPanelModulePackages;
-    pathsToLink = [ "/lib/gnome-panel/modules" ];
-  };
-in
-stdenv.mkDerivation {
-  pname = "${gnome-panel.pname}-with-modules";
-  inherit (gnome-panel) version;
-
-  nativeBuildInputs = [
-    glib
-    wrapGAppsHook3
-  ];
-
-  buildInputs = selectedPanelModulePackages ++
-    lib.forEach selectedPanelModulePackages (x: x.buildInputs or [ ]);
-
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
-
-  preferLocalBuild = true;
-  allowSubstitutes = false;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    ${xorg.lndir}/bin/lndir -silent ${gnome-panel} $out
-
-    rm -r $out/lib/gnome-panel/modules
-    ${xorg.lndir}/bin/lndir -silent ${panelModulesEnv} $out
-
-    rm $out/share/applications/gnome-panel.desktop
-
-    substitute ${gnome-panel}/share/applications/gnome-panel.desktop \
-      $out/share/applications/gnome-panel.desktop --replace \
-      "Exec=${gnome-panel}/bin/gnome-panel" "Exec=$out/bin/gnome-panel"
-
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --set NIX_GNOME_PANEL_MODULESDIR "$out/lib/gnome-panel/modules"
-    )
-  '';
-
-  meta = gnome-panel.meta // { outputsToInstall = [ "out" ]; };
-}
diff --git a/pkgs/desktops/lxde/core/lxtask/default.nix b/pkgs/desktops/lxde/core/lxtask/default.nix
index 2daece75cbd4a..b29581dfe5fa4 100644
--- a/pkgs/desktops/lxde/core/lxtask/default.nix
+++ b/pkgs/desktops/lxde/core/lxtask/default.nix
@@ -1,29 +1,42 @@
 { lib
 , stdenv
-, fetchurl
-, pkg-config
-, intltool
+, fetchFromGitHub
+, autoreconfHook
 , gtk3
+, intltool
 , libintl
+, pkg-config
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "lxtask";
-  version = "0.1.10";
+  version = "0.1.11";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/lxde/${pname}-${version}.tar.xz";
-    sha256 = "0b2fxg8jjjpk219gh7qa18g45365598nd2bq7rrq0bdvqjdxy5i2";
+  src = fetchFromGitHub {
+    owner = "lxde";
+    repo = "lxtask";
+    rev = version;
+    hash = "sha256-KPne7eWzOOSZjHlam3e6HifNk2Sx1vWnQYkXDFZGop0=";
   };
 
-  nativeBuildInputs = [ pkg-config intltool ];
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    pkg-config
+  ];
 
-  buildInputs = [ gtk3 libintl ];
+  buildInputs = [
+    gtk3
+    libintl
+  ];
 
   configureFlags = [ "--enable-gtk3" ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
-    homepage = "https://wiki.lxde.org/en/LXTask";
+    homepage = "http://lxde.sourceforge.net/";
     description = "Lightweight and desktop independent task manager";
     mainProgram = "lxtask";
     longDescription = ''
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 360e175e6b1b3..9084297c05b1a 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
-  version = "8.0.0";
+  version = "8.0.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OXaCftfPPAIxDGOBKM4S7Bv//j0sWy/CsbqvugxSZ70=";
+    sha256 = "sha256-aOJnjHCyc1tSyF7AuW5nXUXcvzBnZ+pwU91Mk+veusg=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index 47f4d036fc5cb..cde3255eb46fc 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -38,10 +38,10 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   maintainers = lib.teams.pantheon.members;
 
-  mutter = pkgs.gnome.mutter43;
+  mutter = pkgs.mutter43;
 
   # Using 43 to match Mutter used in Pantheon
-  gnome-settings-daemon = pkgs.gnome.gnome-settings-daemon43;
+  gnome-settings-daemon = pkgs.gnome-settings-daemon43;
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
@@ -95,9 +95,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
 
-  elementary-session-settings = callPackage ./desktop/elementary-session-settings {
-    inherit (gnome) gnome-session;
-  };
+  elementary-session-settings = callPackage ./desktop/elementary-session-settings { };
 
   elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
 
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index d2780cdcfe653..744c546987b56 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-settings-daemon";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "settings-daemon";
     rev = version;
-    sha256 = "sha256-e70OVdvyKzzF+W7epzj23/Q1lsJiSJd7z1fj41sWfWU=";
+    sha256 = "sha256-w5dRQPRsM52wqusTLLPmKmVwoBFS+pHOokfDmCDxVWM=";
   };
 
   nativeBuildInputs = [