summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/gnome-3/core')
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix34
-rw-r--r--pkgs/desktops/gnome-3/core/caribou/default.nix54
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/default.nix147
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix51
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix111
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix133
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix64
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch526
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix103
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/fix-paths.patch60
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch31
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch38
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch40
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override2
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/reset-environment.patch20
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix52
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix66
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-common/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix64
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix184
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch192
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch15
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix53
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix45
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix108
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch67
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf5
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix73
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix43
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix79
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch40
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix124
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch15
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix65
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix221
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch30
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch57
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix65
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix50
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-tour/default.nix81
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix96
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix108
-rw-r--r--pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix39
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.34/0001-Fix-glitches-in-gala.patch29
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.34/default.nix166
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.34/drop-inheritable.patch132
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.34/fix-paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/3.34/fix-sysprof.patch25
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix154
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch132
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/fix-paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix107
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch24
-rw-r--r--pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch38
-rw-r--r--pkgs/desktops/gnome-3/core/rygel/default.nix106
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix87
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/default.nix86
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix57
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix50
76 files changed, 0 insertions, 5225 deletions
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
deleted file mode 100644
index 68c09cc9180..00000000000
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gnome3
-, iconnamingutils, gtk3, gdk-pixbuf, librsvg, hicolor-icon-theme }:
-
-stdenv.mkDerivation rec {
-  pname = "adwaita-icon-theme";
-  version = "3.36.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0kgiq712lfidd81yzx0yk7qwlj3q8cymp6npnxyzsk844y353674";
-  };
-
-  # For convenience, we can specify adwaita-icon-theme only in packages
-  propagatedBuildInputs = [ hicolor-icon-theme ];
-
-  buildInputs = [ gdk-pixbuf librsvg ];
-
-  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk3 ];
-
-  dontDropIconThemeCache = true;
-
-  # remove a tree of dirs with no files within
-  postInstall = '' rm -rf "$out/locale" '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "adwaita-icon-theme";
-      attrPath = "gnome3.adwaita-icon-theme";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    platforms = with platforms; linux ++ darwin;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
deleted file mode 100644
index dce14d6d1de..00000000000
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, gettext, fetchurl, vala, desktop-file-utils
-, meson, ninja, pkgconfig, gtk3, glib, libxml2
-, wrapGAppsHook, itstool, gnome3 }:
-
-let
-  pname = "baobab";
-  version = "3.34.1";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1i90gc1cpw5507zn54k46hj4mjgdxsq8cvpnlgxq0ksy2d7iv63z";
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ];
-  buildInputs = [ gtk3 glib gnome3.adwaita-icon-theme ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Graphical application to analyse disk usage in any GNOME environment";
-    homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/caribou/default.nix b/pkgs/desktops/gnome-3/core/caribou/default.nix
deleted file mode 100644
index b9da1ab1c16..00000000000
--- a/pkgs/desktops/gnome-3/core/caribou/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, gnome3, glib, gtk3, clutter, dbus, python3, libxml2
-, libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook
-, wrapGAppsHook, libgee }:
-
-let
-  pname = "caribou";
-  version = "0.4.21";
-  pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] );
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww";
-  };
-
-  patches = [
-    # Fix crash in GNOME Flashback
-    # https://bugzilla.gnome.org/show_bug.cgi?id=791001
-    (fetchurl {
-      url = "https://bugzilla.gnome.org/attachment.cgi?id=364774";
-      sha256 = "15k1455grf6knlrxqbjnk7sals1730b0whj30451scp46wyvykvd";
-    })
-  ];
-
-  nativeBuildInputs = [ pkgconfig intltool libxslt libxml2 autoreconfHook wrapGAppsHook ];
-
-  buildInputs = [
-    glib gtk3 clutter at-spi2-core dbus pythonEnv python3.pkgs.pygobject3
-    libXtst gtk2
-  ];
-
-  propagatedBuildInputs = [ libgee libxklavier ];
-
-  postPatch = ''
-    patchShebangs .
-    substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "An input assistive technology intended for switch and pointer users";
-    homepage = "https://wiki.gnome.org/Projects/Caribou";
-    license = licenses.lgpl21;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
deleted file mode 100644
index c6b02917ce4..00000000000
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, gtk3, gnome3, python3, dconf
-, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
-
-let
-  pname = "dconf-editor";
-  version = "3.36.4";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0y9yll77wkvr9ly132icfsl12sdz5aba9qc3aqm5rc90r6xhkhry";
-  };
-
-  nativeBuildInputs = [
-    meson ninja vala libxslt pkgconfig wrapGAppsHook
-    gettext docbook_xsl libxml2 gobject-introspection python3
-  ];
-
-  buildInputs = [ glib gtk3 dconf ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
deleted file mode 100644
index 83c1f5d4a56..00000000000
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ /dev/null
@@ -1,147 +0,0 @@
-{ stdenv
-, intltool
-, fetchurl
-, webkitgtk
-, pkgconfig
-, gtk3
-, glib
-, file
-, librsvg
-, gnome3
-, gdk-pixbuf
-, python3
-, telepathy-glib
-, telepathy-farstream
-, clutter-gtk
-, clutter-gst
-, gst_all_1
-, cogl
-, gnome-online-accounts
-, gcr
-, libsecret
-, folks
-, libpulseaudio
-, telepathy-mission-control
-, telepathy-logger
-, libnotify
-, clutter
-, libsoup
-, gnutls
-, evolution-data-server
-, yelp-xsl
-, libcanberra-gtk3
-, p11-kit
-, farstream
-, libtool
-, shared-mime-info
-, wrapGAppsHook
-, itstool
-, libxml2
-, libxslt
-, icu
-, libgee
-, gsettings-desktop-schemas
-, isocodes
-, enchant
-, libchamplain
-, geoclue2
-, geocode-glib
-, cheese
-, libgudev
-}:
-
-stdenv.mkDerivation rec {
-  pname = "empathy";
-  version = "3.25.90";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/empathy/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0sn10fcymc6lyrabk7vx8lpvlaxxkqnmcwj9zdkfa8qf3388k4nc";
-  };
-
-  propagatedBuildInputs = [
-    folks
-    telepathy-logger
-    evolution-data-server
-    telepathy-mission-control
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    libtool
-    intltool
-    itstool
-    file
-    wrapGAppsHook
-    libxml2
-    libxslt
-    yelp-xsl
-    python3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    webkitgtk
-    icu
-    gnome-online-accounts
-    telepathy-glib
-    clutter-gtk
-    clutter-gst
-    cogl
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gcr
-    libsecret
-    libpulseaudio
-    gdk-pixbuf
-    libnotify
-    clutter
-    libsoup
-    gnutls
-    libgee
-    p11-kit
-    libcanberra-gtk3
-    telepathy-farstream
-    farstream
-    gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas
-    librsvg
-
-    # Spell-checking
-    enchant
-    isocodes
-
-    # Display maps, location awareness, geocode support
-    libchamplain
-    geoclue2
-    geocode-glib
-
-    # Cheese webcam support, camera monitoring
-    cheese
-    libgudev
-  ];
-
-  enableParallelBuilding = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "empathy";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Empathy";
-    description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols";
-    maintainers = teams.gnome.members;
-    license = [ licenses.gpl2 ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
deleted file mode 100644
index 9885d0de37f..00000000000
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ fetchurl, stdenv, meson, ninja, gettext, itstool, pkgconfig, libxml2, libjpeg, libpeas, gnome3
-, gtk3, glib, gsettings-desktop-schemas, adwaita-icon-theme, gnome-desktop, lcms2, gdk-pixbuf, exempi
-, shared-mime-info, wrapGAppsHook, librsvg, libexif, gobject-introspection, python3 }:
-
-let
-  pname = "eog";
-  version = "3.36.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1p1lrnsgk5iyw7h02qzax4s74dqqsh5lk85b0qsj7hwx91qm61xp";
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
-
-  buildInputs = [
-    libjpeg gtk3 gdk-pixbuf glib libpeas librsvg lcms2 gnome-desktop libexif exempi
-    gsettings-desktop-schemas shared-mime-info adwaita-icon-theme
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Thumbnailers
-      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-      --prefix XDG_DATA_DIRS : "${librsvg}/share"
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GNOME image viewer";
-    homepage = "https://wiki.gnome.org/Apps/EyeOfGnome";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
deleted file mode 100644
index ad2d67972a9..00000000000
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-{ stdenv
-, meson
-, ninja
-, gettext
-, fetchurl
-, pkgconfig
-, gtk3
-, glib
-, icu
-, wrapGAppsHook
-, gnome3
-, libxml2
-, libxslt
-, itstool
-, webkitgtk
-, libsoup
-, glib-networking
-, libsecret
-, gnome-desktop
-, libnotify
-, p11-kit
-, sqlite
-, gcr
-, isocodes
-, desktop-file-utils
-, python3
-, nettle
-, gdk-pixbuf
-, gst_all_1
-, json-glib
-, libdazzle
-, libhandy
-, buildPackages
-}:
-
-stdenv.mkDerivation rec {
-  pname = "epiphany";
-  version = "3.36.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1gs2a94fzpciv58rljgbirsc2kqgiaiyc2yg6ff50nlgb2qpb2jq";
-  };
-
-  # Tests need an X display
-  mesonFlags = [
-    "-Dunit_tests=disabled"
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    itstool
-    libxslt
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-    buildPackages.glib
-    buildPackages.gtk3
-  ];
-
-  buildInputs = [
-    gcr
-    gdk-pixbuf
-    glib
-    glib-networking
-    gnome-desktop
-    gnome3.adwaita-icon-theme
-    gst_all_1.gst-libav
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gstreamer
-    gtk3
-    icu
-    isocodes
-    json-glib
-    libdazzle
-    libhandy
-    libnotify
-    libsecret
-    libsoup
-    libxml2
-    nettle
-    p11-kit
-    sqlite
-    webkitgtk
-  ];
-
-  postPatch = ''
-    chmod +x post_install.py # patchShebangs requires executable file
-    patchShebangs post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Epiphany";
-    description = "WebKit based web browser for GNOME";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
deleted file mode 100644
index 11a5bcbd0f7..00000000000
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ /dev/null
@@ -1,133 +0,0 @@
-{ stdenv
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, gettext
-, libxml2
-, appstream
-, glib
-, gtk3
-, pango
-, atk
-, gdk-pixbuf
-, shared-mime-info
-, itstool
-, gnome3
-, poppler
-, ghostscriptX
-, djvulibre
-, libspectre
-, libarchive
-, libsecret
-, wrapGAppsHook
-, librsvg
-, gobject-introspection
-, yelp-tools
-, gspell
-, adwaita-icon-theme
-, gsettings-desktop-schemas
-, gnome-desktop
-, dbus
-, python3
-, texlive
-, t1lib
-, gst_all_1
-, gtk-doc
-, docbook-xsl-nons
-, docbook_xml_dtd_43
-, supportMultimedia ? true # PDF multimedia
-, libgxps
-, supportXPS ? true # Open XML Paper Specification via libgxps
-}:
-
-stdenv.mkDerivation rec {
-  pname = "evince";
-  version = "3.36.7";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0clg9fhgjyj23mmcmw7dp512wzgv5m18fppn05qf1frz7r11mmk5";
-  };
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  nativeBuildInputs = [
-    appstream
-    docbook-xsl-nons
-    docbook_xml_dtd_43
-    gettext
-    gobject-introspection
-    gtk-doc
-    itstool
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-    yelp-tools
-  ];
-
-  buildInputs = [
-    adwaita-icon-theme
-    atk
-    dbus # only needed to find the service directory
-    djvulibre
-    gdk-pixbuf
-    ghostscriptX
-    glib
-    gnome-desktop
-    gsettings-desktop-schemas
-    gspell
-    gtk3
-    libarchive
-    librsvg
-    libsecret
-    libspectre
-    libxml2
-    pango
-    poppler
-    t1lib
-    texlive.bin.core # kpathsea for DVI support
-  ] ++ stdenv.lib.optional supportXPS libgxps
-    ++ stdenv.lib.optionals supportMultimedia (with gst_all_1; [
-      gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
-
-  mesonFlags = [
-    "-Dnautilus=false"
-    "-Dps=enabled"
-  ];
-
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Evince";
-    description = "GNOME's document viewer";
-
-    longDescription = ''
-      Evince is a document viewer for multiple document formats.  It
-      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-      of Evince is to replace the multiple document viewers that exist
-      on the GNOME Desktop with a single simple application.
-    '';
-
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
deleted file mode 100644
index 721b38d8564..00000000000
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ fetchurl, stdenv, substituteAll, pkgconfig, gnome3, python3, gobject-introspection
-, intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr
-, p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre
-, vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib
-, glib, gtk3, gnome-online-accounts, libgweather, libgdata, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation rec {
-  pname = "evolution-data-server";
-  version = "3.36.5";
-
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1nbzzqxlck3jz42wnxl281yfzpylcvbsbb0fvkh7nibdaj654mf5";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-  ];
-
-  prePatch = ''
-    substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch --subst-var-by ESD_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"} \
-      --subst-var-by GDS_GSETTINGS_PATH ${glib.getSchemaPath gsettings-desktop-schemas}
-    patches="$patches $PWD/hardcode-gsettings.patch"
-  '';
-
-  nativeBuildInputs = [
-    cmake ninja pkgconfig intltool python3 gperf wrapGAppsHook gobject-introspection vala
-  ];
-  buildInputs = [
-    glib libsoup libxml2 gtk3 gnome-online-accounts
-    gcr p11-kit libgweather libgdata libaccounts-glib json-glib
-    icu sqlite kerberos openldap webkitgtk glib-networking
-    libcanberra-gtk3 pcre
-  ];
-
-  propagatedBuildInputs = [ libsecret nss nspr libical db libsoup ];
-
-  cmakeFlags = [
-    "-DENABLE_UOA=OFF"
-    "-DENABLE_VALA_BINDINGS=ON"
-    "-DENABLE_INTROSPECTION=ON"
-    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
-    "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "evolution-data-server";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Unified backend for programs that work with contacts, tasks, and calendar information";
-    homepage = "https://wiki.gnome.org/Apps/Evolution";
-    license = licenses.lgpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch b/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch
deleted file mode 100644
index 33423551659..00000000000
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/fix-paths.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/calendar/libecal/e-cal-system-timezone.c
-+++ b/src/calendar/libecal/e-cal-system-timezone.c
-@@ -26,7 +26,7 @@
- #ifdef HAVE_SOLARIS
- #define SYSTEM_ZONEINFODIR "/usr/share/lib/zoneinfo/tab"
- #else
--#define SYSTEM_ZONEINFODIR "/usr/share/zoneinfo"
-+#define SYSTEM_ZONEINFODIR "@tzdata@/share/zoneinfo"
- #endif
- 
- #define ETC_TIMEZONE        "/etc/timezone"
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
deleted file mode 100644
index 4e345c3cb3c..00000000000
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
+++ /dev/null
@@ -1,526 +0,0 @@
-diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
-index 2c0557c3c..5955aa55e 100644
---- a/src/addressbook/libebook/e-book-client.c
-+++ b/src/addressbook/libebook/e-book-client.c
-@@ -1989,7 +1989,20 @@ e_book_client_get_self (ESourceRegistry *registry,
- 
- 	*out_client = book_client;
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-@@ -2057,7 +2070,20 @@ e_book_client_set_self (EBookClient *client,
- 	g_return_val_if_fail (
- 		e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	g_settings_set_string (
- 		settings, SELF_UID_KEY,
- 		e_contact_get_const (contact, E_CONTACT_UID));
-@@ -2093,8 +2119,20 @@ e_book_client_is_self (EContact *contact)
- 	 * unfortunately the API doesn't allow that.
- 	 */
- 	g_mutex_lock (&mutex);
--	if (!settings)
--		settings = g_settings_new (SELF_UID_PATH_ID);
-+	if (!settings) {
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_mutex_unlock (&mutex);
- 
-diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
-index 3396b57c0..ac6420b2e 100644
---- a/src/addressbook/libebook/e-book.c
-+++ b/src/addressbook/libebook/e-book.c
-@@ -2594,7 +2594,20 @@ e_book_get_self (ESourceRegistry *registry,
- 		return FALSE;
- 	}
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-@@ -2649,7 +2662,20 @@ e_book_set_self (EBook *book,
- 	g_return_val_if_fail (E_IS_BOOK (book), FALSE);
- 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	g_settings_set_string (
- 		settings, SELF_UID_KEY,
- 		e_contact_get_const (contact, E_CONTACT_UID));
-@@ -2677,7 +2703,20 @@ e_book_is_self (EContact *contact)
- 
- 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
- 
--	settings = g_settings_new (SELF_UID_PATH_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 SELF_UID_PATH_ID,
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	uid = g_settings_get_string (settings, SELF_UID_KEY);
- 	g_object_unref (settings);
- 
-diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
-index de1716941..e83b104f1 100644
---- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
-+++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
-@@ -1397,7 +1397,20 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
- 		(GDestroyNotify) g_free,
- 		(GDestroyNotify) contact_record_free);
- 
--	cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	cbc->priv->notifyid = 0;
- 	cbc->priv->update_alarms_id = 0;
- 	cbc->priv->alarm_enabled = FALSE;
-diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index b08a7f301..a49fe39c5 100644
---- a/src/calendar/libecal/e-reminder-watcher.c
-+++ b/src/calendar/libecal/e-reminder-watcher.c
-@@ -2202,7 +2202,21 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
- 
- 	watcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (watcher, E_TYPE_REMINDER_WATCHER, EReminderWatcherPrivate);
- 	watcher->priv->cancellable = g_cancellable_new ();
--	watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		watcher->priv->settings = g_settings_new_full(schema, NULL,
-+							      NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	watcher->priv->scheduled = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_reminder_watcher_free_rd_slist);
- 	watcher->priv->default_zone = icaltimezone_copy (zone);
- 	watcher->priv->timers_enabled = TRUE;
-diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
-index dcdc3eed0..fd2e428c2 100644
---- a/src/camel/camel-cipher-context.c
-+++ b/src/camel/camel-cipher-context.c
-@@ -1635,7 +1635,20 @@ camel_cipher_can_load_photos (void)
- 	GSettings *settings;
- 	gboolean load_photos;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
- 	g_clear_object (&settings);
- 
-diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index 1b3362886..f0811b292 100644
---- a/src/camel/camel-gpg-context.c
-+++ b/src/camel/camel-gpg-context.c
-@@ -573,7 +573,20 @@ gpg_ctx_get_executable_name (void)
- 		GSettings *settings;
- 		gchar *path;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			GSettingsSchemaSource *schema_source;
-+			GSettingsSchema *schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+			g_settings_schema_source_unref(schema_source);
-+			g_settings_schema_unref(schema);
-+		}
- 		path = g_settings_get_string (settings, "camel-gpg-binary");
- 		g_clear_object (&settings);
- 
-diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
-index e0d8b87d6..3a4d5a359 100644
---- a/src/libedataserver/e-network-monitor.c
-+++ b/src/libedataserver/e-network-monitor.c
-@@ -255,7 +255,20 @@ e_network_monitor_constructed (GObject *object)
- 	/* Chain up to parent's method. */
- 	G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	g_settings_bind (
- 		settings, "network-monitor-gio-name",
- 		object, "gio-name",
-diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
-index f0c6f2cbf..0053e3ce6 100644
---- a/src/libedataserver/e-oauth2-service-google.c
-+++ b/src/libedataserver/e-oauth2-service-google.c
-@@ -69,7 +69,20 @@ eos_google_read_settings (EOAuth2Service *service,
- 	if (!value) {
- 		GSettings *settings;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			GSettingsSchemaSource *schema_source;
-+			GSettingsSchema *schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+			g_settings_schema_source_unref(schema_source);
-+			g_settings_schema_unref(schema);
-+		}
- 		value = g_settings_get_string (settings, key_name);
- 		g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
-index 687c10d3b..684583c35 100644
---- a/src/libedataserver/e-oauth2-service-outlook.c
-+++ b/src/libedataserver/e-oauth2-service-outlook.c
-@@ -70,7 +70,20 @@ eos_outlook_read_settings (EOAuth2Service *service,
- 	if (!value) {
- 		GSettings *settings;
- 
--		settings = g_settings_new ("org.gnome.evolution-data-server");
-+		{
-+			GSettingsSchemaSource *schema_source;
-+			GSettingsSchema *schema;
-+			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+										    g_settings_schema_source_get_default(),
-+										    TRUE,
-+										    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 "org.gnome.evolution-data-server",
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+			g_settings_schema_source_unref(schema_source);
-+			g_settings_schema_unref(schema);
-+		}
- 		value = g_settings_get_string (settings, key_name);
- 		g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
-index 682673c16..436f52d5f 100644
---- a/src/libedataserver/e-oauth2-service.c
-+++ b/src/libedataserver/e-oauth2-service.c
-@@ -95,7 +95,20 @@ eos_default_guess_can_process (EOAuth2Service *service,
- 	name_len = strlen (name);
- 	hostname_len = strlen (hostname);
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	values = g_settings_get_strv (settings, "oauth2-services-hint");
- 	g_object_unref (settings);
- 
-diff --git a/src/libedataserver/e-proxy.c b/src/libedataserver/e-proxy.c
-index 883379a60..989353494 100644
---- a/src/libedataserver/e-proxy.c
-+++ b/src/libedataserver/e-proxy.c
-@@ -969,8 +969,37 @@ e_proxy_init (EProxy *proxy)
- 
- 	proxy->priv->type = PROXY_TYPE_SYSTEM;
- 
--	proxy->priv->evolution_proxy_settings = g_settings_new ("org.gnome.evolution.shell.network-config");
--	proxy->priv->proxy_settings = g_settings_new ("org.gnome.system.proxy");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution.shell.network-config",
-+							 FALSE);
-+		proxy->priv->evolution_proxy_settings = g_settings_new_full(schema,
-+									    NULL,
-+									    NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@GDS_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.system.proxy",
-+							 FALSE);
-+		proxy->priv->proxy_settings = g_settings_new_full(schema,
-+								  NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	proxy->priv->proxy_http_settings = g_settings_get_child (proxy->priv->proxy_settings, "http");
- 	proxy->priv->proxy_https_settings = g_settings_get_child (proxy->priv->proxy_settings, "https");
- 	proxy->priv->proxy_socks_settings = g_settings_get_child (proxy->priv->proxy_settings, "socks");
-diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
-index a5a30a3e1..5fbdf8190 100644
---- a/src/libedataserver/e-source-registry.c
-+++ b/src/libedataserver/e-source-registry.c
-@@ -1749,7 +1749,21 @@ e_source_registry_init (ESourceRegistry *registry)
- 
- 	g_mutex_init (&registry->priv->sources_lock);
- 
--	registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 GSETTINGS_SCHEMA,
-+							 FALSE);
-+		registry->priv->settings = g_settings_new_full(schema, NULL,
-+							       NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 
- 	g_signal_connect (
- 		registry->priv->settings, "changed",
-diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
-index f89cd4a5c..06cca9b5f 100644
---- a/src/libedataserverui/e-reminders-widget.c
-+++ b/src/libedataserverui/e-reminders-widget.c
-@@ -1650,7 +1650,21 @@ static void
- e_reminders_widget_init (ERemindersWidget *reminders)
- {
- 	reminders->priv = e_reminders_widget_get_instance_private (reminders);
--	reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server.calendar",
-+							 FALSE);
-+		reminders->priv->settings = g_settings_new_full(schema, NULL,
-+								NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 	reminders->priv->cancellable = g_cancellable_new ();
- 	reminders->priv->is_empty = TRUE;
- 	reminders->priv->is_mapped = FALSE;
-diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-index 6f03053d6..dffc186c7 100644
---- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
-@@ -706,7 +706,20 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
- 	gchar *autoconfig_directory;
- 	gint ii;
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 
- 	autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
- 
-diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
-index d531cb9e2..c5b1c761c 100644
---- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
-@@ -61,7 +61,20 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
- 	extension_name = E_SOURCE_EXTENSION_PROXY;
- 	extension = e_source_get_extension (source, extension_name);
- 
--	settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+			schema = g_settings_schema_source_lookup(schema_source,
-+								 NETWORK_CONFIG_SCHEMA_ID,
-+								 FALSE);
-+			settings = g_settings_new_full(schema, NULL, NULL);
-+			g_settings_schema_source_unref(schema_source);
-+			g_settings_schema_unref(schema);
-+	}
- 
- 	switch (g_settings_get_int (settings, "proxy-type")) {
- 		case 1:
-diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
-index 1c0a11382..3e144845e 100644
---- a/src/services/evolution-source-registry/evolution-source-registry.c
-+++ b/src/services/evolution-source-registry/evolution-source-registry.c
-@@ -181,7 +181,20 @@ main (gint argc,
- 
- reload:
- 
--	settings = g_settings_new ("org.gnome.evolution-data-server");
-+	{
-+		GSettingsSchemaSource *schema_source;
-+		GSettingsSchema *schema;
-+		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
-+									    g_settings_schema_source_get_default(),
-+									    TRUE,
-+									    NULL);
-+		schema = g_settings_schema_source_lookup(schema_source,
-+							 "org.gnome.evolution-data-server",
-+							 FALSE);
-+		settings = g_settings_new_full(schema, NULL, NULL);
-+		g_settings_schema_source_unref(schema_source);
-+		g_settings_schema_unref(schema);
-+	}
- 
- 	if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
- 		g_settings_set_boolean (settings, "migrated", TRUE);
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
deleted file mode 100644
index 58c898a5f0d..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg
-, accountsservice, libX11, gnome3, systemd, autoreconfHook, dconf
-, gtk3, libcanberra-gtk3, pam, libtool, gobject-introspection, plymouth
-, librsvg, coreutils, xwayland, nixos-icons, fetchpatch }:
-
-let
-
-  icon = fetchurl {
-    url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/4f041870efa1a6f0799ef4b32bb7be2cafee7a74/logo/nixos.svg";
-    sha256 = "0b0dj408c1wxmzy6k0pjwc4bzwq286f1334s3cqqwdwjshxskshk";
-  };
-
-  override = substituteAll {
-    src = ./org.gnome.login-screen.gschema.override;
-    inherit icon;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  pname = "gdm";
-  version = "3.34.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8";
-  };
-
-  # Only needed to make it build
-  preConfigure = ''
-    substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
-  '';
-
-  initialVT = "7";
-
-  configureFlags = [
-    "--sysconfdir=/etc"
-    "--localstatedir=/var"
-    "--with-plymouth=yes"
-    "--enable-gdm-xsession"
-    "--with-initial-vt=${initialVT}"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-    "--with-udevdir=$(out)/lib/udev"
-  ];
-
-  nativeBuildInputs = [ pkgconfig libxml2 itstool autoreconfHook libtool dconf ];
-  buildInputs = [
-    glib accountsservice systemd
-    gobject-introspection libX11 gtk3
-    libcanberra-gtk3 pam plymouth librsvg
-  ];
-
-  enableParallelBuilding = true;
-
-  patches = [
-    # Change hardcoded paths to nix store paths.
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit coreutils plymouth xwayland;
-    })
-
-    # The following patches implement certain environment variables in GDM which are set by
-    # the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix).
-
-    ./gdm-x-session_extra_args.patch
-
-    # Allow specifying a wrapper for running the session command.
-    ./gdm-x-session_session-wrapper.patch
-
-    # Forwards certain environment variables to the gdm-x-session child process
-    # to ensure that the above two patches actually work.
-    ./gdm-session-worker_forward-vars.patch
-
-    # Set up the environment properly when launching sessions
-    # https://github.com/NixOS/nixpkgs/issues/48255
-    ./reset-environment.patch
-  ];
-
-  installFlags = [
-    "sysconfdir=$(out)/etc"
-    "dbusconfdir=$(out)/etc/dbus-1/system.d"
-  ];
-
-  preInstall = ''
-    schema_dir=${glib.makeSchemaPath "$out" "${pname}-${version}"}
-    install -D ${override} $schema_dir/org.gnome.login-screen.gschema.override
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gdm";
-      attrPath = "gnome3.gdm";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A program that manages graphical display servers and handles graphical user logins";
-    homepage = "https://wiki.gnome.org/Projects/GDM";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch
deleted file mode 100644
index 6b5bd6152bd..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/daemon/gdm-local-display-factory.c
-+++ b/daemon/gdm-local-display-factory.c
-@@ -201,7 +201,7 @@
- #ifdef ENABLE_WAYLAND_SUPPORT
-         gboolean wayland_enabled = FALSE;
-         if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
--                if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-+                if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-                         return TRUE;
-         }
- #endif
---- a/daemon/gdm-manager.c
-+++ b/daemon/gdm-manager.c
-@@ -145,7 +145,7 @@
-         GError  *error;
- 
-         error = NULL;
--        res = g_spawn_command_line_sync ("/bin/plymouth --ping",
-+        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping",
-                                          NULL, NULL, &status, &error);
-         if (! res) {
-                 g_debug ("Could not ping plymouth: %s", error->message);
-@@ -163,7 +163,7 @@
-         GError  *error;
- 
-         error = NULL;
--        res = g_spawn_command_line_sync ("/bin/plymouth deactivate",
-+        res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate",
-                                          NULL, NULL, NULL, &error);
-         if (! res) {
-                 g_warning ("Could not deactivate plymouth: %s", error->message);
-@@ -178,7 +178,7 @@
-         GError  *error;
- 
-         error = NULL;
--        res = g_spawn_command_line_async ("/bin/plymouth quit --retain-splash", &error);
-+        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error);
-         if (! res) {
-                 g_warning ("Could not quit plymouth: %s", error->message);
-                 g_error_free (error);
-@@ -194,7 +194,7 @@
-         GError  *error;
- 
-         error = NULL;
--        res = g_spawn_command_line_async ("/bin/plymouth quit", &error);
-+        res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error);
-         if (! res) {
-                 g_warning ("Could not quit plymouth: %s", error->message);
-                 g_error_free (error);
---- a/data/gdm.service.in
-+++ b/data/gdm.service.in
-@@ -28,7 +28,7 @@ BusName=org.gnome.DisplayManager
- StandardOutput=syslog
- StandardError=inherit
- EnvironmentFile=-@LANG_CONFIG_FILE@
--ExecReload=/bin/kill -SIGHUP $MAINPID
-+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
- KeyringMode=shared
- 
- [Install]
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch
deleted file mode 100644
index 401b6aea0c2..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_forward-vars.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
-index 9ef4c5b..94da834 100644
---- a/daemon/gdm-session-worker.c
-+++ b/daemon/gdm-session-worker.c
-@@ -1515,6 +1515,16 @@ gdm_session_worker_load_env_d (GdmSessionWorker *worker)
-         g_object_unref (dir);
- }
- 
-+static void
-+gdm_session_worker_forward_var (GdmSessionWorker *worker, char const *var)
-+{
-+        char const *value = g_getenv(var);
-+        if (value != NULL) {
-+                g_debug ("forwarding %s= %s", var, value);
-+                gdm_session_worker_set_environment_variable(worker, var, value);
-+        }
-+}
-+
- static gboolean
- gdm_session_worker_accredit_user (GdmSessionWorker  *worker,
-                                   GError           **error)
-@@ -1559,6 +1569,9 @@ gdm_session_worker_accredit_user (GdmSessionWorker  *worker,
-                 goto out;
-         }
- 
-+        gdm_session_worker_forward_var(worker, "GDM_X_SERVER_EXTRA_ARGS");
-+        gdm_session_worker_forward_var(worker, "GDM_X_SESSION_WRAPPER");
-+
-         gdm_session_worker_update_environment_from_passwd_info (worker,
-                                                                 uid,
-                                                                 gid,
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
deleted file mode 100644
index 66071aa4af8..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/daemon/gdm-x-session.c.orig b/daemon/gdm-x-session.c
-index d835b34..1f4b7f1 100644
---- a/daemon/gdm-x-session.c.orig
-+++ b/daemon/gdm-x-session.c
-@@ -211,6 +211,7 @@ spawn_x_server (State        *state,
-         char     *vt_string = NULL;
-         char     *display_number;
-         gsize     display_number_size;
-+        gchar   **xserver_extra_args = NULL;
- 
-         auth_file = prepare_auth_file ();
- 
-@@ -285,6 +286,17 @@ spawn_x_server (State        *state,
-         if (state->debug_enabled) {
-                 g_ptr_array_add (arguments, "-core");
-         }
-+
-+        if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) {
-+                g_debug ("using GDM_X_SERVER_EXTRA_ARGS: %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS"));
-+                xserver_extra_args = g_strsplit(g_getenv("GDM_X_SERVER_EXTRA_ARGS"), " ", -1);
-+                for (gchar **extra_arg = xserver_extra_args; *extra_arg; extra_arg++) {
-+                        if (strlen(*extra_arg) < 1) continue;
-+			g_debug ("adding: %s", *extra_arg);
-+                        g_ptr_array_add (arguments, *extra_arg);
-+                }
-+        }
-+
-         g_ptr_array_add (arguments, NULL);
- 
-         subprocess = g_subprocess_launcher_spawnv (launcher,
-@@ -332,6 +344,7 @@ spawn_x_server (State        *state,
- 
-         is_running = TRUE;
- out:
-+	g_strfreev(xserver_extra_args);
-         g_clear_pointer (&auth_file, g_free);
-         g_clear_object (&data_stream);
-         g_clear_object (&subprocess);
diff --git a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch
deleted file mode 100644
index 58481f0730f..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_session-wrapper.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
-index 88fe96f..b1b140a 100644
---- a/daemon/gdm-x-session.c
-+++ b/daemon/gdm-x-session.c
-@@ -664,18 +664,34 @@ spawn_session (State        *state,
-                                                           state->session_command,
-                                                           NULL);
-         } else {
-+                char const *session_wrapper;
-+                char *eff_session_command;
-                 int ret;
-                 char **argv;
- 
--                ret = g_shell_parse_argv (state->session_command,
-+                session_wrapper = g_getenv("GDM_X_SESSION_WRAPPER");
-+                if (session_wrapper != NULL) {
-+                        char *quoted_wrapper = g_shell_quote(session_wrapper);
-+                        eff_session_command = g_strjoin(" ", quoted_wrapper, state->session_command, NULL);
-+                        g_free(quoted_wrapper);
-+                } else {
-+                        eff_session_command = state->session_command;
-+                }
-+
-+                ret = g_shell_parse_argv (eff_session_command,
-                                           NULL,
-                                           &argv,
-                                           &error);
- 
-+                if (session_wrapper != NULL) {
-+                        g_free(eff_session_command);
-+                }
-+
-                 if (!ret) {
-                         g_debug ("could not parse session arguments: %s", error->message);
-                         goto out;
-                 }
-+
-                 subprocess = g_subprocess_launcher_spawnv (launcher,
-                                                            (const char * const *) argv,
-                                                            &error);
diff --git a/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override b/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
deleted file mode 100644
index 8c17f494b0f..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
+++ /dev/null
@@ -1,2 +0,0 @@
-[org.gnome.login-screen]
-logo='@icon@'
diff --git a/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch b/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch
deleted file mode 100644
index 61defd9c4bc..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/reset-environment.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/daemon/gdm-wayland-session.c
-+++ b/daemon/gdm-wayland-session.c
-@@ -285,6 +285,7 @@ spawn_session (State        *state,
-                                                     "WAYLAND_DISPLAY",
-                                                     "WAYLAND_SOCKET",
-                                                     "GNOME_SHELL_SESSION_MODE",
-+                                                    "__NIXOS_SET_ENVIRONMENT_DONE",
-                                                     NULL };
- 
-         g_debug ("Running wayland session");
---- a/daemon/gdm-x-session.c
-+++ b/daemon/gdm-x-session.c
-@@ -610,6 +610,7 @@ spawn_session (State        *state,
-                                                      "WAYLAND_DISPLAY",
-                                                      "WAYLAND_SOCKET",
-                                                      "GNOME_SHELL_SESSION_MODE",
-+                                                     "__NIXOS_SET_ENVIRONMENT_DONE",
-                                                      NULL };
- 
-         g_debug ("Running X session");
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
deleted file mode 100644
index e8463c5b704..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, gettext }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-backgrounds";
-  version = "3.36.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "02xvfwfi3133mjljl731z2hj9hfmjas3a1jl4fxmy24xrzj83jxq";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome3.gnome-backgrounds"; };
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext ];
-
-  meta = with stdenv.lib; {
-    platforms = platforms.unix;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
deleted file mode 100644
index ed647bb87d8..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, gtk3, intltool, glib
-, udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobject-introspection
-, gtk-doc, docbook_xsl, docbook_xml_dtd_43, python3, gsettings-desktop-schemas }:
-
-let
-  pname = "gnome-bluetooth";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "3.34.1";
-
-  # TODO: split out "lib"
-  outputs = [ "out" "dev" "devdoc" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "11nk8nvz5yrbx7wp75vsiaf4rniv7ik2g3nwmgwx2b42q9v11j9y";
-  };
-
-  nativeBuildInputs = [
-    meson ninja intltool itstool pkgconfig libxml2 wrapGAppsHook gobject-introspection
-    gtk-doc docbook_xsl docbook_xml_dtd_43 python3
-  ];
-  buildInputs = [
-    glib gtk3 udev libnotify libcanberra-gtk3
-    gnome3.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 = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
-    description = "Application that let you manage Bluetooth in the GNOME destkop";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
deleted file mode 100644
index e14d8d136cd..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkgconfig, libxml2
-, gtk3, glib, gtksourceview4, wrapGAppsHook, gobject-introspection, python3
-, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas, libgee }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-calculator";
-  version = "3.36.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cqd4b25qp1i0p04m669jssg1l5sdapc1mniv9jssvw5r7wk1s52";
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig vala gettext itstool wrapGAppsHook python3
-    gobject-introspection # for finding vapi files
-  ];
-
-  buildInputs = [
-    gtk3 glib libxml2 gtksourceview4 mpfr gmp
-    gnome3.adwaita-icon-theme libgee
-    gsettings-desktop-schemas libsoup libmpc
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-calculator";
-      attrPath = "gnome3.gnome-calculator";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Calculator";
-    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
deleted file mode 100644
index 69655e2364d..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, gettext
-, itstool
-, desktop-file-utils
-, gnome3
-, glib
-, gtk3
-, libexif
-, libtiff
-, colord
-, colord-gtk
-, libcanberra-gtk3
-, lcms2
-, vte
-, exiv2
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-color-manager";
-  version = "3.32.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkgconfig
-    gettext
-    itstool
-    desktop-file-utils
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    libexif
-    libtiff
-    colord
-    colord-gtk
-    libcanberra-gtk3
-    lcms2
-    vte
-    exiv2
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A set of graphical utilities for color management to be used in the GNOME desktop";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
deleted file mode 100644
index fb0b0f87544..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-common/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, which, gnome3, autoconf, automake }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-common";
-  version = "3.18.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-common/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-common"; attrPath = "gnome3.gnome-common"; };
-  };
-
-  patches = [(fetchurl {
-    name = "gnome-common-patch";
-    url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
-    sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
-  })];
-
-  propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome-common tends to require which
-
-  meta = with stdenv.lib; {
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
deleted file mode 100644
index 5372552a720..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv, gettext, fetchurl, evolution-data-server, fetchpatch
-, pkgconfig, libxslt, docbook_xsl, docbook_xml_dtd_42, python3, gtk3, glib, cheese
-, libchamplain, clutter-gtk, geocode-glib, gnome-desktop, gnome-online-accounts
-, wrapGAppsHook, folks, libxml2, gnome3
-, vala, meson, ninja, libhandy, gsettings-desktop-schemas
-# , telepathy-glib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-contacts";
-  version = "3.36.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "048l07biy8xrfidfyzrjd5lrnfzqhb767ih2gl7w6c4mmhj4g2dy";
-  };
-
-  propagatedUserEnvPkgs = [ evolution-data-server ];
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig vala gettext libxslt docbook_xsl docbook_xml_dtd_42 python3 wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gtk3 glib evolution-data-server gsettings-desktop-schemas
-    folks gnome-desktop libhandy
-    libxml2 gnome-online-accounts cheese
-    gnome3.adwaita-icon-theme libchamplain clutter-gtk geocode-glib
-    # telepathy-glib 3.35.90 fails to build with telepathy
-  ];
-
-  mesonFlags = [
-    # Upstream does not seem to maintain this properly: https://gitlab.gnome.org/GNOME/gnome-contacts/issues/103
-    "-Dtelepathy=false"
-  ];
-
-  postPatch = ''
-    chmod +x build-aux/meson_post_install.py
-    patchShebangs build-aux/meson_post_install.py
-  '';
-
-  # In file included from src/gnome-contacts@exe/contacts-avatar-selector.c:30:0:
-  # /nix/store/*-cheese-3.28.0/include/cheese/cheese-widget.h:26:10: fatal error: clutter-gtk/clutter-gtk.h: No such file or directory
-  #  #include <clutter-gtk/clutter-gtk.h>
-  #           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
-  NIX_CFLAGS_COMPILE = "-I${stdenv.lib.getDev clutter-gtk}/include/clutter-gtk-1.0";
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-contacts";
-      attrPath = "gnome3.gnome-contacts";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Contacts";
-    description = "GNOME’s integrated address book";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
deleted file mode 100644
index ea28d651eba..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ /dev/null
@@ -1,184 +0,0 @@
-{ fetchurl
-, stdenv
-, substituteAll
-, accountsservice
-, adwaita-icon-theme
-, cheese
-, clutter
-, clutter-gtk
-, colord
-, colord-gtk
-, cups
-, docbook_xsl
-, fontconfig
-, gdk-pixbuf
-, gettext
-, glib
-, glib-networking
-, glibc
-, gnome-bluetooth
-, gnome-color-manager
-, gnome-desktop
-, gnome-online-accounts
-, gnome-session
-, gnome-settings-daemon
-, gnome3
-, grilo
-, grilo-plugins
-, gsettings-desktop-schemas
-, gsound
-, gtk3
-, ibus
-, libcanberra-gtk3
-, libgnomekbd
-, libgtop
-, libgudev
-, libhandy
-, libkrb5
-, libpulseaudio
-, libpwquality
-, librsvg
-, libsecret
-, libsoup
-, libwacom
-, libxml2
-, libxslt
-, meson
-, modemmanager
-, mutter
-, networkmanager
-, networkmanagerapplet
-, libnma
-, ninja
-, pkgconfig
-, polkit
-, python3
-, samba
-, shared-mime-info
-, sound-theme-freedesktop
-, tracker
-, tzdata
-, udisks2
-, upower
-, epoxy
-, gnome-user-share
-, gnome-remote-desktop
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-control-center";
-  version = "3.36.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0m7pxjgymc7aqqz0vcmlq91nxnwzd1v7v1gdhrfam49krxmk80mc";
-  };
-
-  nativeBuildInputs = [
-    docbook_xsl
-    gettext
-    libxslt
-    meson
-    ninja
-    pkgconfig
-    python3
-    shared-mime-info
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    accountsservice
-    adwaita-icon-theme
-    cheese
-    clutter
-    clutter-gtk
-    colord
-    colord-gtk
-    fontconfig
-    gdk-pixbuf
-    glib
-    glib-networking
-    gnome-bluetooth
-    gnome-desktop
-    gnome-online-accounts
-    gnome-remote-desktop # optional, sharing panel
-    gnome-settings-daemon
-    gnome-user-share # optional, sharing panel
-    grilo
-    grilo-plugins # for setting wallpaper from Flickr
-    gsettings-desktop-schemas
-    gsound
-    gtk3
-    ibus
-    libcanberra-gtk3
-    libgtop
-    libgudev
-    libhandy
-    libkrb5
-    libpulseaudio
-    libpwquality
-    librsvg
-    libsecret
-    libsoup
-    libwacom
-    libxml2
-    modemmanager
-    mutter # schemas for the keybindings
-    networkmanager
-    libnma
-    polkit
-    samba
-    tracker
-    udisks2
-    upower
-    epoxy
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      gcm = gnome-color-manager;
-      gnome_desktop = gnome-desktop;
-      inherit glibc libgnomekbd tzdata;
-      inherit cups networkmanagerapplet;
-    })
-  ];
-
-  postPatch = ''
-    chmod +x build-aux/meson/meson_post_install.py # patchShebangs requires executable file
-    patchShebangs build-aux/meson/meson_post_install.py
-  '';
-
-  mesonFlags = [
-    "-Dgnome_session_libexecdir=${gnome-session}/libexec"
-  ];
-
-  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
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Utilities to configure the GNOME desktop";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch b/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
deleted file mode 100644
index 361972f2635..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
-index 49ca35220..adefb87b9 100644
---- a/panels/color/cc-color-panel.c
-+++ b/panels/color/cc-color-panel.c
-@@ -599,7 +599,7 @@ gcm_prefs_calibrate_cb (GtkWidget *widget, CcColorPanel *prefs)
- 
-   /* run with modal set */
-   argv = g_ptr_array_new_with_free_func (g_free);
--  g_ptr_array_add (argv, g_build_filename (BINDIR, "gcm-calibrate", NULL));
-+  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 (prefs->current_device)));
-   g_ptr_array_add (argv, g_strdup ("--parent-window"));
-@@ -1038,7 +1038,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, 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_build_filename (BINDIR, "gcm-viewer", NULL));
-+  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"));
-@@ -1288,15 +1288,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
- static void
- gcm_prefs_profile_clicked (CcColorPanel *prefs, 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 (prefs->toolbutton_profile_view, TRUE);
-   else
-     gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
-diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
-index 96b25140c..1ad704d4a 100644
---- a/panels/datetime/tz.h
-+++ b/panels/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/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
-index 4541986db..da7826bfe 100644
---- a/panels/info-overview/cc-info-overview-panel.c
-+++ b/panels/info-overview/cc-info-overview-panel.c
-@@ -169,7 +169,7 @@ load_gnome_version (char **version,
-   gsize length;
-   g_autoptr(VersionData) data = NULL;
-
--  if (!g_file_get_contents (DATADIR "/gnome/gnome-version.xml",
-+  if (!g_file_get_contents ("@gnome_desktop@/share/gnome/gnome-version.xml",
-                             &contents,
-                             &length,
-                             &error))
-diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
-index 9390a3308..d30b4a68e 100644
---- a/panels/network/connection-editor/net-connection-editor.c
-+++ b/panels/network/connection-editor/net-connection-editor.c
-@@ -278,9 +278,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
-         g_autoptr(GError) error = NULL;
-
-         if (self->is_new_connection) {
--                cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
-+                cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
-         } else {
--                cmdline = g_strdup_printf ("nm-connection-editor --edit='%s'",
-+                cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit='%s'",
-                                            nm_connection_get_uuid (self->connection));
-         }
- 
-diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
---- a/panels/network/net-device-bluetooth.c
-+++ b/panels/network/net-device-bluetooth.c
-@@ -90,7 +90,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
-         update_off_switch_from_device_state (self->device_off_switch, state, self);
-
-         /* set up the Options button */
--        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), state != NM_DEVICE_STATE_UNMANAGED && path != NULL);
- }
-
-@@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *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);
-@@ -185,7 +185,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)
-
-         gtk_widget_init_template (GTK_WIDGET (self));
-
--        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/network/net-device-mobile.c b/panels/network/net-device-mobile.c
---- a/panels/network/net-device-mobile.c
-+++ b/panels/network/net-device-mobile.c
-@@ -484,7 +484,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);
-@@ -776,7 +776,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 f53ba217e..d24bcaeb9 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_new0 (PpDevicesList, 1);
- 
-   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/region/cc-region-panel.c b/panels/region/cc-region-panel.c
-index 35859526d..21486c917 100644
---- a/panels/region/cc-region-panel.c
-+++ b/panels/region/cc-region-panel.c
-@@ -755,10 +755,10 @@ row_layout_cb (CcRegionPanel *self,
-         layout_variant = cc_input_source_get_layout_variant (source);
- 
-         if (layout_variant && layout_variant[0])
--                commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
-+                commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"",
-                                                layout, layout_variant);
-         else
--                commandline = g_strdup_printf ("gkbd-keyboard-display -l %s",
-+                commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s",
-                                                layout);
- 
-         g_spawn_command_line_async (commandline, NULL);
-diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
-index 00239ce0f..617c98870 100644
---- a/panels/user-accounts/run-passwd.c
-+++ b/panels/user-accounts/run-passwd.c
-@@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
-         gchar  **envp;
-         gint    my_stdin, my_stdout, my_stderr;
- 
--        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/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-3/core/gnome-desktop/bubblewrap-paths.patch b/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch
deleted file mode 100644
index 57eb4b3d44a..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/libgnome-desktop/gnome-desktop-thumbnail-script.c
-+++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c
-@@ -536,9 +536,9 @@ add_bwrap (GPtrArray   *array,
-   g_return_val_if_fail (script->s_infile != NULL, FALSE);
- 
-   add_args (array,
--	    "bwrap",
--	    "--ro-bind", "/usr", "/usr",
--	    "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
-+	    "@bubblewrap_bin@",
-+	    "--ro-bind", "@storeDir@", "@storeDir@",
-+	    "--ro-bind", "/run/current-system", "/run/current-system",
- 	    NULL);
- 
-   /* These directories might be symlinks into /usr/... */
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
deleted file mode 100644
index e558eb66d40..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ stdenv, fetchurl, substituteAll, pkgconfig, libxslt, ninja, libX11, gnome3, gtk3, glib
-, gettext, libxml2, xkeyboard_config, isocodes, meson, wayland
-, libseccomp, systemd, bubblewrap, gobject-introspection, gtk-doc, docbook_xsl, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-desktop";
-  version = "3.36.5";
-
-  outputs = [ "out" "dev" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0lxpgb199hn37vq822qg9g43pwixbki3x5lkazqa77qhjhlj98gf";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig meson ninja gettext libxslt libxml2 gobject-introspection
-    gtk-doc docbook_xsl glib
-  ];
-  buildInputs = [
-    libX11 bubblewrap xkeyboard_config isocodes wayland
-    gtk3 glib libseccomp systemd
-  ];
-
-  propagatedBuildInputs = [ gsettings-desktop-schemas ];
-
-  patches = [
-    (substituteAll {
-      src = ./bubblewrap-paths.patch;
-      bubblewrap_bin = "${bubblewrap}/bin/bwrap";
-      inherit (builtins) storeDir;
-    })
-  ];
-
-  mesonFlags = [
-    "-Dgtk_doc=true"
-    "-Ddesktop_docs=false"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-desktop";
-      attrPath = "gnome3.gnome-desktop";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Library with common API for various GNOME modules";
-    license = with licenses; [ gpl2 lgpl2 ];
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
deleted file mode 100644
index 02941743f55..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, desktop-file-utils, appstream-glib, libxslt
-, libxml2, gettext, itstool, wrapGAppsHook, docbook_xsl, docbook_xml_dtd_43
-, gnome3, gtk3, glib, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-dictionary";
-  version = "3.26.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
-  };
-
-  patches = [
-    # fix AppStream validation
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/commit/1c94d612030ef87c6e26a01a490470b71c39e341.patch";
-      sha256 = "0cbswmhs9mks3gsc0iy4wnidsa8sfzzf4s1kgvb80qwffgxz5m8b";
-    })
-  ];
-
-  doCheck = true;
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig wrapGAppsHook libxml2 gettext itstool
-    desktop-file-utils appstream-glib libxslt docbook_xsl docbook_xml_dtd_43
-  ];
-  buildInputs = [ gtk3 glib gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-dictionary";
-      attrPath = "gnome3.gnome-dictionary";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Dictionary";
-    description = "Dictionary is the GNOME application to look up definitions";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
deleted file mode 100644
index 40085e501b6..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, gettext, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
-, meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify
-, itstool, gnome3, libxml2, gsettings-desktop-schemas
-, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality, systemd }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-disk-utility";
-  version = "3.36.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yhnjmjzkixj29vcw6rzaijpg4mlwm2k1kqp4g3hn1xb6qzks0yx";
-  };
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig gettext itstool libxslt docbook_xsl
-    wrapGAppsHook python3 libxml2
-  ];
-
-  buildInputs = [
-    gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3
-    udisks2 gnome3.adwaita-icon-theme systemd
-    gnome3.gnome-settings-daemon gsettings-desktop-schemas
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-disk-utility";
-      attrPath = "gnome3.gnome-disk-utility";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://en.wikipedia.org/wiki/GNOME_Disks";
-    description = "A udisks graphical front-end";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
deleted file mode 100644
index d0ceef61c25..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, meson, ninja, gettext, fetchurl
-, pkgconfig, gtk3, glib, libxml2, gnome-desktop, adwaita-icon-theme
-, wrapGAppsHook, gnome3, harfbuzz }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-font-viewer";
-  version = "3.34.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-font-viewer/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook libxml2 ];
-  buildInputs = [ gtk3 glib gnome-desktop adwaita-icon-theme harfbuzz ];
-
-  # Do not run meson-postinstall.sh
-  preConfigure = "sed -i '2,$ d'  meson-postinstall.sh";
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-font-viewer";
-      attrPath = "gnome3.gnome-font-viewer";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Program that can preview fonts and create thumbnails for fonts";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
deleted file mode 100644
index ff7b1f45e45..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ stdenv
-, fetchurl
-, substituteAll
-, gettext
-, meson
-, ninja
-, pkgconfig
-, wrapGAppsHook
-, gnome3
-, accountsservice
-, fontconfig
-, gdm
-, geoclue2
-, geocode-glib
-, glib
-, gnome-desktop
-, gnome-getting-started-docs
-, gnome-online-accounts
-, gtk3
-, libgweather
-, json-glib
-, krb5
-, libpwquality
-, librest
-, libsecret
-, networkmanager
-, pango
-, polkit
-, webkitgtk
-, systemd
-, libnma
-, tzdata
-, yelp
-, libgnomekbd
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-initial-setup";
-  version = "3.36.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "17szzz2a5wpi7kwjnhimiwf8vg0bfliyk3k0adgv1pw2mcfpxp5s";
-  };
-
-  nativeBuildInputs = [
-    gettext
-    meson
-    ninja
-    pkgconfig
-    systemd
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    accountsservice
-    fontconfig
-    gdm
-    geoclue2
-    geocode-glib
-    glib
-    gnome-desktop
-    gnome-getting-started-docs
-    gnome-online-accounts
-    gtk3
-    json-glib
-    krb5
-    libgweather
-    libpwquality
-    librest
-    libsecret
-    networkmanager
-    pango
-    polkit
-    webkitgtk
-    libnma
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata libgnomekbd;
-      yelp = "${yelp}/bin/yelp"; # gnome-welcome-tour
-    })
-  ];
-
-  mesonFlags = [
-    "-Dcheese=disabled"
-    "-Dibus=disabled"
-    "-Dparental_controls=disabled"
-    "-Dvendor-conf-file=${./vendor.conf}"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Simple, easy, and safe way to prepare a new system";
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-initial-setup";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
deleted file mode 100644
index 94e14f688b3..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/data/gnome-welcome-tour b/data/gnome-welcome-tour
-index c479296..3dd629c 100755
---- a/data/gnome-welcome-tour
-+++ b/data/gnome-welcome-tour
-@@ -3,7 +3,7 @@
- cfgdir=${XDG_CONFIG_DIR:-$HOME/.config}
- 
- # Don't do anything if yelp isn't installed
--yelp_path=$(which yelp 2>/dev/null)
-+yelp_path=@yelp@
- if test -z "${yelp_path}"; then
-     rm -f $cfgdir/run-welcome-tour
-     exit
-@@ -17,5 +17,5 @@ geometry=(1024, 709)
- EOF
- fi
- 
--yelp help:gnome-help/getting-started
-+$yelp_path help:gnome-help/getting-started
- rm -f $cfgdir/run-welcome-tour
-diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
-index 1c34ef7..a1e7f93 100644
---- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
-+++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
-@@ -177,9 +177,9 @@ preview_cb (GtkLabel       *label,
- 		return TRUE;
- 
- 	if (variant[0])
--		commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
-+		commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
- 	else
--		commandline = g_strdup_printf ("gkbd-keyboard-display -l %s", layout);
-+		commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s", layout);
- 	g_spawn_command_line_async (commandline, NULL);
- 	g_free (commandline);
- 
-@@ -829,7 +829,7 @@ cc_input_chooser_class_init (CcInputChooserClass *klass)
-                 g_param_spec_string ("showing-extra", "", "", "",
-                                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
- 
--	signals[CHANGED] = 
-+	signals[CHANGED] =
- 		g_signal_new ("changed",
- 			      G_TYPE_FROM_CLASS (object_class),
- 			      G_SIGNAL_RUN_FIRST,
-diff --git a/gnome-initial-setup/pages/timezone/tz.h b/gnome-initial-setup/pages/timezone/tz.h
-index 93905b3..e7ee785 100644
---- a/gnome-initial-setup/pages/timezone/tz.h
-+++ b/gnome-initial-setup/pages/timezone/tz.h
-@@ -4,7 +4,7 @@
-  * Copyright (C) 2000-2001 Ximian, Inc.
-  *
-  * Authors: Hans Petter Jansson <hpj@ximian.com>
-- * 
-+ *
-  * Largely based on Michael Fulbright's work on Anaconda.
-  *
-  * This program is free software; you can redistribute it and/or modify
-@@ -28,7 +28,7 @@
- #include <glib.h>
- 
- #ifndef __sun
--#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
-+#  define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
- #else
- #  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
- #endif
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf b/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
deleted file mode 100644
index a06b37e100e..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# Disable pages not right for NixOS
-# For example user accounts should be preconfigured
-# and we can't modify system time with systemd.
-[pages]
-skip=account;software;password;timezone;
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
deleted file mode 100644
index 9ffd32e85f7..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, pam, python2, glib, libxslt
-, gettext, gcr, libcap_ng, libselinux, p11-kit, openssh, wrapGAppsHook
-, docbook_xsl, docbook_xml_dtd_43, gnome3 }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-keyring";
-  version = "3.36.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11sgffrrpss5cmv3b717pqlbhgq17l1xd33fsvqgsw8simxbar52";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  buildInputs = [
-    glib libgcrypt pam openssh libcap_ng libselinux
-    gcr p11-kit
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig gettext libxslt docbook_xsl docbook_xml_dtd_43 wrapGAppsHook
-  ];
-
-  configureFlags = [
-    "--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories
-    "--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/"
-  ];
-
-  postPatch = ''
-    patchShebangs build
-  '';
-
-  # Tends to fail non-deterministically.
-  # - https://github.com/NixOS/nixpkgs/issues/55293
-  # - https://github.com/NixOS/nixpkgs/issues/51121
-  doCheck = false;
-
-  # In 3.20.1, tests do not support Python 3
-  checkInputs = [ dbus python2 ];
-
-  checkPhase = ''
-    export HOME=$(mktemp -d)
-    dbus-run-session \
-      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      make check
-  '';
-
-  # Use wrapped gnome-keyring-daemon with cap_ipc_lock=ep
-  postFixup = ''
-    files=($out/etc/xdg/autostart/* $out/share/dbus-1/services/*)
-
-    for file in ''${files[*]}; do
-      substituteInPlace $file \
-        --replace "$out/bin/gnome-keyring-daemon" "/run/wrappers/bin/gnome-keyring-daemon"
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-keyring";
-      attrPath = "gnome3.gnome-keyring";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications";
-    homepage = "https://wiki.gnome.org/Projects/GnomeKeyring";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
deleted file mode 100644
index ede2f279248..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2
-, libgdata, grilo, libzapojit, grilo-plugins, gnome-online-accounts, libmediaart
-, tracker, gfbgraph, librest, libsoup, json-glib, gmp, openssl, dleyna-server, wrapGAppsHook }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-online-miners";
-  version = "3.34.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-online-miners/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44";
-  };
-
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
-  buildInputs = [
-    glib libgdata libxml2 libsoup gmp openssl
-    grilo libzapojit grilo-plugins
-    gnome-online-accounts libmediaart
-    tracker gfbgraph json-glib librest
-    dleyna-server
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-online-miners";
-      attrPath = "gnome3.gnome-online-miners";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Projects/GnomeOnlineMiners";
-    description = "A set of crawlers that go through your online content and index them locally in Tracker";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
deleted file mode 100644
index a77aee4b890..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchFromGitLab, meson, ninja, pkgconfig, python3, wrapGAppsHook
-, glib, pipewire, systemd, libvncserver, libsecret, libnotify, gdk-pixbuf }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-remote-desktop";
-  version = "0.1.8";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "jadahl";
-    repo = "gnome-remote-desktop";
-    rev = version;
-    sha256 = "1wcvk0w4p0wnqnrjkbwvqcby9dd4nj0cm9cz0fqna31qfjrvb913";
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig python3 wrapGAppsHook ];
-
-  buildInputs = [
-    glib pipewire systemd libvncserver libsecret libnotify
-    gdk-pixbuf # For libnotify
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  mesonFlags = [
-    "-Dsystemd_user_unit_dir=${placeholder "out"}/lib/systemd/user"
-  ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop";
-    description = "GNOME Remote Desktop server";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
deleted file mode 100644
index 2eacfc2de77..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, gettext, libxml2, fetchurl, pkgconfig, libcanberra-gtk3
-, gtk3, glib, meson, ninja, python3, wrapGAppsHook, appstream-glib, desktop-file-utils
-, gnome3, gsettings-desktop-schemas }:
-
-let
-  pname = "gnome-screenshot";
-  version = "3.36.0";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0rhj6fkpxfm26jv3vsn7yb2ybkc2k86ggy23nxa945q74y4msj9k";
-  };
-
-  doCheck = true;
-
-  postPatch = ''
-    chmod +x build-aux/postinstall.py # patchShebangs requires executable file
-    patchShebangs build-aux/postinstall.py
-  '';
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext appstream-glib libxml2 desktop-file-utils python3 wrapGAppsHook ];
-  buildInputs = [
-    gtk3 glib libcanberra-gtk3 gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://en.wikipedia.org/wiki/GNOME_Screenshot";
-    description = "Utility used in the GNOME desktop environment for taking screenshots";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
deleted file mode 100644
index b25688ea5a9..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, glib, gtk3, gsettings-desktop-schemas
-, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3
-, libxslt, gettext, makeWrapper, systemd, xorg, epoxy, gnugrep, bash }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-session";
-  version = "3.36.0";
-
-  outputs = ["out" "sessions"];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ymvf1bap35348rpjqp63qwnwnnawdwi4snch95zc4n832w3hjym";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      gsettings = "${glib.bin}/bin/gsettings";
-      dbusLaunch = "${dbus.lib}/bin/dbus-launch";
-      grep = "${gnugrep}/bin/grep";
-      bash = "${bash}/bin/bash";
-    })
-  ];
-
-  mesonFlags = [ "-Dsystemd=true" ];
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig gettext makeWrapper
-    xmlto libxslt docbook_xsl docbook_xml_dtd_412 python3
-    dbus # for DTD
-  ];
-
-  buildInputs = [
-    glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome3.adwaita-icon-theme
-    gnome3.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-  '';
-
-  # `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 : "${gnome3.gnome-shell}/share"\
-      --suffix XDG_CONFIG_DIRS : "${gnome3.gnome-settings-daemon}/etc/xdg"
-  '';
-
-  # 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"
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-session";
-      attrPath = "gnome3.gnome-session";
-    };
-    providedSessions = [ "gnome" "gnome-xorg" ];
-  };
-
-  meta = with stdenv.lib; {
-    description = "GNOME session manager";
-    homepage = "https://wiki.gnome.org/Projects/SessionManagement";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
deleted file mode 100644
index 2399c656016..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/gnome-session/gnome-session.in
-+++ b/gnome-session/gnome-session.in
-@@ -3,11 +3,13 @@
- if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
-    [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
-    [  -n "$SHELL" ] &&
--   grep -q "$SHELL" /etc/shells &&
--   ! (echo "$SHELL" | grep -q "false") &&
--   ! (echo "$SHELL" | grep -q "nologin"); then
-+   @grep@ -q "$SHELL" /etc/shells &&
-+   ! (echo "$SHELL" | @grep@ -q "false") &&
-+   ! (echo "$SHELL" | @grep@ -q "nologin"); 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
-@@ -13,7 +13,7 @@
-   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%\'}
- 
---- a/gnome-session/main.c
-+++ b/gnome-session/main.c
-@@ -203,7 +203,7 @@
-         }
-         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-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
deleted file mode 100644
index 2ee07fb09aa..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ /dev/null
@@ -1,124 +0,0 @@
-{ stdenv
-, substituteAll
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, gnome3
-, perl
-, gettext
-, gtk3
-, glib
-, libnotify
-, libgnomekbd
-, lcms2
-, libpulseaudio
-, alsaLib
-, libcanberra-gtk3
-, upower
-, colord
-, libgweather
-, polkit
-, gsettings-desktop-schemas
-, geoclue2
-, systemd
-, libgudev
-, libwacom
-, libxslt
-, libxml2
-, modemmanager
-, networkmanager
-, gnome-desktop
-, geocode-glib
-, docbook_xsl
-, wrapGAppsHook
-, python3
-, tzdata
-, nss
-, gcr
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-settings-daemon";
-  version = "3.36.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0jzf2nznpcrjqq7fjwk66kw8a6x87kgbdjidc2msaqmm379xncry";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkgconfig
-    perl
-    gettext
-    libxml2
-    libxslt
-    docbook_xsl
-    wrapGAppsHook
-    python3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    modemmanager
-    networkmanager
-    libnotify
-    libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
-    gnome-desktop
-    lcms2
-    libpulseaudio
-    alsaLib
-    libcanberra-gtk3
-    upower
-    colord
-    libgweather
-    nss
-    polkit
-    geocode-glib
-    geoclue2
-    systemd
-    libgudev
-    libwacom
-    gcr
-  ];
-
-  mesonFlags = [
-    "-Dudev_dir=${placeholder "out"}/lib/udev"
-  ];
-
-  # Default for release buildtype but passed manually because
-  # we're using plain
-  NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
-
-
-  postPatch = ''
-    for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
-      chmod +x $f
-      patchShebangs $f
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
deleted file mode 100644
index 2229302cab7..00000000000
--- a/pkgs/desktops/gnome-3/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-3/core/gnome-settings-daemon/global-backlight-helper.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch
deleted file mode 100644
index 8f3951af2da..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/global-backlight-helper.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
-index d7d10fd2..5619d6ad 100644
---- a/plugins/power/gsd-backlight.c
-+++ b/plugins/power/gsd-backlight.c
-@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
-                 proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
-                                          &error,
-                                          "pkexec",
--                                         LIBEXECDIR "/gsd-backlight-helper",
-+                                         "/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper",
-                                          g_udev_device_get_sysfs_path (backlight->udev_device),
-                                          data->value_str, NULL);
-         } else {
-diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-index f16300f8..79d6bd17 100644
---- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-+++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-@@ -25,7 +25,7 @@
-       <allow_inactive>no</allow_inactive>
-       <allow_active>yes</allow_active>
-     </defaults>
--    <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
-+    <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper</annotate>
-   </action>
-
- </policyconfig>
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
deleted file mode 100644
index ba1b0faedb2..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_68, glib
-, gnome3, gnome-menus, substituteAll }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extensions";
-  version = "3.36.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cg3dqvvxg8zrdqs2rci8sds2hxjahbhm87f0xpy8b3gq56lqrrb";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix_gmenu.patch;
-      gmenu_path = "${gnome-menus}/lib/girepository-1.0";
-    })
-  ];
-
-  doCheck = true;
-  # 60 is required for tests
-  # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.34.0/meson.build#L23
-  checkInputs = [ spidermonkey_68 ];
-
-  nativeBuildInputs = [ meson ninja pkgconfig gettext glib ];
-
-  mesonFlags = [ "-Dextension_set=all" ];
-
-  preFixup = ''
-    # The meson build doesn't compile the schemas.
-    # Fixup adapted from export-zips.sh in the source.
-
-    extensiondir=$out/share/gnome-shell/extensions
-    schemadir=${glib.makeSchemaPath "$out" "${pname}-${version}"}
-
-    glib-compile-schemas $schemadir
-
-    for f in $extensiondir/*; do
-      name=`basename ''${f%%@*}`
-      uuid=$name@gnome-shell-extensions.gcampax.github.com
-      schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
-
-      if [ -f $schema ]; then
-        mkdir $f/schemas
-        ln -s $schema $f/schemas;
-        glib-compile-schemas $f/schemas
-      fi
-    done
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Projects/GnomeShell/Extensions";
-    description = "Modify and extend GNOME Shell functionality and behavior";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch
deleted file mode 100644
index 555664e8ae2..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/fix_gmenu.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/extensions/apps-menu/extension.js
-+++ b/extensions/apps-menu/extension.js
-@@ -1,6 +1,8 @@
- /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
- /* exported init enable disable */
- 
-+imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
-+
- const {
-     Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St
- } = imports.gi;
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
deleted file mode 100644
index 8f2e78c639c..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ /dev/null
@@ -1,221 +0,0 @@
-{ fetchurl
-, fetchpatch
-, substituteAll
-, stdenv
-, meson
-, ninja
-, pkg-config
-, gnome3
-, json-glib
-, gettext
-, libsecret
-, python3
-, polkit
-, networkmanager
-, gtk-doc
-, docbook-xsl-nons
-, at-spi2-core
-, libstartup_notification
-, telepathy-glib
-, telepathy-logger
-, unzip
-, shared-mime-info
-, libgweather
-, librsvg
-, geoclue2
-, perl
-, docbook_xml_dtd_412
-, docbook_xml_dtd_42
-, docbook_xml_dtd_43
-, desktop-file-utils
-, libpulseaudio
-, libical
-, gobject-introspection
-, wrapGAppsHook
-, libxslt
-, gcr
-, accountsservice
-, gdk-pixbuf
-, gdm
-, upower
-, ibus
-, libnma
-, libgnomekbd
-, gnome-desktop
-, gsettings-desktop-schemas
-, gnome-keyring
-, glib
-, gjs
-, mutter
-, evolution-data-server
-, gtk3
-, sassc
-, systemd
-, gst_all_1
-, adwaita-icon-theme
-, gnome-bluetooth
-, gnome-clocks
-, gnome-settings-daemon
-, gnome-autoar
-, asciidoc-full
-, bash-completion
-}:
-
-# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
-let
-  pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
-in
-stdenv.mkDerivation rec {
-  pname = "gnome-shell";
-  version = "3.36.5";
-
-  outputs = [ "out" "devdoc" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4";
-  };
-
-  patches = [
-    # Hardcode paths to various dependencies so that they can be found at runtime.
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit libgnomekbd unzip;
-      gsettings = "${glib.bin}/bin/gsettings";
-    })
-
-    # Install bash-completions to correct prefix.
-    # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/9f1ad5d86ddbabaa840eb2860279d53f4e635453.patch";
-      sha256 = "18amnqw342vllcrjpfcq232z9xr28vgjsf2z8k73xx70nwah7hvz";
-    })
-
-    # 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
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/ffb8bd5fa7704ce70ce7d053e03549dd15dce5ae.patch";
-      revert = true;
-      sha256 = "14h7ahlxgly0n3sskzq9dhxzbyb04fn80pv74vz1526396676dzl";
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkg-config
-    gettext
-    docbook-xsl-nons
-    docbook_xml_dtd_412
-    docbook_xml_dtd_42
-    docbook_xml_dtd_43
-    gtk-doc
-    perl
-    wrapGAppsHook
-    sassc
-    desktop-file-utils
-    libxslt.bin
-    python3
-    asciidoc-full
-  ];
-
-  buildInputs = [
-    systemd
-    gsettings-desktop-schemas
-    gnome-keyring
-    glib
-    gcr
-    accountsservice
-    libsecret
-    polkit
-    gdk-pixbuf
-    librsvg
-    networkmanager
-    libstartup_notification
-    telepathy-glib
-    gjs
-    mutter
-    libpulseaudio
-    evolution-data-server
-    libical
-    gtk3
-    gdm
-    geoclue2
-    adwaita-icon-theme
-    gnome-bluetooth
-    gnome-clocks # schemas needed
-    at-spi2-core
-    upower
-    ibus
-    gnome-desktop
-    telepathy-logger
-    gnome-settings-daemon
-    gobject-introspection
-
-    # recording
-    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
-
-    # for gnome-extension tool
-    bash-completion
-    gnome-autoar
-    json-glib
-  ];
-
-  mesonFlags = [
-    "-Dgtk_doc=true"
-  ];
-
-  postPatch = ''
-    patchShebangs src/data-to-c.pl
-    chmod +x meson/postinstall.py
-    patchShebangs meson/postinstall.py
-
-    substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
-    substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
-  '';
-
-  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.Shell.Extensions org.gnome.Shell.Notifications; do
-      wrapGApp $out/share/gnome-shell/$svc
-    done
-  '';
-
-  passthru = {
-    mozillaPlugin = "/lib/mozilla/plugins";
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-shell";
-      attrPath = "gnome3.gnome-shell";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Core user interface for the GNOME 3 desktop";
-    homepage = "https://wiki.gnome.org/Projects/GnomeShell";
-    license = licenses.gpl2Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
deleted file mode 100644
index 7b93475619b..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/js/ui/extensionDownloader.js
-+++ b/js/ui/extensionDownloader.js
-@@ -86,7 +86,7 @@
-     stream.output_stream.write_bytes(contents, null);
-     stream.close(null);
-     let [success, pid] = GLib.spawn_async(null,
--                                          ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
-+                                          ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
-                                           null,
-                                           GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
-                                           null);
---- a/js/ui/status/keyboard.js
-+++ b/js/ui/status/keyboard.js
-@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button {
-         if (xkbVariant.length > 0)
-             description = `${description}\t${xkbVariant}`;
- 
--        Util.spawn(['gkbd-keyboard-display', '-l', description]);
-+        Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
-     }
- });
---- a/data/gnome-shell-disable-extensions.service
-+++ b/data/gnome-shell-disable-extensions.service
-@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer
- [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/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch b/pkgs/desktops/gnome-3/core/gnome-shell/shew-gir-path.patch
deleted file mode 100644
index 2d7bdf30315..00000000000
--- a/pkgs/desktops/gnome-3/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],
--  install_dir: pkglibdir,
-+  install_dir: get_option('prefix') / pkglibdir,
-   install: true,
- )
- 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch b/pkgs/desktops/gnome-3/core/gnome-shell/wrap-services.patch
deleted file mode 100644
index bc494caea9d..00000000000
--- a/pkgs/desktops/gnome-3/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 524166102..100b81a63
---- a/js/dbusServices/dbus-service.in
-+++ b/js/dbusServices/dbus-service.in
-@@ -1,3 +1,9 @@
-+#!@gjs@
-+
-+// 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@'
-+
- imports.package.start({
-     name: '@PACKAGE_NAME@',
-     prefix: '@prefix@',
-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@ @pkgdatadir@/@service@
-+Exec=@pkgdatadir@/@service@
-diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
-index c749f45dc..11bcb0c9e 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.path())
- 
- dbus_services = {
-   'org.gnome.Shell.Extensions': 'extensions',
-@@ -11,16 +12,17 @@ dbus_services = {
- 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.path())
-   serviceconf.set('pkgdatadir', pkgdatadir)
- 
-   configure_file(
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
deleted file mode 100644
index 9f51227f235..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
-, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobject-introspection, flatpak, fwupd
-, gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts
-, json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gtk-doc, desktop-file-utils }:
-
-let
-
-  withFwupd = stdenv.isx86_64 || stdenv.isi686;
-
-in
-
-stdenv.mkDerivation rec {
-  pname = "gnome-software";
-  version = "3.36.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0vkgpy2afb33rrk94zqlm2q728xhzjj8s24n9wh9ylw00z3nckad";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit isocodes;
-    })
-  ];
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xml_dtd_42 docbook_xml_dtd_43
-    valgrind-light docbook_xsl gtk-doc desktop-file-utils gobject-introspection
-  ];
-
-  buildInputs = [
-    gtk3 glib packagekit appstream-glib libsoup
-    gsettings-desktop-schemas gnome-desktop
-    gspell json-glib libsecret ostree
-    polkit flatpak libxmlb gnome-online-accounts
-  ] ++ stdenv.lib.optionals withFwupd [
-    fwupd
-  ];
-
-  mesonFlags = [
-    "-Dubuntu_reviews=false"
-    "-Dgudev=false"
-    # FIXME: package malcontent parental controls
-    "-Dmalcontent=false"
-  ] ++ stdenv.lib.optionals (!withFwupd) [
-    "-Dfwupd=false"
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-software";
-      attrPath = "gnome3.gnome-software";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Software store that lets you install and update applications and system extensions";
-    homepage = "https://wiki.gnome.org/Apps/Software";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch
deleted file mode 100644
index 6f443a8a43e..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-software/fix-paths.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/gs-language.c
-+++ b/src/gs-language.c
-@@ -95,7 +95,7 @@
- 	g_autoptr(GMarkupParseContext) context = NULL;
- 
- 	/* find filename */
--	filename = g_build_filename (DATADIR, "xml", "iso-codes", "iso_639.xml", NULL);
-+	filename = g_build_filename ("@isocodes@", "share", "xml", "iso-codes", "iso_639.xml", NULL);
- 	if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
- 		g_free (filename);
- 		filename = g_build_filename ("/usr", "share", "xml", "iso-codes", "iso_639.xml", NULL);
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
deleted file mode 100644
index 2dd4ae9e7f7..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, gettext, fetchurl, pkgconfig, gtkmm3, libxml2
-, bash, gtk3, glib, wrapGAppsHook, meson, ninja, python3
-, gsettings-desktop-schemas, itstool, gnome3, librsvg, gdk-pixbuf, libgtop, systemd }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-system-monitor";
-  version = "3.36.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-system-monitor/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "18dwwwmw4m2kzvfmxyaxmnm66d1plwvh6c6naznb0xac1ymlfsw6";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [
-    pkgconfig gettext itstool wrapGAppsHook meson ninja python3
-  ];
-  buildInputs = [
-    bash gtk3 glib libxml2 gtkmm3 libgtop gdk-pixbuf gnome3.adwaita-icon-theme librsvg
-    gsettings-desktop-schemas systemd
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py # patchShebangs requires executable file
-    patchShebangs meson_post_install.py
-    sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-system-monitor";
-      attrPath = "gnome3.gnome-system-monitor";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/SystemMonitor";
-    description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
deleted file mode 100644
index 821d5707c7c..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus
-, gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, glib, pcre2 }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-terminal";
-  version = "3.36.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0inzmkmxv8xw4px2zjfw7236d08yjcv7znxcjki6dh4pvjivdla1";
-  };
-
-  buildInputs = [
-    gtk3 gsettings-desktop-schemas vte libuuid dconf
-    # For extension
-    nautilus
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig gettext itstool which libxml2
-    vala desktop-file-utils wrapGAppsHook pcre2
-  ];
-
-  # Silly ./configure, it looks for dbus file from gnome-shell in the
-  # installation tree of the package it is configuring.
-  postPatch = ''
-    substituteInPlace configure --replace '$(eval echo $(eval echo $(eval echo ''${dbusinterfacedir})))/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
-    substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
-  '';
-
-  configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "gnome-terminal";
-      attrPath = "gnome3.gnome-terminal";
-    };
-  };
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "The GNOME Terminal Emulator";
-    homepage = "https://wiki.gnome.org/Apps/Terminal";
-    platforms = platforms.linux;
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix b/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
deleted file mode 100644
index fa2f4921fd9..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-themes-extra/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2
-, gdk-pixbuf, hicolor-icon-theme }:
-
-let
-  pname = "gnome-themes-extra";
-  version = "3.28";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw";
-  };
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-  buildInputs = [ gtk3 librsvg pango atk gtk2 gdk-pixbuf ];
-  propagatedBuildInputs = [ gnome3.adwaita-icon-theme hicolor-icon-theme ];
-
-  dontDropIconThemeCache = true;
-
-  postInstall = ''
-    gtk-update-icon-cache "$out"/share/icons/HighContrast
-  '';
-
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-tour/default.nix b/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
deleted file mode 100644
index 719e97647f7..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-tour/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv
-, rustPlatform
-, gettext
-, meson
-, ninja
-, fetchFromGitLab
-, pkg-config
-, gtk3
-, glib
-, gdk-pixbuf
-, desktop-file-utils
-, appstream-glib
-, wrapGAppsHook
-, python3
-, gnome3
-, config
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "gnome-tour";
-  version = "0.0.1";
-
-  # We don't use the uploaded tar.xz because it comes pre-vendored
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "gnome-tour";
-    rev = version;
-    sha256 = "0lbkspnlziq3z177071w3jpghmdwflzra1krdwchzmkfmrhy50ch";
-  };
-
-  cargoSha256 = "0k1wp9wswr57fv2d9bysxn97fchd4vz29n5r8gfyp0gcm8rclmij";
-
-  mesonFlags = [
-    "-Ddistro_name=NixOS"
-    "-Ddistro_icon_name=nix-snowflake"
-    "-Ddistro_version=20.09"
-  ];
-
-  nativeBuildInputs = [
-    appstream-glib
-    desktop-file-utils
-    gettext
-    meson
-    ninja
-    pkg-config
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gdk-pixbuf
-    glib
-    gtk3
-  ];
-
-  # Don't use buildRustPackage phases, only use it for rust deps setup
-  configurePhase = null;
-  buildPhase = null;
-  checkPhase = null;
-  installPhase = null;
-
-  postPatch = ''
-    chmod +x build-aux/meson_post_install.py
-    patchShebangs build-aux/meson_post_install.py
-  '';
-
-  # passthru = {
-  #   updateScript = gnome3.updateScript {
-  #     packageName = pname;
-  #   };
-  # };
-
-  meta = with stdenv.lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/gnome-tour";
-    description = "GNOME Greeter & Tour";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
deleted file mode 100644
index 90acee076a3..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ stdenv
-, gettext
-, meson
-, ninja
-, fetchurl
-, fetchpatch
-, apacheHttpd
-, nautilus
-, pkgconfig
-, gtk3
-, glib
-, libxml2
-, systemd
-, wrapGAppsHook
-, itstool
-, libnotify
-, mod_dnssd
-, gnome3
-, libcanberra-gtk3
-, python3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-user-share";
-  version = "3.34.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x";
-  };
-
-  patches = [
-    # fix gio-unix-2.0 lookup
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-user-share/commit/8772980d4732c15505b15dccff2ca3c97e96d49d.patch";
-      sha256 = "03clzhrx72pq1cbmg2y24hvw4i1xsvrg9ip113fi5bc3w4gcji7p";
-    })
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  preConfigure = ''
-    sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
-      -e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
-      -i data/dav_user_2.4.conf
-  '';
-
-  mesonFlags = [
-    "-Dhttpd=${apacheHttpd.out}/bin/httpd"
-    "-Dmodules_path=${apacheHttpd.dev}/modules"
-    "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
-    # In 3.34.0 it defaults to false but it is silently ignored and always installed.
-    # Let’s add it anyway in case they decide to make build respect the option in the future.
-    "-Dnautilus_extension=true"
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    meson
-    ninja
-    gettext
-    itstool
-    libxml2
-    wrapGAppsHook
-    python3
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    nautilus
-    libnotify
-    libcanberra-gtk3
-    systemd
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://help.gnome.org/users/gnome-user-share/3.8";
-    description = "Service that exports the contents of the Public folder in your home directory on the local network";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
deleted file mode 100644
index fe24ac8708a..00000000000
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{ stdenv
-, intltool
-, fetchFromGitLab
-, meson
-, ninja
-, pkgconfig
-, python3
-, gtk3
-, adwaita-icon-theme
-, glib
-, desktop-file-utils
-, gtk-doc
-, wrapGAppsHook
-, gnome3
-, itstool
-, libxml2
-, yelp-tools
-, docbook_xsl
-, docbook_xml_dtd_412
-, gsettings-desktop-schemas
-, callPackage
-, unzip
-, unicode-character-database
-, unihan-database
-, runCommand
-, symlinkJoin
-, gobject-introspection
-}:
-
-let
-  # TODO: make upstream patch allowing to use the uncompressed file,
-  # preferably from XDG_DATA_DIRS.
-  # https://gitlab.gnome.org/GNOME/gucharmap/issues/13
-  unihanZip = runCommand "unihan" {} ''
-    mkdir -p $out/share/unicode
-    ln -s ${unihan-database.src} $out/share/unicode/Unihan.zip
-  '';
-  ucd = symlinkJoin {
-    name = "ucd+unihan";
-    paths = [
-      unihanZip
-      unicode-character-database
-    ];
-  };
-in stdenv.mkDerivation rec {
-  pname = "gucharmap";
-  version = "13.0.2";
-
-  outputs = [ "out" "lib" "dev" "devdoc" ];
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = pname;
-    rev = version;
-    sha256 = "099za9mc6qdq9pwcbjp3d7hxjbaa43vk2w9qw4yiyswl1xq3jw62";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-    unzip
-    intltool
-    itstool
-    gtk-doc
-    docbook_xsl
-    docbook_xml_dtd_412
-    yelp-tools
-    libxml2
-    desktop-file-utils
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    gtk3
-    glib
-    gsettings-desktop-schemas
-    adwaita-icon-theme
-  ];
-
-  mesonFlags = [
-    "-Ducd_path=${ucd}/share/unicode"
-    "-Dvapi=false"
-  ];
-
-  doCheck = true;
-
-  postPatch = ''
-    patchShebangs data/meson_desktopfile.py gucharmap/gen-guch-unicode-tables.pl gucharmap/meson_compileschemas.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "GNOME Character Map, based on the Unicode Character Database";
-    homepage = "https://wiki.gnome.org/Apps/Gucharmap";
-    license = licenses.gpl3;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
deleted file mode 100644
index 0b9aacf0ddf..00000000000
--- a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, fetchurl, glib, dbus, libgcrypt, pkgconfig, intltool, gobject-introspection, gnome3 }:
-
-let
-  pname = "libgnome-keyring";
-  version = "3.12.0";
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = {
-    description = "Framework for managing passwords and other secrets";
-    homepage = "https://wiki.gnome.org/Projects/GnomeKeyring";
-    license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
-    inherit (glib.meta) platforms maintainers;
-
-    longDescription = ''
-      gnome-keyring is a program that keeps password and other secrets for
-      users. The library libgnome-keyring is used by applications to integrate
-      with the gnome-keyring system.
-    '';
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.34/0001-Fix-glitches-in-gala.patch b/pkgs/desktops/gnome-3/core/mutter/3.34/0001-Fix-glitches-in-gala.patch
deleted file mode 100644
index 7be00b33bba..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/3.34/0001-Fix-glitches-in-gala.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e10186284103d3ad8e425980b096eac813cae631 Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Sun, 5 Apr 2020 23:06:03 -0400
-Subject: [PATCH] Fix glitches in gala
-
-This fixes issues for users of mutter like in gala[0].
-
-Upstream report: https://gitlab.gnome.org/GNOME/mutter/issues/536
-[0]: https://github.com/elementary/gala/issues/605
----
- clutter/clutter/clutter-actor.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
-index ecf9a597d..07b8b7155 100644
---- a/clutter/clutter/clutter-actor.c
-+++ b/clutter/clutter/clutter-actor.c
-@@ -17831,7 +17831,7 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
-   if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
-     {
-       priv->paint_volume_valid = TRUE;
--      priv->needs_paint_volume_update = FALSE;
-+      //priv->needs_paint_volume_update = FALSE;
-       return &priv->paint_volume;
-     }
-   else
--- 
-2.25.1
-
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix b/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix
deleted file mode 100644
index 87696987850..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/3.34/default.nix
+++ /dev/null
@@ -1,166 +0,0 @@
-{ fetchurl
-, fetchpatch
-, substituteAll
-, stdenv
-, pkgconfig
-, gnome3
-, pantheon
-, gettext
-, gobject-introspection
-, upower
-, cairo
-, pango
-, cogl
-, json-glib
-, libstartup_notification
-, zenity
-, libcanberra-gtk3
-, ninja
-, xkeyboard_config
-, libxkbfile
-, libxkbcommon
-, libXtst
-, libinput
-, gsettings-desktop-schemas
-, glib
-, gtk3
-, gnome-desktop
-, geocode-glib
-, pipewire_0_2
-, libgudev
-, libwacom
-, xwayland
-, meson
-, gnome-settings-daemon
-, xorgserver
-, python3
-, wrapGAppsHook
-, sysprof
-, desktop-file-utils
-, libcap_ng
-, egl-wayland
-}:
-
-stdenv.mkDerivation rec {
-  pname = "mutter";
-  version = "3.34.5";
-
-  outputs = [ "out" "dev" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1i3r51ghfld1rf1rczzi3jhybz3mhywqcj2jyiqhfcyp1svlklfi";
-  };
-
-  mesonFlags = [
-    "-Degl_device=true"
-    "-Dinstalled_tests=false" # TODO: enable these
-    "-Dwayland_eglstream=true"
-    "-Dxwayland-path=${xwayland}/bin/Xwayland"
-  ];
-
-  propagatedBuildInputs = [
-    # required for pkgconfig to detect mutter-clutter
-    json-glib
-    libXtst
-    libcap_ng
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-    xorgserver # for cvt command
-  ];
-
-  buildInputs = [
-    cairo
-    cogl
-    egl-wayland
-    geocode-glib
-    glib
-    gnome-desktop
-    gnome-settings-daemon
-    gobject-introspection
-    gsettings-desktop-schemas
-    gtk3
-    libcanberra-gtk3
-    libgudev
-    libinput
-    libstartup_notification
-    libwacom
-    libxkbcommon
-    libxkbfile
-    pango
-    pipewire_0_2 # TODO: backport pipewire 0.3 support
-    sysprof
-    upower
-    xkeyboard_config
-    xwayland
-    zenity
-  ];
-
-  patches = [
-    # Fix build with libglvnd provided headers
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch";
-      sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd";
-    })
-
-    # gnome-3-34 2020-04-24
-    # also fixes https://mail.gnome.org/archives/distributor-list/2020-April/msg00001.html
-    (fetchpatch {
-      url = "https://github.com/GNOME/mutter/compare/3.34.5..3bafd234248fdcd84bc62fef5e31c29fbb613909.patch";
-      sha256 = "1a7krbdfmvx204p6av44rbp4ckp6ddg1mms8wkixxh2p871zq1pi";
-    })
-
-    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
-    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
-    ./drop-inheritable.patch
-
-    # See commit message for details
-    ./0001-Fix-glitches-in-gala.patch
-
-    # https://gitlab.gnome.org/GNOME/mutter/merge_requests/1094
-    # https://gitlab.gnome.org/GNOME/mutter/merge_requests/957
-    ./fix-sysprof.patch
-
-    # profiler: track changes in GLib and Sysprof
-    # https://gitlab.gnome.org/GNOME/mutter/merge_requests/908
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/605171291993460f31d470a8143d6438d0c6169c.patch";
-      sha256 = "10fxzj0lmic2sp57w26w3r0bv1szngjjs50p3ka22wr9pxqmzl7l";
-    })
-
-    # Fixes https://github.com/elementary/wingpanel/issues/305
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/-/commit/9d390ee49fb1f6300336e82ae94cc8061c6bae12.patch";
-      sha256 = "12hmi07rvspwhp8h1y1vmcvmvbh8fihcrb07ja5g0qnh28ip5qfi";
-    })
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit zenity;
-    })
-  ];
-
-  postPatch = ''
-    patchShebangs src/backends/native/gen-default-modes.py
-  '';
-
-  postInstall = ''
-    ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A window manager for GNOME";
-    homepage = "https://gitlab.gnome.org/GNOME/mutter";
-    license = licenses.gpl2;
-    maintainers = pantheon.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.34/drop-inheritable.patch b/pkgs/desktops/gnome-3/core/mutter/3.34/drop-inheritable.patch
deleted file mode 100644
index 0f60be3a121..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/3.34/drop-inheritable.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From e9c772e265b2293af031c79f4bbc99b5847dfe3c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= <torhedinbronner@gmail.com>
-Date: Sat, 19 Oct 2019 13:26:05 +0200
-Subject: [PATCH] drop inheritable
-
-Adapted from https://gitlab.gnome.org/GNOME/mutter/commit/c53c47ae123b03cc66044d2b846342123ecb3a01
-
-We only want to drop inheritable though, to prevent the ambient set leaking further than gnome-shell.
-
----
- config.h.meson    |  3 +++
- meson.build       |  5 +++++
- meson_options.txt |  6 ++++++
- src/core/main.c   | 11 +++++++++++
- src/meson.build   |  1 +
- 5 files changed, 26 insertions(+)
-
-diff --git a/config.h.meson b/config.h.meson
-index 0bab71848..202fb7ed1 100644
---- a/config.h.meson
-+++ b/config.h.meson
-@@ -58,6 +58,9 @@
- /* Xwayland applications allowed to issue keyboard grabs */
- #mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
-
-+/* Defined if libcap-ng is available */
-+#mesondefine HAVE_LIBCAPNG
-+
- /* XKB base prefix */
- #mesondefine XKB_BASE
-
-diff --git a/meson.build b/meson.build
-index 3322bd3b1..01c8020fa 100644
---- a/meson.build
-+++ b/meson.build
-@@ -35,6 +35,7 @@ libstartup_notification_req = '>= 0.7'
- libcanberra_req = '>= 0.26'
- libwacom_req = '>= 0.13'
- atk_req = '>= 2.5.3'
-+libcapng_req = '>= 0.7.9'
-
- # optional version requirements
- udev_req = '>= 228'
-@@ -125,6 +126,7 @@ xau_dep = dependency('xau')
- ice_dep = dependency('ice')
- atk_dep = dependency('atk', version: atk_req)
- libcanberra_dep = dependency('libcanberra', version: libcanberra_req)
-+libcapng_dep = dependency('libcap-ng', required: get_option('libcapng'))
-
- # For now always require X11 support
- have_x11 = true
-@@ -256,6 +258,7 @@ have_core_tests = false
- have_cogl_tests = false
- have_clutter_tests = false
- have_installed_tests = false
-+have_libcapng = libcapng_dep.found()
-
- if have_tests
-   have_core_tests = get_option('core_tests')
-@@ -361,6 +364,7 @@ cdata.set('HAVE_LIBWACOM', have_libwacom)
- cdata.set('HAVE_SM', have_sm)
- cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
- cdata.set('HAVE_INTROSPECTION', have_introspection)
-+cdata.set('HAVE_LIBCAPNG', have_libcapng)
- cdata.set('HAVE_PROFILER', have_profiler)
-
- xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
-@@ -443,6 +447,7 @@ output = [
-   '        Startup notification..... ' + have_startup_notification.to_string(),
-   '        Introspection............ ' + have_introspection.to_string(),
-   '        Profiler................. ' + have_profiler.to_string(),
-+  '        libcap-ng................ ' + have_libcapng.to_string(),
-   '',
-   '    Tests:',
-   '',
-diff --git a/meson_options.txt b/meson_options.txt
-index 73aa7adde..8bfaacd9a 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -152,3 +152,9 @@ option('xwayland_grab_default_access_rules',
-   value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
-   description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
- )
-+
-+option('libcapng',
-+  type: 'feature',
-+  value: 'auto',
-+  description: 'Enable libcap-ng support'
-+)
-diff --git a/src/core/main.c b/src/core/main.c
-index 7f4f666d2..b27968f13 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -66,6 +66,10 @@
- #include <girepository.h>
- #endif
-
-+#ifdef HAVE_LIBCAPNG
-+#include <cap-ng.h>
-+#endif
-+
- #if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
- #include <systemd/sd-login.h>
- #endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
-@@ -673,6 +677,12 @@ meta_run (void)
-   if (!meta_display_open ())
-     meta_exit (META_EXIT_ERROR);
-
-+#ifdef HAVE_LIBCAPNG
-+  capng_clear(CAPNG_SELECT_BOTH);
-+  capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SYS_NICE);
-+  capng_apply(CAPNG_SELECT_BOTH);
-+#endif
-+
-   g_main_loop_run (meta_main_loop);
-
-   meta_finalize ();
-diff --git a/src/meson.build b/src/meson.build
-index 90d80734f..a9fffa2c2 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -18,6 +18,7 @@ mutter_pkg_deps = [
-   glib_dep,
-   gsettings_desktop_schemas_dep,
-   gtk3_dep,
-+  libcapng_dep,
-   pango_dep,
- ]
-
---
-2.23.0
-
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.34/fix-paths.patch b/pkgs/desktops/gnome-3/core/mutter/3.34/fix-paths.patch
deleted file mode 100644
index 1986c65e8f4..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/3.34/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/core/util.c b/src/core/util.c
-index 57b73747d..f424cc81c 100644
---- a/src/core/util.c
-+++ b/src/core/util.c
-@@ -636,7 +636,7 @@ meta_show_dialog (const char *type,
-
-   args = g_ptr_array_new ();
-
--  append_argument (args, "zenity");
-+  append_argument (args, "@zenity@/bin/zenity");
-   append_argument (args, type);
-
-   if (display)
diff --git a/pkgs/desktops/gnome-3/core/mutter/3.34/fix-sysprof.patch b/pkgs/desktops/gnome-3/core/mutter/3.34/fix-sysprof.patch
deleted file mode 100644
index 481a0ab89cb..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/3.34/fix-sysprof.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 71acfd5258b4d12323fc51dda48e83830e62e696 Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Mon, 16 Sep 2019 11:18:27 -0400
-Subject: [PATCH] build: use get_pkgconfig_variable for sysprof dbusdir
-
----
- src/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/meson.build b/src/meson.build
-index 182f7f5f5..43060865b 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -710,7 +710,7 @@ if have_profiler
-     'backends/meta-profiler.h',
-   ]
-
--  dbus_interfaces_dir = join_paths(datadir, 'dbus-1', 'interfaces')
-+  dbus_interfaces_dir = join_paths(sysprof_dep.get_pkgconfig_variable('prefix'), 'share', 'dbus-1', 'interfaces')
-   sysprof3_dbus_file = join_paths(dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
-
-   dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler',
---
-2.22.1
-
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
deleted file mode 100644
index 79cbbb9f5a8..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ /dev/null
@@ -1,154 +0,0 @@
-{ fetchurl
-, fetchpatch
-, substituteAll
-, runCommand
-, stdenv
-, pkgconfig
-, gnome3
-, gettext
-, gobject-introspection
-, cairo
-, pango
-, json-glib
-, libstartup_notification
-, zenity
-, libcanberra
-, ninja
-, xkeyboard_config
-, libxkbfile
-, libxkbcommon
-, libXtst
-, libinput
-, gsettings-desktop-schemas
-, glib
-, gtk3
-, gnome-desktop
-, pipewire
-, libgudev
-, libwacom
-, xwayland
-, meson
-, gnome-settings-daemon
-, xorgserver
-, python3
-, wrapGAppsHook
-, sysprof
-, desktop-file-utils
-, libcap_ng
-, egl-wayland
-, graphene
-, wayland-protocols
-}:
-
-let self = stdenv.mkDerivation rec {
-  pname = "mutter";
-  version = "3.36.5";
-
-  outputs = [ "out" "dev" "man" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0";
-  };
-
-  patches = [
-    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
-    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
-    ./drop-inheritable.patch
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit zenity;
-    })
-  ];
-
-  mesonFlags = [
-    "-Degl_device=true"
-    "-Dinstalled_tests=false" # TODO: enable these
-    "-Dwayland_eglstream=true"
-    "-Dprofiler=true"
-    "-Dxwayland_path=${xwayland}/bin/Xwayland"
-    # This should be auto detected, but it looks like it manages a false
-    # positive.
-    "-Dxwayland_initfd=disabled"
-  ];
-
-  propagatedBuildInputs = [
-    # required for pkgconfig to detect mutter-clutter
-    json-glib
-    libXtst
-    libcap_ng
-    graphene
-  ];
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-    xorgserver # for cvt command
-  ];
-
-  buildInputs = [
-    cairo
-    egl-wayland
-    glib
-    gnome-desktop
-    gnome-settings-daemon
-    gobject-introspection
-    gsettings-desktop-schemas
-    gtk3
-    libcanberra
-    libgudev
-    libinput
-    libstartup_notification
-    libwacom
-    libxkbcommon
-    libxkbfile
-    pango
-    pipewire
-    sysprof
-    xkeyboard_config
-    xwayland
-    wayland-protocols
-  ];
-
-  postPatch = ''
-    patchShebangs src/backends/native/gen-default-modes.py
-  '';
-
-  postInstall = ''
-    ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
-  '';
-
-  passthru = {
-    libdir = "${self}/lib/mutter-6";
-
-    tests = {
-      libdirExists = runCommand "mutter-libdir-exists" {} ''
-        if [[ ! -d ${self.libdir} ]]; then
-          echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
-          exit 1
-        fi
-        touch $out
-      '';
-    };
-
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A window manager for GNOME";
-    homepage = "https://gitlab.gnome.org/GNOME/mutter";
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-};
-in self
diff --git a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
deleted file mode 100644
index 1600db1e705..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From e9c772e265b2293af031c79f4bbc99b5847dfe3c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= <torhedinbronner@gmail.com>
-Date: Sat, 19 Oct 2019 13:26:05 +0200
-Subject: [PATCH] drop inheritable
-
-Adapted from https://gitlab.gnome.org/GNOME/mutter/commit/c53c47ae123b03cc66044d2b846342123ecb3a01
-
-We only want to drop inheritable though, to prevent the ambient set leaking further than gnome-shell.
-
----
- config.h.meson    |  3 +++
- meson.build       |  5 +++++
- meson_options.txt |  6 ++++++
- src/core/main.c   | 11 +++++++++++
- src/meson.build   |  1 +
- 5 files changed, 26 insertions(+)
-
-diff --git a/config.h.meson b/config.h.meson
-index 0bab71848..202fb7ed1 100644
---- a/config.h.meson
-+++ b/config.h.meson
-@@ -58,6 +58,9 @@
- /* Xwayland applications allowed to issue keyboard grabs */
- #mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
- 
-+/* Defined if libcap-ng is available */
-+#mesondefine HAVE_LIBCAPNG
-+
- /* XKB base prefix */
- #mesondefine XKB_BASE
- 
-diff --git a/meson.build b/meson.build
-index 3322bd3b1..01c8020fa 100644
---- a/meson.build
-+++ b/meson.build
-@@ -35,6 +35,7 @@ libstartup_notification_req = '>= 0.7'
- libcanberra_req = '>= 0.26'
- libwacom_req = '>= 0.13'
- atk_req = '>= 2.5.3'
-+libcapng_req = '>= 0.7.9'
- 
- # optional version requirements
- udev_req = '>= 228'
-@@ -131,6 +131,7 @@ ice_dep = dependency('ice')
- atk_dep = dependency('atk', version: atk_req)
- libcanberra_dep = dependency('libcanberra', version: libcanberra_req)
- dbus_dep = dependency('dbus-1')
-+libcapng_dep = dependency('libcap-ng', required: get_option('libcapng'))
-
- # For now always require X11 support
- have_x11 = true
-@@ -256,6 +258,7 @@ have_core_tests = false
- have_cogl_tests = false
- have_clutter_tests = false
- have_installed_tests = false
-+have_libcapng = libcapng_dep.found()
- 
- if have_tests
-   have_core_tests = get_option('core_tests')
-@@ -361,6 +364,7 @@ cdata.set('HAVE_LIBWACOM', have_libwacom)
- cdata.set('HAVE_SM', have_sm)
- cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
- cdata.set('HAVE_INTROSPECTION', have_introspection)
-+cdata.set('HAVE_LIBCAPNG', have_libcapng)
- cdata.set('HAVE_PROFILER', have_profiler)
- 
- xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
-@@ -465,6 +465,7 @@ output = [
-   '        Introspection............ ' + have_introspection.to_string(),
-   '        Profiler................. ' + have_profiler.to_string(),
-   '        Xwayland initfd.......... ' + have_xwayland_initfd.to_string(),
-+  '        libcap-ng................ ' + have_libcapng.to_string(),
-   '',
-   '    Tests:',
-   '',
-diff --git a/meson_options.txt b/meson_options.txt
-index 73aa7adde..8bfaacd9a 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -152,3 +152,9 @@ option('xwayland_grab_default_access_rules',
-   value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
-   description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
- )
-+
-+option('libcapng',
-+  type: 'feature',
-+  value: 'auto',
-+  description: 'Enable libcap-ng support'
-+)
-diff --git a/src/core/main.c b/src/core/main.c
-index 7f4f666d2..b27968f13 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -66,6 +66,10 @@
- #include <girepository.h>
- #endif
- 
-+#ifdef HAVE_LIBCAPNG
-+#include <cap-ng.h>
-+#endif
-+
- #if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
- #include <systemd/sd-login.h>
- #endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
-@@ -673,6 +677,12 @@ meta_run (void)
-   if (!meta_display_open ())
-     meta_exit (META_EXIT_ERROR);
- 
-+#ifdef HAVE_LIBCAPNG
-+  capng_clear(CAPNG_SELECT_BOTH);
-+  capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SYS_NICE);
-+  capng_apply(CAPNG_SELECT_BOTH);
-+#endif
-+
-   g_main_loop_run (meta_main_loop);
- 
-   meta_finalize ();
-diff --git a/src/meson.build b/src/meson.build
-index 90d80734f..a9fffa2c2 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -18,6 +18,7 @@ mutter_pkg_deps = [
-   glib_dep,
-   gsettings_desktop_schemas_dep,
-   gtk3_dep,
-+  libcapng_dep,
-   pango_dep,
- ]
- 
--- 
-2.23.0
-
diff --git a/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch b/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch
deleted file mode 100644
index 6ac0a431f61..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/core/util.c b/src/core/util.c
-index 57b73747d..f424cc81c 100644
---- a/src/core/util.c
-+++ b/src/core/util.c
-@@ -636,7 +636,7 @@ meta_show_dialog (const char *type,
- 
-   args = g_ptr_array_new ();
- 
--  append_argument (args, "zenity");
-+  append_argument (args, "@zenity@/bin/zenity");
-   append_argument (args, type);
- 
-   if (display)
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
deleted file mode 100644
index 6145178de1e..00000000000
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ /dev/null
@@ -1,107 +0,0 @@
-{ stdenv
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, gettext
-, libxml2
-, desktop-file-utils
-, python3
-, wrapGAppsHook
-, gtk3
-, gnome3
-, gnome-autoar
-, glib-networking
-, shared-mime-info
-, libnotify
-, libexif
-, libseccomp
-, exempi
-, librsvg
-, tracker
-, tracker-miners
-, gexiv2
-, libselinux
-, gdk-pixbuf
-, substituteAll
-, gnome-desktop
-, gst_all_1
-, gsettings-desktop-schemas
-, gobject-introspection
-}:
-
-stdenv.mkDerivation rec {
-  pname = "nautilus";
-  version = "3.36.3";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1y0fsd7j48v4qkc051cg41mz7jycgw4vd4g37lw682p7n5xgrjmn";
-  };
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    gettext
-    gobject-introspection
-    libxml2
-    meson
-    ninja
-    pkgconfig
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    exempi
-    gexiv2
-    glib-networking
-    gnome-desktop
-    gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas
-    gst_all_1.gst-plugins-base
-    gtk3
-    libexif
-    libnotify
-    libseccomp
-    libselinux
-    shared-mime-info
-    tracker
-    tracker-miners
-  ];
-
-  propagatedBuildInputs = [
-    gnome-autoar
-  ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      # Thumbnailers
-      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
-      --prefix XDG_DATA_DIRS : "${librsvg}/share"
-      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-    )
-  '';
-
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-  '';
-
-  patches = [
-    ./extension_dir.patch
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "The file manager for GNOME";
-    homepage = "https://wiki.gnome.org/Apps/Files";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch
deleted file mode 100644
index e1313999675..00000000000
--- a/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/nautilus-module.c b/src/nautilus-module.c
-index 6273a76..4adcc8a 100644
---- a/src/nautilus-module.c
-+++ b/src/nautilus-module.c
-@@ -242,11 +242,17 @@ void
- nautilus_module_setup (void)
- {
-     static gboolean initialized = FALSE;
-+    const gchar* extensiondir = NULL;
- 
-     if (!initialized)
-     {
-         initialized = TRUE;
- 
--        load_module_dir (NAUTILUS_EXTENSIONDIR);
-+        extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR");
-+        if (extensiondir == NULL) {
-+            extensiondir = NAUTILUS_EXTENSIONDIR;
-+        }
-+
-+        load_module_dir (extensiondir);
- 
-         eel_debug_call_at_shutdown (free_module_objects);
-     }
diff --git a/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch b/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch
deleted file mode 100644
index 4259f93eb24..00000000000
--- a/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 209d4187..58580980 100644
---- a/meson.build
-+++ b/meson.build
-@@ -20,7 +20,11 @@ if not get_option('uninstalled')
-     rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel')
-     rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'),
-     'rygel')
--    rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
-+    if get_option('sysconfdir_install') != ''
-+        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir_install'))
-+    else
-+        rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
-+    endif
-     rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins')
-     rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines')
-     rygel_presetdir = join_paths(rygel_datadir, 'rygel', 'presets')
-@@ -55,7 +59,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
- conf.set_quoted('PLUGIN_DIR', rygel_plugindir)
- conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir)
- conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir)
--conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir)
-+conf.set_quoted('SYS_CONFIG_DIR', get_option('sysconfdir'))
- conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
- conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract'))
- conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications'))
-diff --git a/meson_options.txt b/meson_options.txt
-index f09cac58..ff11c548 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -1,6 +1,7 @@
- option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only')
- option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation')
- option('systemd-user-units-dir', type : 'string', value : 'auto', description : 'Where to install the systemd user unit (use special values "auto" or "none", or pass a path')
-+option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
- option('plugins', type : 'array', choices : ['external', 'gst-launch', 'lms', 'media-export', 'mpris', 'playbin', 'ruih', 'tracker'])
- option('engines', type : 'array', choices : ['simple', 'gstreamer'])
- option('examples', type : 'boolean', value : 'true')
diff --git a/pkgs/desktops/gnome-3/core/rygel/default.nix b/pkgs/desktops/gnome-3/core/rygel/default.nix
deleted file mode 100644
index 529091e5fd6..00000000000
--- a/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{ stdenv
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, vala
-, gettext
-, libxml2
-, gobject-introspection
-, wrapGAppsHook
-, python3
-, glib
-, gssdp
-, gupnp
-, gupnp-av
-, gupnp-dlna
-, gst_all_1
-, libgee
-, libsoup
-, gtk3
-, libmediaart
-, sqlite
-, systemd
-, tracker
-, shared-mime-info
-, gnome3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "rygel";
-  version = "0.38.4";
-
-  # TODO: split out lib
-  outputs = [ "out" "dev" ];
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rm1m1z8rcvyj9873wqcz5i3qdg8j6gv6k1p01xifk0y9phg7rzc";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    pkgconfig
-    vala
-    gettext
-    libxml2
-    gobject-introspection
-    wrapGAppsHook
-    python3
-  ];
-
-  buildInputs = [
-    glib
-    gssdp
-    gupnp
-    gupnp-av
-    gupnp-dlna
-    libgee
-    libsoup
-    gtk3
-    libmediaart
-    sqlite
-    systemd
-    tracker
-    shared-mime-info
-  ] ++ (with gst_all_1; [
-    gstreamer
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-bad
-    gst-plugins-ugly
-  ]);
-
-  mesonFlags = [
-    "-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user"
-    "-Dapi-docs=false"
-    "--sysconfdir=/etc"
-    "-Dsysconfdir_install=${placeholder "out"}/etc"
-  ];
-
-  doCheck = true;
-
-  patches = [
-    ./add-option-for-installation-sysconfdir.patch
-  ];
-
-  postPatch = ''
-    patchShebangs data/xml/process-xml.py
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
-    homepage = "https://wiki.gnome.org/Projects/Rygel";
-    license = licenses.lgpl21Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
deleted file mode 100644
index eebd307a306..00000000000
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ stdenv
-, fetchurl
-, meson
-, ninja
-, pkgconfig
-, gettext
-, itstool
-, python3
-, wrapGAppsHook
-, cairo
-, gdk-pixbuf
-, colord
-, glib
-, gtk3
-, gusb
-, packagekit
-, libwebp
-, libxml2
-, sane-backends
-, vala
-, gnome3
-, gobject-introspection
-}:
-
-stdenv.mkDerivation rec {
-  pname = "simple-scan";
-  version = "3.36.4";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    gettext
-    itstool
-    pkgconfig
-    python3
-    wrapGAppsHook
-    libxml2
-    gobject-introspection # For setup hook
-  ];
-
-  buildInputs = [
-    cairo
-    gdk-pixbuf
-    colord
-    glib
-    gnome3.adwaita-icon-theme
-    gusb
-    gtk3
-    libwebp
-    packagekit
-    sane-backends
-    vala
-  ];
-
-  postPatch = ''
-    patchShebangs data/meson_compile_gschema.py
-  '';
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "simple-scan";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Simple scanning utility";
-    longDescription = ''
-      A really easy way to scan both documents and photos. You can crop out the
-      bad parts of a photo and rotate it if it is the wrong way round. You can
-      print your scans, export them to pdf, or save them in a range of image
-      formats. Basically a frontend for SANE - which is the same backend as
-      XSANE uses. This means that all existing scanners will work and the
-      interface is well tested.
-    '';
-    homepage = "https://gitlab.gnome.org/GNOME/simple-scan";
-    license = licenses.gpl3Plus;
-    maintainers = teams.gnome.members;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
deleted file mode 100644
index 4bdc409d816..00000000000
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv
-, fetchurl
-, pkgconfig
-, meson
-, gettext
-, gobject-introspection
-, glib
-, clutter-gtk
-, clutter-gst
-, gnome3
-, gtksourceview4
-, gjs
-, webkitgtk
-, libmusicbrainz5
-, icu
-, wrapGAppsHook
-, gst_all_1
-, gdk-pixbuf
-, librsvg
-, gtk3
-, harfbuzz
-, ninja
-, epoxy
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sushi";
-  version = "3.34.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/sushi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1zcr8wi5bgvvpb5ha1v96aiaz4vqqrsn6cvvalwzah6am85k78m8";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    meson
-    ninja
-    gettext
-    gobject-introspection
-    wrapGAppsHook
-  ];
-  buildInputs = [
-    glib
-    gtk3
-    gnome3.evince
-    icu
-    harfbuzz
-    clutter-gtk
-    clutter-gst
-    gjs
-    gtksourceview4
-    gdk-pixbuf
-    librsvg
-    libmusicbrainz5
-    webkitgtk
-    epoxy
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-  ];
-
-  # See https://github.com/NixOS/nixpkgs/issues/31168
-  postInstall = ''
-    for file in $out/libexec/org.gnome.NautilusPreviewer
-    do
-      sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
-        -i $file
-    done
-  '';
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "sushi";
-      attrPath = "gnome3.sushi";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://en.wikipedia.org/wiki/Sushi_(software)";
-    description = "A quick previewer for Nautilus";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
deleted file mode 100644
index 50ab50e58b2..00000000000
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, gettext, gst_all_1
-, clutter-gtk, clutter-gst, python3Packages, shared-mime-info
-, pkgconfig, gtk3, glib, gobject-introspection, totem-pl-parser
-, wrapGAppsHook, itstool, libxml2, vala, gnome3, grilo, grilo-plugins
-, libpeas, adwaita-icon-theme, gnome-desktop, gsettings-desktop-schemas
-, gdk-pixbuf, tracker, nautilus, xvfb_run }:
-
-stdenv.mkDerivation rec {
-  pname = "totem";
-  version = "3.34.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/totem/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [ meson ninja vala pkgconfig gettext python3Packages.python itstool gobject-introspection wrapGAppsHook ];
-  buildInputs = [
-    gtk3 glib grilo clutter-gtk clutter-gst totem-pl-parser grilo-plugins
-    gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-ugly gst_all_1.gst-libav libpeas shared-mime-info
-    gdk-pixbuf libxml2 adwaita-icon-theme gnome-desktop
-    gsettings-desktop-schemas tracker nautilus
-    python3Packages.pygobject3 python3Packages.dbus-python # for plug-ins
-  ];
-
-  postPatch = ''
-    chmod +x meson_compile_python.py meson_post_install.py # patchShebangs requires executable file
-    patchShebangs .
-  '';
-
-  checkInputs = [ xvfb_run ];
-
-  checkPhase = ''
-    xvfb-run -s '-screen 0 800x600x24' \
-      ninja test
-  '';
-
-  wrapPrefixVariables = [ "PYTHONPATH" ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "totem";
-      attrPath = "gnome3.totem";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Videos";
-    description = "Movie player for the GNOME desktop based on GStreamer";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
deleted file mode 100644
index 09019e6758c..00000000000
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv
-, gettext
-, fetchurl
-, pkgconfig
-, itstool
-, libxml2
-, libxslt
-, gnome3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "yelp-xsl";
-  version = "3.36.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hsfj3q3a3kca0cf9i02xlq2qd4vy12qsjb89hh4r6mp6c11rrag";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    gettext
-    itstool
-    libxml2
-    libxslt
-  ];
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Yelp";
-    description = "Yelp's universal stylesheets for Mallard and DocBook";
-    maintainers = teams.gnome.members;
-    license = [licenses.gpl2 licenses.lgpl2];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
deleted file mode 100644
index 1235447c032..00000000000
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv, gettext, fetchurl, webkitgtk, pkgconfig, gtk3, glib
-, gnome3, sqlite
-, itstool, libxml2, libxslt, gst_all_1
-, wrapGAppsHook }:
-
-stdenv.mkDerivation rec {
-  pname = "yelp";
-  version = "3.36.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "097djjyl096zmicjpxlb858yz6rd5cj813xc8azbxlhsscikwjzx";
-  };
-
-  nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
-  buildInputs = [
-    gtk3 glib webkitgtk sqlite
-    libxml2 libxslt gnome3.yelp-xsl
-    gnome3.adwaita-icon-theme
-    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "yelp";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://wiki.gnome.org/Apps/Yelp";
-    description = "The help viewer in Gnome";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
deleted file mode 100644
index 5750fa0d001..00000000000
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, fetchurl
-, pkgconfig
-, libxml2
-, gnome3
-, gtk3
-, yelp-tools
-, gettext
-, libX11
-, itstool
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "zenity";
-  version = "3.32.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/zenity/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    gettext
-    yelp-tools
-    itstool
-    libxml2
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    gtk3
-    libX11
-  ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "zenity";
-      attrPath = "gnome3.zenity";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Tool to display dialogs from the commandline and shell scripts";
-    homepage = "https://wiki.gnome.org/Projects/Zenity";
-    platforms = platforms.linux;
-    maintainers = teams.gnome.members;
-  };
-}