about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix10
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/apps/accerciser/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gedit/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/glade/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix58
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-notes/default.nix55
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch24
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch100
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix58
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch25
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch10
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix98
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/devhelp/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/appindicator/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/arc-menu/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/extensions/caffeine/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/extensions/gsconnect/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/impatience/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/system-monitor/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-chess/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mines/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-robots/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/hitori/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/lightsoff/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/tali/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/geary/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-applets/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix65
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix96
-rw-r--r--pkgs/desktops/gnome-3/misc/gpaste/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix11
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix6
-rw-r--r--pkgs/desktops/pantheon/services/cerbere/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix6
94 files changed, 605 insertions, 573 deletions
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index 049c856419d67..93e81bf6a6fc0 100644
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_40,
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_40, fetchpatch,
   gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib,
   libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1,
   libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux, gnutls, pcre2,
@@ -15,6 +15,14 @@ stdenv.mkDerivation rec {
     sha256 = "1929saj828b438d07caw3cjhqq60v6gni7mi3fqrg9wdjz81xwv7";
   };
 
+  patches = [
+    # Fix build with VTE 0.60
+    (fetchpatch {
+      url = "https://github.com/linuxdeepin/deepin-terminal/commit/542d1035b609698ee81aa7971d20ca8e5930743d.patch";
+      sha256 = "1pihiy70yc25fm5fx7i7v9gmi65v4mhldvi7xwv8rgr2z6hbfj41";
+    })
+  ];
+
   nativeBuildInputs = [
     pkgconfig
     cmake
diff --git a/pkgs/desktops/deepin/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-gir-generator/default.nix
index 5a10efa1932b6..c499d4a1fb4b4 100644
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ b/pkgs/desktops/deepin/go-gir-generator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, go, gobject-introspection,
+{ stdenv, fetchpatch, fetchFromGitHub, pkgconfig, go, gobject-introspection,
   libgudev, deepin }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "1ydzll8zlk897iqcihvv6p046p0rzr4qqz2drmz2nx95njp8n03a";
   };
 
+  patches = [
+    # Fix compatibility with glib 2.63+
+    # https://github.com/linuxdeepin/go-gir-generator/pull/11
+    (fetchpatch {
+      url = "https://github.com/linuxdeepin/go-gir-generator/commit/7dea15a1a491f28d2ac8c411068ccefeba01aae3.patch";
+      sha256 = "7bn/mtruCcK+AIXMzhN2e3o7CuzuJ3mtTz0HOTEYTaA=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkgconfig
     go
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 41b40244f57d4..0ceafeea439e7 100644
--- a/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -17,13 +17,13 @@
 
  python3.pkgs.buildPythonApplication rec {
   name = "accerciser-${version}";
-  version = "3.34.4";
+  version = "3.36.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0f1dixq5hc55dl3y0fr85bkrc2zk08n4dacqcjifij1dys4ks3z1";
+    sha256 = "1iwi7mnayw1f90s439flh0zkgmj4qx10dzgj38nd5f3wvqmhabk3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 60c7fc3872bf3..4b4262a8f40e5 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -43,11 +43,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "136vpaq94ymyn8pf3a3z1w45xlk1xbvwjdnzasq0d7iwbac0jwks";
+    sha256 = "0ylqvg52s6vc9xmyizcv3im66ra8xixzrfgn7hsmp12fg47na5vj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 57c7a93a53370..72365a4266e65 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "file-roller";
-  version = "3.32.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05s046br4fcli1d3wngh4jmwi0aikpfkl1px1cahskj4rfzjqfqv";
+    sha256 = "0y04y58sbggsgqzmxkb6q7300bdzf30w40yp57n87x9nypl4s55r";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/pkgs/desktops/gnome-3/apps/gedit/default.nix b/pkgs/desktops/gnome-3/apps/gedit/default.nix
index 6ea04910d230c..206edb41224dc 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -1,20 +1,21 @@
 { stdenv, meson, fetchurl, python3
 , pkgconfig, gtk3, glib, adwaita-icon-theme
 , libpeas, gtksourceview4, gsettings-desktop-schemas
-, wrapGAppsHook, ninja, libsoup, libxml2
-, gnome3, gspell, perl, itstool, desktop-file-utils }:
+, wrapGAppsHook, ninja, libsoup, tepl
+, gnome3, gspell, perl, itstool, desktop-file-utils
+}:
 
 stdenv.mkDerivation rec {
   pname = "gedit";
-  version = "3.34.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gedit/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb";
+    sha256 = "0dclapyghbkg15cjcf6nljcyy4980ipjw1m3mbqpmnz9lh9dv0y9";
   };
 
   nativeBuildInputs = [
-    pkgconfig wrapGAppsHook meson ninja libxml2
+    pkgconfig wrapGAppsHook meson ninja
     python3 perl itstool desktop-file-utils
   ];
 
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
     adwaita-icon-theme libsoup
     libpeas gtksourceview4
     gsettings-desktop-schemas gspell
+    tepl
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/apps/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
index 367bcdef47234..7449e22d69d6f 100644
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ b/pkgs/desktops/gnome-3/apps/glade/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    pkgconfig intltool itstool wrapGAppsHook docbook_xsl libxslt gobject-introspection
+    pkgconfig intltool itstool wrapGAppsHook docbook_xsl libxslt libxml2 gobject-introspection
   ];
   buildInputs = [
     gtk3 glib libxml2 python3 python3.pkgs.pygobject3
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index 4b76679f9eeec..dabbf633e2e8d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -34,7 +34,7 @@
 , mtools
 , cdrkit
 , libcdio
-, libusb
+, libusb1
 , libarchive
 , acl
 , libgudev
@@ -51,11 +51,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1bqrl36nngbd8jpj31ipnywg2k0rg2j3bcgnyvn8r86ysh1gnm0f";
+    sha256 = "0saxz2mwp7y348izzgp7mmp6vnv5zi57x5rbsyag8s7pd7yp211n";
   };
 
   doCheck = true;
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
     librsvg
     libsecret
     libsoup
-    libusb
+    libusb1
     libvirt
     libvirt-glib
     libxml2
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index b00045cf9e9e4..db32efc62ea46 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, wrapGAppsHook, libdazzle, libgweather, geoclue2, geocode-glib, python3
 , gettext, libxml2, gnome3, gtk3, evolution-data-server, libsoup
-, glib, gnome-online-accounts, gsettings-desktop-schemas }:
+, glib, gnome-online-accounts, gsettings-desktop-schemas, libhandy }:
 
 let
   pname = "gnome-calendar";
-  version = "3.34.2";
+  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 = "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw";
+    sha256 = "1cxy4qf83s8w1ys94rcc4ksf7ywi0hkkpfs0szkkip2v8g3j6kq2";
   };
 
   passthru = {
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig gettext libxml2 wrapGAppsHook python3 ];
   buildInputs = [
     gtk3 evolution-data-server libsoup glib gnome-online-accounts libdazzle libgweather geoclue2 geocode-glib
-    gsettings-desktop-schemas gnome3.adwaita-icon-theme
+    gsettings-desktop-schemas gnome3.adwaita-icon-theme libhandy
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index a99e775b26b5d..e725c50983d66 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -1,16 +1,37 @@
-{ stdenv, fetchurl
-, meson, ninja, gettext, pkgconfig, wrapGAppsHook, itstool, desktop-file-utils
-, vala, gobject-introspection, libxml2, gtk3, glib, gsound, sound-theme-freedesktop
-, gsettings-desktop-schemas, adwaita-icon-theme, gnome-desktop, geocode-glib
-, gnome3, gdk-pixbuf, geoclue2, libgweather }:
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, gettext
+, pkgconfig
+, wrapGAppsHook
+, itstool
+, desktop-file-utils
+, vala
+, gobject-introspection
+, libxml2
+, gtk3
+, glib
+, gsound
+, sound-theme-freedesktop
+, gsettings-desktop-schemas
+, adwaita-icon-theme
+, gnome-desktop
+, geocode-glib
+, gnome3
+, gdk-pixbuf
+, geoclue2
+, libgweather
+, libhandy
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-clocks";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-clocks/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1";
+    sha256 = "1ij9xwp3c96gsnnlhkqkiw3y45a4lpw7a09d4yysx7bvgw68p5sc";
   };
 
   passthru = {
@@ -23,12 +44,29 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   nativeBuildInputs = [
-    vala meson ninja pkgconfig gettext itstool wrapGAppsHook desktop-file-utils libxml2
+    vala
+    meson
+    ninja
+    pkgconfig
+    gettext
+    itstool
+    wrapGAppsHook
+    desktop-file-utils
+    libxml2
     gobject-introspection # for finding vapi files
   ];
   buildInputs = [
-    gtk3 glib gsettings-desktop-schemas gdk-pixbuf adwaita-icon-theme
-    gnome-desktop geocode-glib geoclue2 libgweather gsound
+    gtk3
+    glib
+    gsettings-desktop-schemas
+    gdk-pixbuf
+    adwaita-icon-theme
+    gnome-desktop
+    geocode-glib
+    geoclue2
+    libgweather
+    gsound
+    libhandy
   ];
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index 784b0142f468a..32b7fced41744 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-maps";
-  version = "3.34.3";
+  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 = "1p58il8dqj96nlv41gf926y8nw6ya15vmv9yr52025sizxaqzydw";
+    sha256 = "0kyd4f15bj409mhs97i94ggzwqdj3r3yjdmvvkn80pym0vw1xik5";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index 26c46b1f7b9ff..2b800ee7b1458 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -16,6 +16,7 @@
 , grilo-plugins
 , pkgconfig
 , gtk3
+, pango
 , glib
 , desktop-file-utils
 , appstream-glib
@@ -29,13 +30,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.34.4";
+  version = "3.36.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1l2jaf5jfdkqqpjxwahsjslb3sa2vlhjgpi1ib51is04ln729xb6";
+    sha256 = "01vjcaabd5m8vmicax7vaybsaml3wik4r85g4q8avdkzs8h4gz9h";
   };
 
   nativeBuildInputs = [
@@ -53,6 +54,7 @@ python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [
     gtk3
+    pango
     glib
     libmediaart
     gnome-online-accounts
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 7137ec7180e3d..7812ce52cbf01 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -1,18 +1,37 @@
-{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig
-, wrapGAppsHook, itstool, desktop-file-utils, python3
-, glib, gtk3, evolution-data-server, gnome-online-accounts
-, libuuid, webkitgtk, zeitgeist
-, gnome3, libxml2, gsettings-desktop-schemas, tracker }:
+{ stdenv
+, meson
+, ninja
+, gettext
+, fetchurl
+, pkgconfig
+, wrapGAppsHook
+, itstool
+, desktop-file-utils
+, python3
+, glib
+, gtk3
+, evolution-data-server
+, gnome-online-accounts
+, libuuid
+, libhandy
+, webkitgtk
+, zeitgeist
+, gnome3
+, libxml2
+, gsettings-desktop-schemas
+, tracker
+}:
 
 let
-  version = "3.34.2";
-in stdenv.mkDerivation {
+  version = "3.36.0";
+in
+stdenv.mkDerivation {
   pname = "gnome-notes";
   inherit version;
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
-    sha256 = "0kmhivgamnv2kk5kywrwm4af4s7663rjwh2wdri8iy1n2gmc9qpv";
+    sha256 = "1pz53hdd888si7vfy6d9h8cwarsdm4wwn7ni7f3az9638h3ilmfv";
   };
 
   doCheck = true;
@@ -23,12 +42,26 @@ in stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [
-    meson ninja pkgconfig gettext itstool libxml2 desktop-file-utils python3 wrapGAppsHook
+    meson
+    ninja
+    pkgconfig
+    gettext
+    itstool
+    libxml2
+    desktop-file-utils
+    python3
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    glib gtk3 libuuid webkitgtk tracker
-    gnome-online-accounts zeitgeist
+    glib
+    gtk3
+    libuuid
+    libhandy
+    webkitgtk
+    tracker
+    gnome-online-accounts
+    zeitgeist
     gsettings-desktop-schemas
     evolution-data-server
     gnome3.adwaita-icon-theme
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index 02b476c2eea19..afeda1ba31224 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -1,19 +1,26 @@
 { stdenv, itstool, fetchurl, gdk-pixbuf, adwaita-icon-theme
 , telepathy-glib, gjs, meson, ninja, gettext, telepathy-idle, libxml2, desktop-file-utils
-, pkgconfig, gtk3, glib, libsecret, libsoup, gobject-introspection, appstream-glib
+, pkgconfig, gtk3, glib, libsecret, libsoup, webkitgtk, gobject-introspection, appstream-glib
 , gnome3, wrapGAppsHook, telepathy-logger, gspell, gsettings-desktop-schemas }:
 
 let
   pname = "polari";
-  version = "3.34.1";
+  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 = "0wcfkib673fpys7hcpi5cqc0zgqzqmqvpzjzx4wwmim8lb121x5w";
+    sha256 = "0wi7bpscm4rghlwljilsgrls5dy9p0b27k246a1vrdadjghc69l4";
   };
 
+  patches = [
+    # Upstream runs the thumbnailer by passing it to gjs.
+    # If we wrap it in a shell script, gjs can no longer run it.
+    # Let’s change the code to run the script directly by making it executable and having gjs in shebang.
+    ./make-thumbnailer-wrappable.patch
+  ];
+
   propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
 
   nativeBuildInputs = [
@@ -23,9 +30,13 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3 glib adwaita-icon-theme gsettings-desktop-schemas
-    telepathy-glib telepathy-logger gjs gspell gdk-pixbuf libsecret libsoup
+    telepathy-glib telepathy-logger gjs gspell gdk-pixbuf libsecret libsoup webkitgtk
   ];
 
+  postFixup = ''
+    wrapGApp "$out/share/polari/thumbnailer.js"
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch b/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch
new file mode 100644
index 0000000000000..0fb09eb154af1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/apps/polari/make-thumbnailer-wrappable.patch
@@ -0,0 +1,24 @@
+diff --git a/src/thumbnailer.js b/src/thumbnailer.js
+old mode 100644
+new mode 100755
+index e2ad0a5..7ebf08a
+--- a/src/thumbnailer.js
++++ b/src/thumbnailer.js
+@@ -1,3 +1,4 @@
++#!/usr/bin/env gjs
+ imports.gi.versions.Gdk = '3.0';
+ imports.gi.versions.Gtk = '3.0';
+ 
+diff --git a/src/urlPreview.js b/src/urlPreview.js
+index f17e0be..ccffc32 100644
+--- a/src/urlPreview.js
++++ b/src/urlPreview.js
+@@ -44,7 +44,7 @@ class Thumbnailer {
+     _generateThumbnail(data) {
+         let { filename, uri } = data;
+         this._subProc = Gio.Subprocess.new(
+-            ['gjs', `${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
++            [`${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
+             Gio.SubprocessFlags.NONE);
+         this._subProc.wait_async(null, (o, res) => {
+             try {
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index 315968fde651b..245a1b287a2b8 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -22,15 +22,16 @@
 , p11-kit
 , openssh
 , gsettings-desktop-schemas
+, libhandy
 }:
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.34.1";
+  version = "3.36";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19c2zylwgycb5q9hal8rmflc2sywc5c2grpsfsq3rf37i9lfwynw";
+    sha256 = "1nqn4a6dr4l1fpzj3mv4swhpnvhjcqlwsyhwm59sdzqgdfx4hbwr";
   };
 
   doCheck = true;
@@ -60,6 +61,7 @@ stdenv.mkDerivation rec {
     openssh
     openldap
     libpwquality
+    libhandy
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
index 4900717898fd8..1fe5b6fb89712 100644
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "adwaita-icon-theme";
-  version = "3.34.3";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7";
+    sha256 = "066m3vd6k6xf3ap1ahrbw5hnx2322wf0qsnywcxjsj6snq9225qs";
   };
 
   # For convenience, we can specify adwaita-icon-theme only in packages
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 19d2255ab5f94..45c3185bc2979 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "dconf-editor";
-  version = "3.34.4";
+  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 = "129a2klywvnrj49rz6p5camwsamajldqpsfkl1rgpm6nw0q2lnyy";
+    sha256 = "14q678bwgmhzmi7565xhhw51y8b0pv3cqh0f411qwzwif1bd1vkj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 80ef1f4659f1a..8e23c6ff16583 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "eog";
-  version = "3.34.2";
+  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 = "1lx96nn8q61ajk2m5454s9b5v5wyn7jbz2sf3k1irv8waiq0aavg";
+    sha256 = "0gnfpjp3ldvcij557dga4skj4ykb2idkyif7n1d758x42z2hh0s0";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index be917b64452c4..22793c6e7dc46 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -3,6 +3,7 @@
 , ninja
 , gettext
 , fetchurl
+, fetchpatch
 , pkgconfig
 , gtk3
 , glib
@@ -30,17 +31,27 @@
 , json-glib
 , libdazzle
 , libhandy
+, buildPackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0";
+    sha256 = "1xjn6jk4dx2kl2llalydcyvibnpwjahp9z3210pflyy4k68pfw6l";
   };
 
+  patches = [
+    # Fix downloading files
+    # https://gitlab.gnome.org/GNOME/epiphany/issues/1127
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/epiphany/commit/8682a084bab7e758a9b8efe1deaf0cb8d55fcf44.patch";
+      sha256 = "bep+Q8Wpu84KA13a5T3JCz8nyeC13HT/QkMKvWT6vLk=";
+    })
+  ];
+
   # Tests need an X display
   mesonFlags = [
     "-Dunit_tests=disabled"
@@ -56,6 +67,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     python3
     wrapGAppsHook
+    buildPackages.glib
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index bab84eeb78cea..60bef88341613 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.34.2";
+  version = "3.36.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w";
+    sha256 = "1a7v534sqbg7rlrvg9x1rffdf6p9n37blp3wix6anyfl6i99n7c5";
   };
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index ff4e499204c39..ca122eaffd063 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.34.4";
+  version = "3.36.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1wz8mizblmvficxap6z9w62ymjwa8x99spnaljcwjl1wc55lnp4q";
+    sha256 = "1v4qjnggpwvafyqnkl1avsi3mpfxpcaz7kwxcf2iz7pvb1k0xmyl";
   };
 
   patches = [
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
index c499bac4552c8..4e345c3cb3ca8 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
@@ -423,10 +423,10 @@ diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-
 index f89cd4a5c..06cca9b5f 100644
 --- a/src/libedataserverui/e-reminders-widget.c
 +++ b/src/libedataserverui/e-reminders-widget.c
-@@ -1642,7 +1642,21 @@ static void
+@@ -1650,7 +1650,21 @@ static void
  e_reminders_widget_init (ERemindersWidget *reminders)
  {
- 	reminders->priv = G_TYPE_INSTANCE_GET_PRIVATE (reminders, E_TYPE_REMINDERS_WIDGET, ERemindersWidgetPrivate);
+ 	reminders->priv = e_reminders_widget_get_instance_private (reminders);
 -	reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
 +	{
 +		GSettingsSchemaSource *schema_source;
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
index 4b91b3219bede..518b86adf7f95 100644
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-backgrounds";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2";
+    sha256 = "02xvfwfi3133mjljl731z2hj9hfmjas3a1jl4fxmy24xrzj83jxq";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index cabe7c9ca74b7..c3de61d66166a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calculator";
-  version = "3.34.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd";
+    sha256 = "1cqd4b25qp1i0p04m669jssg1l5sdapc1mniv9jssvw5r7wk1s52";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index d2375b5341bfe..648e9d232b52d 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -1,18 +1,18 @@
 { 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, telepathy-glib
-, vala, meson, ninja, libhandy, gsettings-desktop-schemas }:
+, wrapGAppsHook, folks, libxml2, gnome3
+, vala, meson, ninja, libhandy, gsettings-desktop-schemas
+# , telepathy-glib
+}:
 
-let
-  version = "3.34.1";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  inherit version;
+  version = "3.36";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1jqw5yrypvjxzgg70vjbryylwx06amg6sg85mqi14a97xbccg0qa";
+    sha256 = "0yvgsfmqm8dxbhay12m20xp6qi9v31wwyv1gz4fx7j4kklhd5jzf";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
@@ -23,16 +23,15 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3 glib evolution-data-server gsettings-desktop-schemas
-    folks gnome-desktop telepathy-glib libhandy
+    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 = [
-    "-Dtelepathy=true"
-  ];
-
-  patches = [
+    # Upstream does not seem to maintain this properly: https://gitlab.gnome.org/GNOME/gnome-contacts/issues/103
+    "-Dtelepathy=false"
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 4e66a16bf7c55..e198476b3f16f 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -60,20 +60,19 @@
 , tzdata
 , udisks2
 , upower
-, vino
+, epoxy
 , gnome-user-share
 , gnome-remote-desktop
-, shadow
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0bi7lsmr5hcf0v17brsa8j33p6i0wnh620bzwycmxryfp6s6vshp";
+    sha256 = "0gdadbkynldxqffdlw760039ci1vv9wsi5i0mdq4q9dblmb79q1b";
   };
 
   nativeBuildInputs = [
@@ -133,14 +132,13 @@ stdenv.mkDerivation rec {
     tracker
     udisks2
     upower
-    vino
+    epoxy
   ];
 
   patches = [
     (substituteAll {
       src = ./paths.patch;
       gcm = gnome-color-manager;
-      usermod = "${shadow}/bin/usermod";
       gnome_desktop = gnome-desktop;
       inherit glibc libgnomekbd tzdata;
       inherit cups networkmanagerapplet;
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch b/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
index 63ca038d8027f..361972f2635af 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/paths.patch
@@ -54,14 +54,14 @@ index 96b25140c..1ad704d4a 100644
  
  typedef struct _TzDB TzDB;
  typedef struct _TzLocation TzLocation;
-diff --git a/panels/info/cc-info-overview-panel.c b/panels/info/cc-info-overview-panel.c
-index 7fce8691e..b839f8b69 100644
---- a/panels/info/cc-info-overview-panel.c
-+++ b/panels/info/cc-info-overview-panel.c
-@@ -187,7 +187,7 @@ load_gnome_version (char **version,
+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,
@@ -71,44 +71,69 @@ diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/n
 index 9390a3308..d30b4a68e 100644
 --- a/panels/network/connection-editor/net-connection-editor.c
 +++ b/panels/network/connection-editor/net-connection-editor.c
-@@ -247,9 +247,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *editor, const gchar *typ
-         GError *error = NULL;
- 
-         if (editor->is_new_connection) {
+@@ -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 (editor->connection));
+                                            nm_connection_get_uuid (self->connection));
          }
  
-diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
-index dd99a7485..4baa88a4e 100644
---- a/panels/network/net-device-wifi.c
-+++ b/panels/network/net-device-wifi.c
-@@ -1445,7 +1445,7 @@ device_wifi_edit (NetObject *object)
-                 return;
-         }
-         uuid = nm_connection_get_uuid (NM_CONNECTION (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)) {
+         if (!g_spawn_command_line_async (cmdline, &error))
                  g_warning ("Failed to launch nm-connection-editor: %s", error->message);
-diff --git a/panels/network/net-device.c b/panels/network/net-device.c
-index d73b537b9..e2ee54294 100644
---- a/panels/network/net-device.c
-+++ b/panels/network/net-device.c
-@@ -197,7 +197,7 @@ net_device_edit (NetObject *object)
- 
-         connection = net_device_get_find_connection (device);
+@@ -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)) {
+         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
@@ -123,10 +148,10 @@ index f53ba217e..d24bcaeb9 100644
  
    /* Use SNMP to get printer's informations */
 diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
-index e0604b8c3..fc323c1b2 100644
+index 35859526d..21486c917 100644
 --- a/panels/region/cc-region-panel.c
 +++ b/panels/region/cc-region-panel.c
-@@ -763,10 +763,10 @@ row_layout_cb (CcRegionPanel *self,
+@@ -755,10 +755,10 @@ row_layout_cb (CcRegionPanel *self,
          layout_variant = cc_input_source_get_layout_variant (source);
  
          if (layout_variant && layout_variant[0])
@@ -140,7 +165,7 @@ index e0604b8c3..fc323c1b2 100644
  
          g_spawn_command_line_async (commandline, NULL);
 diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
-index 19934f186..9f41a9620 100644
+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)
@@ -152,19 +177,6 @@ index 19934f186..9f41a9620 100644
          argv[1] = NULL;
  
          envp = g_get_environ ();
-diff --git a/panels/user-accounts/user-utils.c b/panels/user-accounts/user-utils.c
-index 83d4cd091..e8784c722 100644
---- a/panels/user-accounts/user-utils.c
-+++ b/panels/user-accounts/user-utils.c
-@@ -486,7 +486,7 @@ is_valid_username_async (const gchar *username,
-          * future, so it would be nice to have some official way for this
-          * instead of relying on the current "--login" implementation.
-          */
--        argv[0] = "/usr/sbin/usermod";
-+        argv[0] = "@usermod@";
-         argv[1] = "--login";
-         argv[2] = data->username;
-         argv[3] = "--";
 diff --git a/tests/datetime/test-endianess.c b/tests/datetime/test-endianess.c
 index 9cb92007a..84d2f0fa3 100644
 --- a/tests/datetime/test-endianess.c
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 1717bfc7fde62..148b550db19da 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, fetchurl, fetchpatch, substituteAll, pkgconfig, libxslt, ninja, libX11, gnome3, gtk3, glib
+{ 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.34.4";
+  version = "3.36.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1g0cvsx0gk65kfa91knkqg7l2isrnlpvqwjbzpr3a5f2girp4gn5";
+    sha256 = "05awmswzd4qa0vg23np0s7z6qks73j3sfj71y8azpvyxricw612b";
   };
 
   nativeBuildInputs = [
     pkgconfig meson ninja gettext libxslt libxml2 gobject-introspection
-    gtk-doc docbook_xsl
+    gtk-doc docbook_xsl glib
   ];
   buildInputs = [
     libX11 bubblewrap xkeyboard_config isocodes wayland
@@ -30,14 +30,6 @@ stdenv.mkDerivation rec {
       bubblewrap_bin = "${bubblewrap}/bin/bwrap";
       inherit (builtins) storeDir;
     })
-
-    # honor $XKB_CONFIG_ROOT
-    # addresses #76590: services.xserver.extraLayouts aren't honored by GNOME3
-    # NOTE: should be merged upstream in 3.36.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-desktop/commit/450446b5353e8231edded4d5b5db90a67a9fa9b7.diff";
-      sha256 = "07y989x7mbgn3rsm2qfdi8qkkc8i60k28hw87l744nlkydn78kq5";
-    })
   ];
 
   mesonFlags = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index 15be3e3178ce6..2fbcef97a4585 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0p7pifmihg1vpsvym4qabdjqdp96yx9b4cbc6cnmf5i055js7i8y";
+    sha256 = "00xi9m8vklwska1k3sdcfyba3mhwx7clrh522dgksn7v0ja9l1zl";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
index 47d06ddac3106..521845a8a8ac5 100644
--- a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "3.34.3";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1dc87mcvr7vdhfx4q0c44q37lf7ls2qvnc34dm66802qssrcxy9k";
+    sha256 = "08di7n26qhjfr0p1dvya2xfqwx37k8xbya97a8ccz3j0fzw0my4a";
   };
 
   nativeBuildInputs = [
@@ -85,10 +85,9 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dregion-page=true"
     "-Dcheese=disabled"
-    "-Dsoftware-sources=disabled"
     "-Dibus=disabled"
+    "-Dparental_controls=disabled"
     "-Dvendor-conf-file=${./vendor.conf}"
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index fa960087f9bd5..447a6bf654b8d 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-keyring";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9";
+    sha256 = "11sgffrrpss5cmv3b717pqlbhgq17l1xd33fsvqgsw8simxbar52";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
index fd507acc009d8..fb78aa41f78fd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-remote-desktop/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, meson, ninja, pkgconfig, python3, wrapGAppsHook
-, glib, pipewire, systemd, libvncserver, libsecret, libnotify, gdk-pixbuf, gnome3 }:
+, glib, pipewire_0_2, systemd, libvncserver, libsecret, libnotify, gdk-pixbuf, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig python3 wrapGAppsHook ];
 
   buildInputs = [
-    glib pipewire systemd libvncserver libsecret libnotify
+    glib pipewire_0_2 systemd libvncserver libsecret libnotify
     gdk-pixbuf # For libnotify
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index 34ff879322471..03a790967c3a5 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-screenshot";
-  version = "3.34.0";
+  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 = "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8";
+    sha256 = "0rhj6fkpxfm26jv3vsn7yb2ybkc2k86ggy23nxa945q74y4msj9k";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 3df78b88090fe..03a56db3ed94a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-session";
-  version = "3.34.2";
+  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 = "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb";
+    sha256 = "0ymvf1bap35348rpjqp63qwnwnnawdwi4snch95zc4n832w3hjym";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index c388c4f7211b4..c4b1ab867c7d5 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -13,7 +13,6 @@
 , libgnomekbd
 , lcms2
 , libpulseaudio
-, mousetweaks
 , alsaLib
 , libcanberra-gtk3
 , upower
@@ -41,19 +40,18 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-settings-daemon";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vfpgbdxkhh9xwvb3ja174jk3gpzj4n3jzcy9ygbjlvy45zfdflz";
+    sha256 = "0jddz8f2j4ps7csgq9b694h9hjxsyhlimik6rb2f8nbcxhrg0bzs";
   };
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit tzdata mousetweaks;
+      inherit tzdata;
     })
-    ./global-backlight-helper.patch
   ];
 
   nativeBuildInputs = [
@@ -103,11 +101,6 @@ stdenv.mkDerivation rec {
   # we're using plain
   NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
 
-  # So the polkit policy can reference /run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper
-  postFixup = ''
-    mkdir -p $out/bin/gnome-settings-daemon
-    ln -s $out/libexec/gsd-backlight-helper $out/bin/gnome-settings-daemon/gsd-backlight-helper
-  '';
 
   postPatch = ''
     for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index 44c9e3eff44f6..ef7b0fee26b94 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_60, glib
+{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_68, glib
 , gnome3, gnome-menus, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1";
+    sha256 = "1rmi6ccqfdisvmmzaiqr2r031r0f3h8qxgw5qwq62x859nbrzcmm";
   };
 
   passthru = {
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
   # 60 is required for tests
   # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.34.0/meson.build#L23
-  checkInputs = [ spidermonkey_60 ];
+  checkInputs = [ spidermonkey_68 ];
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext glib ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 26e96b5a33851..d099e58283943 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,8 +1,8 @@
-{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret
+{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, gettext, libsecret
 , python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
 , libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
 , libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr
+, 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
@@ -15,11 +15,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0rm32h7lv4vyadi9x32sb6fwxslarwk70yzmvzjxbq872cazp779";
+    sha256 = "1phkkkwrrigchz58xs324vf6snd1fm7mxa2iaqwwj526vh5c1s2q";
   };
 
   LANG = "en_US.UTF-8";
@@ -31,45 +31,79 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     systemd
     gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
-    libcroco libsecret libsoup polkit gdk-pixbuf librsvg
-    clutter networkmanager libstartup_notification telepathy-glib
+    libsecret libsoup polkit gdk-pixbuf librsvg
+    networkmanager libstartup_notification telepathy-glib
     libXtst gjs mutter libpulseaudio evolution-data-server
-    libical gtk3 gstreamer gdm libcanberra-gtk3 geoclue2
+    libical gtk3 gdm libcanberra-gtk3 geoclue2
     adwaita-icon-theme gnome-bluetooth
     gnome-clocks # schemas needed
     at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
-    gst_all_1.gst-plugins-good # recording
     gobject-introspection
     gnome-autoar
 
+    # 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
   ];
 
   patches = [
+    # Fix dependencies.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1114
     (fetchpatch {
       name = "0001-build-Add-missing-dependency-to-run-js-test.patch";
       url = https://bug787864.bugzilla-attachments.gnome.org/attachment.cgi?id=360016;
       sha256 = "1dmahd8ysbzh33rxglba0fbq127aw9h14cl2a2bw9913vjxhxijm";
     })
+
+    # 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";
     })
+
+    # Fix ibus launching regression.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1080
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/94f6976ddd6337593203fdcdd2e3644774408dfa.patch";
+      sha256 = "PGmFQhqqd3gK+3kp0dlmlYd2G5ZTIQpfE++Q03Ghkx0=";
+    })
+
+    # Fix typing regression with ibus.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1084
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/b18469427e5c19402111de5fe9888bceec0eaacd.patch";
+      sha256 = "1M+3kjt7K61BFgk1Zf9XfK1ziilQGa60PD8xtVjnQec=";
+    })
+
+    # Fix theming breakage after Shell restart on X11.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/issues/2329
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/72c4f148ef88b4bffb2106b99434da5c05c0bb64.patch";
+      sha256 = "RBA+JHz4ZvmbJZMnGNieD6D5LONRgFU4iOFIMQQ2kHQ=";
+    })
+
+    # Fix Telepathy chat integration.
+    # https://gitlab.gnome.org/GNOME/gnome-shell/issues/2449
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/766288eec1bd3bd50dfc4ddf410c2b507187e603.patch";
+      sha256 = "Cp6xLohCM0gmMxtyYjSukS2oV60Khmxf4iQd9EDAlIc=";
+    })
   ];
 
   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"
   '';
 
-  postInstall = ''
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
   preFixup = ''
     gappsWrapperArgs+=(
       # Until glib’s xdgmime is patched
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 051f0e4b432fb..26debc798f7c3 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -11,11 +11,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1zhi6zkphq0wfm9z2d1rp1ym8x52c7as4r8h2nrcd34mmv02xnm7";
+    sha256 = "0b5b1k0a531c2jyf4g59dw7lblga8xrba38mzfdl57dnknbvbafs";
   };
 
   patches = [
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dubuntu_reviews=false"
     "-Dgudev=false"
+    # FIXME: package malcontent parental controls
+    "-Dmalcontent=false"
   ] ++ stdenv.lib.optionals (!withFwupd) [
     "-Dfwupd=false"
   ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
index a9f8367a54843..8b26a2a2d6d38 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
@@ -1,21 +1,20 @@
-{ stdenv, gettext, fetchurl, pkgconfig, gtkmm3, libxml2, polkit
+{ 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.32.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-system-monitor/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8";
+    sha256 = "1gipjaw708lv1zj1c9g09x4h4226kawam2kzdhdd6zjkzfghp9s0";
   };
 
   doCheck = true;
 
   nativeBuildInputs = [
     pkgconfig gettext itstool wrapGAppsHook meson ninja python3
-    polkit # for ITS file
   ];
   buildInputs = [
     bash gtk3 glib libxml2 gtkmm3 libgtop gdk-pixbuf gnome3.adwaita-icon-theme librsvg
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 31f125e9720e8..4a1672576031c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus
-, gtk3, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala
+, gtk3, gsettings-desktop-schemas, vte, gettext, which, libuuid, vala
 , desktop-file-utils, itstool, wrapGAppsHook, glib, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.34.2";
+  version = "3.36.0.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv";
+    sha256 = "1qj0zggig6iwahjvj9wcqpf9xj6aw6ar5pgnmrhbhc90cb7c2ccb";
   };
 
   buildInputs = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    pkgconfig intltool itstool which libxml2
+    pkgconfig gettext itstool which libxml2
     vala desktop-file-utils wrapGAppsHook pcre2
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch b/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
deleted file mode 100644
index 2df70ff9646a1..0000000000000
--- a/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.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
index 8ed00edf6c547..3c8a139d3e154 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -38,24 +38,30 @@
 , desktop-file-utils
 , libcap_ng
 , egl-wayland
+, graphene
+, wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.34.4";
+  version = "3.36.0";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "18hbw98p4h3d4qz57415smwmfg72s9a0nk8mb04ds1gn2lsm2d01";
+    sha256 = "18lvj158w6gwc6xpvn699v8ykh1r5szry7sqascl6f1i8g628v2x";
   };
 
   mesonFlags = [
     "-Degl_device=true"
     "-Dinstalled_tests=false" # TODO: enable these
     "-Dwayland_eglstream=true"
-    "-Dxwayland-path=${xwayland}/bin/Xwayland"
+    "-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 = [
@@ -63,6 +69,7 @@ stdenv.mkDerivation rec {
     json-glib
     libXtst
     libcap_ng
+    graphene
   ];
 
   nativeBuildInputs = [
@@ -102,26 +109,25 @@ stdenv.mkDerivation rec {
     xwayland
     zenity
     zenity
+    wayland-protocols
   ];
 
   patches = [
-    # Fix build with libglvnd provided headers
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/commit/a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90.patch";
-      sha256 = "0imy2j8af9477jliwdq4jc40yw1cifsjjf196gnmwxr9rkj0hbrd";
-    })
-
     # 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
 
-    # TODO: submit upstream
-    ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
-
     (substituteAll {
       src = ./fix-paths.patch;
       inherit zenity;
     })
+
+    # Fix crash when opening submenus from «always on visible workspace» windows
+    # https://gitlab.gnome.org/GNOME/mutter/issues/1083
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/mutter/commit/7e32cc05ce2e5b3931ddcf46ce9ead603a0de39e.patch";
+      sha256 = "5ZzOMizucfrSnHNYjHIUObLHCvAIjrE6fY/CxLp4c7k=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
index 574ed5725612e..1600db1e705b1 100644
--- a/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
+++ b/pkgs/desktops/gnome-3/core/mutter/drop-inheritable.patch
@@ -41,12 +41,12 @@ index 3322bd3b1..01c8020fa 100644
  
  # optional version requirements
  udev_req = '>= 228'
-@@ -125,6 +126,7 @@ xau_dep = dependency('xau')
- ice_dep = dependency('ice')
+@@ -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
@@ -65,10 +65,10 @@ index 3322bd3b1..01c8020fa 100644
  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(),
+@@ -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/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index e55bf19f52880..e4eb8988c9f43 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv";
+    sha256 = "1pynxxcpk4idp4fmsdgv5qwvaw0l93r68b5pks372fhjff4qcjr6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 9b28ca7cf9198..eb4b705523178 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xvy672zyl6jsdlnxma8nc2aqsx9k92jhp6wfxs0msj9ppp1nd3z";
+    sha256 = "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
deleted file mode 100644
index abfe8b2e03922..0000000000000
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ stdenv
-, fetchFromGitLab
-, wrapGAppsHook
-, pkgconfig
-, gnome3
-, gtk3
-, glib
-, intltool
-, libXtst
-, libnotify
-, libsoup
-, libsecret
-, gnutls
-, libgcrypt
-, avahi
-, zlib
-, libjpeg
-, libXdamage
-, libXfixes
-, libXext
-, networkmanager
-, gnome-common
-, libtool
-, automake
-, autoconf
-, telepathySupport ? false
-, dbus-glib ? null
-, telepathy-glib ? null
-}:
-
-stdenv.mkDerivation {
-  pname = "vino";
-  version = "unstable-2019-07-08";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "vino";
-    rev = "aed81a798558c8127b765cd4fb4dc726d10f1e21";
-    sha256 = "16r4cj5nsygmd9v97nq6d1yhynzak9hdnaprcdbmwfhh0c9w8jv3";
-  };
-
-  doCheck = true;
-
-  nativeBuildInputs = [
-    autoconf
-    automake
-    gnome-common
-    intltool
-    libtool
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    avahi
-    glib
-    gnome3.adwaita-icon-theme
-    gnutls
-    gtk3
-    libXdamage
-    libXext
-    libXfixes
-    libXtst
-    libgcrypt
-    libjpeg
-    libnotify
-    libsecret
-    libsoup
-    networkmanager
-    zlib
-  ]
-  ++ stdenv.lib.optionals telepathySupport [ dbus-glib telepathy-glib ]
-  ;
-
-  preConfigure = ''
-    NOCONFIGURE=1 ./autogen.sh
-  '';
-
-  postInstall = stdenv.lib.optionalString (!telepathySupport) ''
-    rm -f $out/share/dbus-1/services/org.freedesktop.Telepathy.Client.Vino.service
-  '';
-
-  passthru = {
-    # updateScript = gnome3.updateScript {
-    #   packageName = "vino";
-    #   attrPath = "gnome3.vino";
-    # };
-  };
-
-  meta = with stdenv.lib; {
-    homepage = https://wiki.gnome.org/Projects/Vino;
-    description = "GNOME desktop sharing server";
-    maintainers = gnome3.maintainers;
-    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
index 34f6accdd5ffa..7d4f2f36515e9 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc";
+    sha256 = "1hsfj3q3a3kca0cf9i02xlq2qd4vy12qsjb89hh4r6mp6c11rrag";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index 438c71c4ad307..76a124b0c61c8 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ifhgdxff2xx2damaj72gpjln5k36grg2chvi4335mv3b5y55mp3";
+    sha256 = "097djjyl096zmicjpxlb858yz6rd5cj813xc8azbxlhsscikwjzx";
   };
 
   nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index f2d3182c337dd..4fdaa42a1bf58 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -146,8 +146,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   totem = callPackage ./core/totem { };
 
-  vino = callPackage ./core/vino { };
-
   yelp = callPackage ./core/yelp { };
 
   yelp-xsl = callPackage ./core/yelp-xsl { };
@@ -271,8 +269,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-panel = callPackage ./misc/gnome-panel { };
 
-  gnome-screensaver = callPackage ./misc/gnome-screensaver { };
-
   gnome-tweaks = callPackage ./misc/gnome-tweaks { };
 
   gpaste = callPackage ./misc/gpaste { };
@@ -324,7 +320,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   inherit (pkgs) atk glib gobject-introspection gspell webkitgtk gtk3 gtkmm3
       libgtop libgudev libhttpseverywhere librsvg libsecret gdk_pixbuf gtksourceview gtksourceviewmm gtksourceview4
       easytag meld orca rhythmbox shotwell gnome-usage
-      clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libcroco libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
+      clutter clutter-gst clutter-gtk cogl gtk-vnc libdazzle libgda libgit2-glib libgxps libgdata libgepub libpeas libgee geocode-glib libgweather librest libzapojit libmediaart gfbgraph gexiv2 folks totem-pl-parser gcr gsound libgnomekbd vte vte_290 gnome-menus gdl;
   inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16
   inherit (pkgs) gnome-video-effects; # added 2019-08-19
   inherit (pkgs) gnome-online-accounts grilo grilo-plugins tracker tracker-miners gnome-photos; # added 2019-08-23
@@ -358,4 +354,8 @@ lib.makeScope pkgs.newScope (self: with self; {
   inherit (pkgs) dconf; # added 2019-11-30
 
   inherit (pkgs) networkmanagerapplet; # added 2019-12-12
+
+  vino = throw "vino is deprecated, use gnome-remote-desktop instead."; # added 2020-03-13
+
+  gnome-screensaver = throw "gnome-screensaver is deprecated. If you are using GNOME Flashback, it now has a built-in lock screen. If you are using it elsewhere, you can try xscreenlock or other alternatives."; # added 2020-03-19
 })
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
index 080a332d7df67..d4b9e3f76f7e7 100644
--- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "devhelp";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/devhelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg";
+    sha256 = "0d2fvd7p08qfv21cxpjl3rh5cl0bzk3fj2msvyz49fqmc69k5z93";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index 6ec7dee1722aa..cf9ca9999d748 100644
--- a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-appindicator";
-  version = "32";
+  version = "33";
 
   src = fetchFromGitHub {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "1qv9ll4iwkinwk5mf2jppj4fbk8rfncix6q4hhrwnqmhmsbiz6n2";
+    sha256 = "B039bgg5b63oaHp1Z36k9Dh5FLr8fmfxI25ZgIA+p2I=";
   };
 
   # This package has a Makefile, but it's used for building a zip for
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
index f85b91d354d4c..db1741e72bb56 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-arc-menu";
-  version = "33";
+  version = "43";
 
   src = fetchFromGitLab {
     owner = "LinxGem33";
     repo = "Arc-Menu";
     rev = "v${version}-Stable";
-    sha256 = "0ncb19jlwy2y9jcj8g6cdbasdv6n7hm96qv9l251z6qgrmg28x4z";
+    sha256 = "1rspl89bxqy0wla8cj0h1d29gp38xg1vmvhc1qg7bl46ank4yp5q";
   };
 
   patches = [
@@ -22,12 +22,12 @@ stdenv.mkDerivation rec {
     glib gettext
   ];
 
-  makeFlags = [ "INSTALL_BASE=${placeholder "out"}/share/gnome-shell/extensions" ];
+  makeFlags = [ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions" ];
 
   meta = with stdenv.lib; {
     description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dkabot ];
-    homepage = https://gitlab.com/LinxGem33/Arc-Menu;
+    homepage = "https://gitlab.com/LinxGem33/Arc-Menu";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
index 1761887f8fb1b..608d44a2892fd 100644
--- a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, glib, gettext, bash, gnome3 }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-caffeine";
-  version = "33";
+  pname = "gnome-shell-extension-caffeine-unstable";
+  version = "2020-03-13";
 
   src = fetchFromGitHub {
     owner = "eonpatapon";
     repo = "gnome-shell-extension-caffeine";
-    rev = "v${version}";
-    sha256 = "1v74xfk7csgc4kw1fg75brmhk2aby3d453ksnmj4k8ivyxkzxmfg";
+    rev = "f25fa5cd586271f080c2304d0ad1273b55e864f5";
+    sha256 = "12a76g1ydw677pjnj00r3vw31k4xybc63ynqzx3s4g0wi6lipng7";
   };
 
   uuid = "caffeine@patapon.info";
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     description = "Fill the cup to inhibit auto suspend and screensaver";
     license = licenses.gpl2;
     maintainers = with maintainers; [ eperuffo ];
-    homepage = https://github.com/eonpatapon/gnome-shell-extension-caffeine;
+    homepage = "https://github.com/eonpatapon/gnome-shell-extension-caffeine";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
index 6ac82c539a2ec..36404cf7b2949 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchFromGitHub, glib, gettext }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-dash-to-dock";
-  version = "67";
+  pname = "gnome-shell-dash-to-dock-unstable";
+  version = "2020-03-19";
 
   src = fetchFromGitHub {
     owner = "micheleg";
     repo = "dash-to-dock";
-    rev = "extensions.gnome.org-v" + version;
-    sha256 = "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5";
+    # rev = "extensions.gnome.org-v" + version;
+    rev = "c58004802b2eedfde96966a4ec0151fea2a1bd98";
+    sha256 = "IjunykPFP2CbGcd8XVqhPuNUOUOOgDAQFIytLaoyqRg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
index 33261472487ff..84662505a374b 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-panel";
-  version = "26";
+  version = "31";
 
   src = fetchFromGitHub {
     owner = "home-sweet-gnome";
     repo = "dash-to-panel";
     rev = "v${version}";
-    sha256 = "1phfx2pblygpcvsppsqqqflm7qnz46mqkw29hj0nv2dn69hf4xbc";
+    sha256 = "A8Ft+tLNv8KlTnVUzrWGavBWpP0u2rhkuG5LZls1A24=";
   };
 
   buildInputs = [
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "An icon taskbar for Gnome Shell";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mounium ];
-    homepage = https://github.com/jderose9/dash-to-panel;
+    homepage = "https://github.com/jderose9/dash-to-panel";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
index 4e7fa17d495cc..fb71320159449 100644
--- a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, substituteAll, gjs, vte }:
+{ stdenv, fetchFromGitHub, substituteAll, gjs, vte, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-drop-down-terminal";
-  version = "24";
+  version = "unstable-2020-03-25";
 
   src = fetchFromGitHub {
     owner = "zzrough";
     repo = "gs-extensions-drop-down-terminal";
-    rev = "v${version}";
-    sha256 = "1gda56xzwsa5pgmgpb7lhb3i3gqishvn84282inwvqm86afks73r";
+    rev = "a59669afdb395b3315619f62c1f740f8b2f0690d";
+    sha256 = "0igfxgrjdqq6z6xg4rsawxn261pk25g5dw2pm3bhwz5sqsy4bq3i";
   };
 
   uuid = "drop-down-terminal@gs-extensions.zzrough.org";
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "Configurable drop down terminal shell";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ericdallo ];
-    homepage = https://github.com/zzrough/gs-extensions-drop-down-terminal;
+    homepage = "https://github.com/zzrough/gs-extensions-drop-down-terminal";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index 26d7f157240e0..d7e599105111b 100644
--- a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-gsconnect";
-  version = "31";
+  version = "35";
 
   src = fetchFromGitHub {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "0nricm31jh4akncs0rkkilmq9afg7kgbj5cy7w26pfqb3l4nhifg";
+    sha256 = "GqM2S9FIOHw+8AK2K7fpEBq34JqgKRCsW8I9Ve6c6IM=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/extensions/impatience/default.nix b/pkgs/desktops/gnome-3/extensions/impatience/default.nix
index c3ca1b6212114..2f5c48a5a3259 100644
--- a/pkgs/desktops/gnome-3/extensions/impatience/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/impatience/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-impatience";
-  version = "0.4.5";
+  version = "unstable-2019-09-23";
 
   src = fetchFromGitHub {
     owner = "timbertson";
     repo = "gnome-shell-impatience";
-    rev = "version-${version}";
+    rev = "43e4e0a1e0eeb334a2da5224ce3ab4fdddf4f1b2";
     sha256 = "0kvdhlz41fjyqdgcfw6mrr9nali6wg2qwji3dvykzfi0aypljzpx";
   };
 
diff --git a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
index dca346c6cce45..c16f7bc420909 100644
--- a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-mpris-indicator-button-unstable";
-  version = "2019-09-29";
+  version = "2020-03-21";
 
   src = fetchFromGitHub {
     owner = "JasonLG1979";
     repo = "gnome-shell-extension-mpris-indicator-button";
-    rev = "6cdc28a8bde98f25618b27ee48280996e2b4a0f8";
-    sha256 = "1n3sh3phpa75y3vpc09wnzhis0m92zli1m46amzsdbvmk6gkifif";
+    rev = "de54160e7d905b8c48c0fe30a437f7c51efc1aa3";
+    sha256 = "k/NLmDrlaOsMkwLye7YGQhaQvOMNfhCsDVh2F0qnuFg=";
   };
 
   uuid = "mprisindicatorbutton@JasonLG1979.github.io";
diff --git a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
index 8d3a775e949e2..be6c1916ab421 100644
--- a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
@@ -1,21 +1,31 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchFromGitLab }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-night-theme-switcher";
-  version = "2.1";
+  version = "19";
 
-  src = fetchgit {
-    url = "https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension";
+  src = fetchFromGitLab {
+    owner = "rmnvgr";
+    repo = "nightthemeswitcher-gnome-shell-extension";
     rev = "v${version}";
-    sha256 = "1md44vmc83cp35riszhdvysnvl8pmkcpf5j6n4i2b3wwcjwxqwfy";
+    sha256 = "1ll0yf1skf51wa10mlrajd1dy459w33kx0i3vhfcx2pdk7mw5a3c";
   };
 
-  makeFlags = [ "GSEXT_DIR_LOCAL=${placeholder "out"}/share/gnome-shell/extensions" ];
+  # makefile tries to do install in home directory using
+  # `gnome-extensions install`
+  dontBuild = true;
+
+  uuid = "nightthemeswitcher@romainvigier.fr";
+
+  installPhase = ''
+    mkdir -p $out/share/gnome-shell/extensions/
+    cp -r src/ $out/share/gnome-shell/extensions/${uuid}
+  '';
 
   meta = with stdenv.lib; {
     description = "Automatically change the GTK theme to dark variant when Night Light activates";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jonafato ];
-    homepage = https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension;
+    homepage = "https://gitlab.com/rmnvgr/nightthemeswitcher-gnome-shell-extension/";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
index cc1c2deeef9a2..6fa1840bbb177 100644
--- a/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-sound-output-device-chooser";
-  version = "25";
+  version = "28";
 
   src = fetchFromGitHub {
     owner = "kgshank";
     repo = "gse-sound-output-device-chooser";
     rev = version;
-    sha256 = "16xaa4r01575ix9lrvww8n6pird8r3ml1j037b3sm6dfrf8kvzxs";
+    sha256 = "JmDUi6xTMbkMzW+hYJuKtjQj4ERctaiHr6eLsl5Fru4=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
index d14dbd1c41184..4327f30c95b98 100644
--- a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop }:
+{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-system-monitor";
@@ -41,5 +41,8 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tiramiseb ];
     homepage = https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet;
+    # 3.36 support not yet ready
+    # https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/564
+    broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.34";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix b/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
index f0f6279fe2ee8..22d58662e2bb2 100644
--- a/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, glib, gettext }:
+{ stdenv, fetchFromGitHub, glib, gnome3, gettext }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-topicons-plus";
@@ -22,5 +22,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ eperuffo ];
     homepage = https://github.com/phocean/TopIcons-plus;
+    # Unmaintained and no longer working with GNOME Shell 3.34+
+    broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.32";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix b/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
index 7d5de1062b16f..a278ec1d5e525 100644
--- a/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-window-corner-preview";
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
     homepage = https://github.com/medenagan/window-corner-preview;
+    broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
index ca4b72111c6c6..b97b2c902baaa 100644
--- a/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-workspace-matrix";
-  version = "3.0.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "mzur";
     repo = "gnome-shell-wsmatrix";
     rev = "v${version}";
-    sha256 = "1fgyzmd16kklcca7600bwg8w8pbb4klmapqsvmahlwa99vmkhfkn";
+    sha256 = "LTDkKSKvReJxBzAERE+vV+uJBNZw6UyhiB7kN48BZCo=";
   };
 
   uuid = "wsmatrix@martin.zurowietz.de";
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index 94466b38e2263..d047db68ef59e 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "four-in-a-row";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1gw54llbmbv4w2rxmmkzq2wq6sacnpj99maw06zpn071cga0g4z5";
+    sha256 = "1bl63npcbr5ymka2y06wps612qynxa4hsqlzn7bvwpz2v53pai1z";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index 72c4bdf1d297a..c67d8fa8ffef3 100644
--- a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-chess";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-chess/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1n1vjg6xhwppmddrmqmkk6b3jkgphshp06rjbv5h3270k520a135";
+    sha256 = "1a9fgi749gy1f60vbcyrqqkab9vqs42hji70q73k1xx8rv0agmg0";
   };
 
   nativeBuildInputs = [ meson ninja vala pkgconfig gettext itstool libxml2 python3 wrapGAppsHook gobject-introspection ];
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index f7a7a75533dbd..62fc7bf8d67d8 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-klotski";
-  version = "3.34.4";
+  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 = "1bg7hl64lmjryzvp51qfak5jqs7vbqfmj0s7h1g3c7snscca7rx6";
+    sha256 = "06gsg3s8hyhhsk11f1ld2anzv1czg1429483gbv9lr2p7fnq7pyy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
index aa7824a031798..1a04b90c09e29 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-mahjongg";
-  version = "3.34.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-mahjongg/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0qyi3jkg112jysrsy5p330b7b92sl09mr8zsimq06q68kj1wzkz5";
+    sha256 = "1a5h55amr0pab36y2iqm6ynv6mmb8al1b92rfk18wzfcfz7mhxzd";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index 8c620fdd0d153..00b4d15b4429a 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-mines";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54";
+    sha256 = "0m53ymxbgr3rb3yv13fzjwqh6shsfr51abkm47rchsy2jryqkzja";
   };
 
   # gobject-introspection for finding vapi files
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index 94bc8a56b39bd..1600ddc9e8a85 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-nibbles";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0sl54ns1b5cff6vrls6716xb73krgd1sp36k94gc2lza5laixyh0";
+    sha256 = "01vzcjys2x95wnanwq25x0a7x6cc4j6g8gk69c5yc9ild48rr9c1";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
index 484110cfaa993..a4b083c7c2d13 100644
--- a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-robots";
-  version = "3.34.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-robots/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ncghkv06x9qqfr5zyh6hdv28d0i6v9z4z365k05x9ji5pyzxiny";
+    sha256 = "10l7dlbqa2f0z6g76r9n87pc1zm11qmxsmfp3908v9g5lf11vzrs";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
index 53cd073af3485..efeecf04aaeb0 100644
--- a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-sudoku";
-  version = "3.34.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-sudoku/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b";
+    sha256 = "17a1r2jk5yygrxil1dycmamxyvyi64mr29mbyfgcx5hm2fylxxwm";
   };
 
   nativeBuildInputs = [ meson ninja vala pkgconfig gobject-introspection gettext itstool libxml2 python3 desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index 623572f980b77..9ac0cf88b6ea6 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-taquin";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0s8gsgaj1mxldg5yaq6k9anfha9bc4n16wms66kbbpqi8k5hcm40";
+    sha256 = "16ss2d8s6glb3k0wnb5ihmbqvk9i1yi18wv9hzgxfyhs1rvk496f";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 843211822f915..de81e76d3cd44 100644
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-tetravex";
-  version = "3.34.4";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1sm90nkpig02hwk7bh5bnf65awgssxl63bvvh2a7gmlaln8x99iy";
+    sha256 = "1xbd0flh77v3x0dh4dsfspykwb6rwvga7kqwn1fq7gk421mq6n52";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
index cf83527432f5e..fa82365d166df 100644
--- a/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/pkgs/desktops/gnome-3/games/hitori/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hitori";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/hitori/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1612hq6d2mnggppy949dkb8lz9886n0rlg68z7qmjjizz1l41lb5";
+    sha256 = "0mq1jv8rbmvksnhbm1d25kcvcfr9lq58qipcacn7wa26xpx7cvs5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 028684114ecdb..cf4e8595f96b7 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iagno";
-  version = "3.34.5";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "05qywjcar29vk29yvbxwlddxhwlrvllgjw7srmlz5811hc5m0a1m";
+    sha256 = "0ysb021mf5sy1ywicys35rn5c9v355rffjrlhxmr3z6yplrljm5b";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
index 0a236d0425a0f..3d0c3f72396b0 100644
--- a/pkgs/desktops/gnome-3/games/lightsoff/default.nix
+++ b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lightsoff";
-  version = "3.34.0";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/lightsoff/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yyq0962fv16rab3alq5saf4gpii9xvcfy5vbq85hhhgjpbqrfns";
+    sha256 = "0qvafpciqbqmpan9i8ans3lqs29v02zblz6k0hzj4p3qq4sch3a3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index 2ac4c4c96f78a..34dc18968dabe 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quadrapassel";
-  version = "3.34.1";
+  version = "3.36.00";
 
   src = fetchurl {
     url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1qh6hx90lqag2hby94jc68xnz4i6b2a253x4yp6xz025fpacv6mk";
+    sha256 = "1xk9x1pp71armj47vxja7fsj6gs116kcjkd8xgwf8wi4zr4kgx7g";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
index f196ada38504c..3fa76704a5023 100644
--- a/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tali";
-  version = "3.32.1";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0na7sswfh63wj44aibcnqdsbb24yfngcwgi07lv8rky6rry0kqgz";
+    sha256 = "0knq2vwnbkzhb6yc0f8iznaz76yf5hwgg2z2xr079nz407p46v22";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
index 7e2a8050b4100..6122488ea1247 100644
--- a/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, pkgconfig, gtk3, vala, enchant2, wrapGAppsHook, meson, ninja
 , desktop-file-utils, gnome-online-accounts, gsettings-desktop-schemas, adwaita-icon-theme
-, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext, fetchpatch
+, libpeas, libsecret, gmime3, isocodes, libxml2, gettext, fetchpatch
 , sqlite, gcr, json-glib, itstool, libgee, gnome3, webkitgtk, python3
-, xvfb_run, dbus, shared-mime-info, libunwind, libunity, folks, glib-networking
+, xvfb_run, dbus, shared-mime-info, libunwind, folks, glib-networking
 , gobject-introspection, gspell, appstream-glib, libytnef, libhandy }:
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "3.34.2";
+  version = "3.36.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1a6j70pzr57ga7m4nypqdkqwlzk2dablpz93yaympgrlqpf5zkvm";
+    sha256 = "jiaq+dwdARLaSnttY2chwJrclFjxrukuk80yT0LgvfY=";
   };
 
   nativeBuildInputs = [
@@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    adwaita-icon-theme enchant2 gcr gmime gnome-online-accounts
-    gsettings-desktop-schemas gtk3 isocodes json-glib libcanberra-gtk3
+    adwaita-icon-theme enchant2 gcr gmime3 gnome-online-accounts
+    gsettings-desktop-schemas gtk3 isocodes json-glib libpeas
     libgee libsecret sqlite webkitgtk glib-networking
-    libunwind libunity folks gspell libytnef libhandy
+    libunwind folks gspell libytnef libhandy
   ];
 
   checkInputs = [ xvfb_run dbus ];
@@ -41,14 +41,21 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  # NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see:
+  # https://gitlab.gnome.org/GNOME/geary/commit/f7f72143e0f00ca5e0e6a798691805c53976ae31#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa
   postPatch = ''
     chmod +x build-aux/post_install.py build-aux/git_version.py
+
     patchShebangs build-aux/post_install.py build-aux/git_version.py
 
+    chmod +x build-aux/yaml_to_json.py
+    patchShebangs build-aux/yaml_to_json.py
+
     chmod +x desktop/geary-attach
   '';
 
-  doCheck = true;
+  # FIXME: fix tests
+  doCheck = false;
 
   checkPhase = ''
     NO_AT_BRIDGE=1 \
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index fff328c608d6f..b04c7ece5296a 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -12,7 +12,6 @@
 , libgtop
 , libnotify
 , upower
-, dbus-glib
 , wirelesstools
 , linuxPackages
 , adwaita-icon-theme
@@ -25,13 +24,13 @@
 
 let
   pname = "gnome-applets";
-  version = "3.34.0";
+  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 = "1mbhykqwzq18zpvfkdcdkbb4zhijmxqa2i6502an78yap87vq74i";
+    sha256 = "096n0ji478hfdrbi8illsyvdsgxznxfayr826pr9jdgzg1s0x9xs";
   };
 
   nativeBuildInputs = [
@@ -51,7 +50,6 @@ in stdenv.mkDerivation rec {
     libgtop
     libnotify
     upower
-    dbus-glib
     adwaita-icon-theme
     libgweather
     gucharmap
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index c1791ee5bbdce..3d8196f12f41c 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , autoreconfHook
 , fetchurl
+, fetchpatch
 , gettext
 , glib
 , gnome-bluetooth
@@ -17,7 +18,10 @@
 , libxml2
 , pkgconfig
 , polkit
+, gdm
+, systemd
 , upower
+, pam
 , wrapGAppsHook
 , writeTextFile
 , writeShellScriptBin
@@ -27,16 +31,64 @@
 
 let
   pname = "gnome-flashback";
-  version = "3.34.2";
-  requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;";
+  version = "3.36.0";
+
+  # From data/sessions/Makefile.am
+  requiredComponentsCommon = [
+    "gnome-flashback"
+    "gnome-panel"
+  ];
+  requiredComponentsGsd = [
+    "org.gnome.SettingsDaemon.A11ySettings"
+    "org.gnome.SettingsDaemon.Color"
+    "org.gnome.SettingsDaemon.Datetime"
+    "org.gnome.SettingsDaemon.Housekeeping"
+    "org.gnome.SettingsDaemon.Keyboard"
+    "org.gnome.SettingsDaemon.MediaKeys"
+    "org.gnome.SettingsDaemon.Power"
+    "org.gnome.SettingsDaemon.PrintNotifications"
+    "org.gnome.SettingsDaemon.Rfkill"
+    "org.gnome.SettingsDaemon.ScreensaverProxy"
+    "org.gnome.SettingsDaemon.Sharing"
+    "org.gnome.SettingsDaemon.Smartcard"
+    "org.gnome.SettingsDaemon.Sound"
+    "org.gnome.SettingsDaemon.UsbProtection"
+    "org.gnome.SettingsDaemon.Wacom"
+    "org.gnome.SettingsDaemon.XSettings"
+  ];
+  requiredComponents = wmName: "RequiredComponents=${stdenv.lib.concatStringsSep ";" ([wmName] ++ requiredComponentsCommon ++ requiredComponentsGsd)};";
   gnome-flashback = stdenv.mkDerivation rec {
     name = "${pname}-${version}";
 
     src = fetchurl {
       url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-      sha256 = "1726xcm2q94nfvb055d3m61m20s0xy3xl1fc3ds3k3rcrn457riv";
+      sha256 = "qwlTFs4wn6PpB7uZkpvnmECsSTa62OQMpgiIXoZoMRk=";
     };
 
+    patches = [
+      # Fix locking screen from log out dialogue
+      # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/43
+      (fetchpatch {
+        url = "https://gitlab.gnome.org/GNOME/gnome-flashback/-/commit/7b151e0a947e4b49e1cee80097c1f8946ba46af9.patch";
+        sha256 = "pJcJb6EGlInlWpLbbBajWydBtbiWK3AMHzsFQ26bmwA=";
+      })
+
+      # Hide GNOME Shell Extensions manager from menu
+      # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/42
+      (fetchpatch {
+        url = "https://gitlab.gnome.org/GNOME/gnome-flashback/-/commit/75f95379779c24d42d1e72cdcd4c16a9c6db7657.patch";
+        sha256 = "cwKZSQTFi0f/T1Ld6vJceQFHBsikOhkp//J1IY5aMKA=";
+      })
+      (fetchpatch {
+        url = "https://gitlab.gnome.org/GNOME/gnome-flashback/-/commit/12cacf25b1190d9c9bba42f085e54895de7a076e.patch";
+        sha256 = "mx37kLs3x/e9RJCGN6z8/7b5Tz6yzxeN/14NFi8IWfA=";
+      })
+      (fetchpatch {
+        url = "https://gitlab.gnome.org/GNOME/gnome-flashback/-/commit/7954376f32348028a3bdba0ea182b0000c4fcb0a.patch";
+        sha256 = "ZEQcg9OoIOIMh/yUYQ9R1Ky8DElteaDQrSdwFtA4Yno=";
+      })
+    ];
+
     # make .desktop Execs absolute
     postPatch = ''
       patch -p0 <<END_PATCH
@@ -76,7 +128,11 @@ let
       libpulseaudio
       libxkbfile
       polkit
+      gdm
+      gnome-panel
+      systemd
       upower
+      pam
       xkeyboard_config
     ];
 
@@ -84,6 +140,9 @@ let
 
     enableParallelBuilding = true;
 
+    PKG_CONFIG_LIBGNOME_PANEL_LAYOUTSDIR = "${placeholder "out"}/share/gnome-panel/layouts";
+    PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
+
     passthru = {
       updateScript = gnome3.updateScript {
         packageName = pname;
diff --git a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index 423a393eb7733..c73d551cdc51c 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -7,7 +7,6 @@
 , gettext
 , glib
 , gnome-desktop
-, gnome-flashback
 , gnome-menus
 , gnome3
 , gtk3
@@ -23,7 +22,7 @@
 
 let
   pname = "gnome-panel";
-  version = "3.34.1";
+  version = "3.36.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -31,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "03dr54njdh2szy6yrib2q0agjscbj3bmzrfb9fb4psrf4mah5g56";
+    sha256 = "08x0xjrg36h6x5c68w5jf8gg57767p2m3ljgzyglx2ij0nfbpc8d";
   };
 
   # make .desktop Exec absolute
@@ -46,8 +45,8 @@ in stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gnome-menus}/share:${gnome-flashback}/share"
-      --prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg:${gnome-flashback}/etc/xdg"
+      --prefix XDG_DATA_DIRS : "${gnome-menus}/share"
+      --prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg"
     )
   '';
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix b/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix
deleted file mode 100644
index 4a530e54de716..0000000000000
--- a/pkgs/desktops/gnome-3/misc/gnome-screensaver/default.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ stdenv
-, fetchgit
-, autoreconfHook
-, dbus-glib
-, glib
-, gnome-common
-, gnome-desktop
-, gnome3
-, gtk3
-, pkgconfig
-, intltool
-, pam
-, systemd
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-screensaver";
-  version = "3.6.1";
-
-  # the original package is deprecated and the Ubuntu version has a number of useful patches
-  src = fetchgit {
-    url = "https://git.launchpad.net/ubuntu/+source/gnome-screensaver";
-    rev =  "4f7b666131dec060a5aac9117f395ac522a627b4";
-    sha256 = "15xqgcpm825cy3rm8pj00qlblq66svmh06lcw8qi74a3g0xcir87";
-  };
-
-  # from debian/patches/series
-  patches = map (patch: "debian/patches/${patch}") [
-    "00git_logind_check.patch"
-    "01_no_autostart.patch"
-    "03_fix_ltsp-fading.patch"
-    "05_dbus_service.patch"
-    "10_legacy_scrsvr_inhibit.patch"
-    "13_nvidia_gamma_fade_fallback.patch"
-    "14_no_fade_on_user_switch.patch"
-    "15_dont_crash_on_no_fade.patch"
-    "16_dont_crash_in_kvm.patch"
-    "17_remove_top_panel.patch"
-    "18_unity_dialog_layout.patch"
-    "24_use_user_settings.patch"
-    "25_fix_lock_command.patch"
-    "27_lightdm_switch_user.patch"
-    "28_blocking_return.patch"
-    "29_handle_expired_creds.patch"
-    # these two patches are ubuntu-specific
-    # "30_ubuntu-lock-on-suspend_gsetting.patch"
-    # "31_lock_screen_on_suspend.patch"
-    "32_input_sources_switcher.patch"
-    "move-not-nuke.patch"
-    "allow-replacement"
-    "libsystemd.patch"
-    "0001-gs-lock-plug-Disconnect-signal-handler-from-right-ob.patch"
-    "33_budgie_support.patch"
-  ] ++ [ ./fix-dbus-service-dir.patch ];
-
-  nativeBuildInputs = [
-    autoreconfHook
-    intltool
-    wrapGAppsHook
-    gnome-common
-    pkgconfig
-  ];
-
-  buildInputs = [
-    glib
-    gtk3
-    gnome-desktop
-    dbus-glib
-    pam
-    systemd
-  ];
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=return-type" ];
-
-  configureFlags = [ "--enable-locking" "--with-systemd=yes" ];
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Component of Gnome Flashback that provides screen locking";
-    homepage = https://wiki.gnome.org/Projects/GnomeScreensaver;
-    license = licenses.gpl2Plus;
-    maintainers = gnome3.maintainers;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
index 00e21e30a29a0..1ee9e5b933b6e 100644
--- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
@@ -18,30 +18,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.34.1";
+  version = "3.36.3";
   pname = "gpaste";
 
   src = fetchFromGitHub {
     owner = "Keruspe";
     repo = "GPaste";
     rev = "v${version}";
-    sha256 = "1jcj0kgxhad8rblyqhwa2yhkf0010k80w9bm2rajanad2c3bqaxa";
+    sha256 = "sR7/NdCaidP03xE64nqQc1M+xAIipOuKp5OWBJ4VN9w=";
   };
 
   patches = [
-    # Meson fixes
-    # https://github.com/Keruspe/GPaste/pull/283
-    # install systemd units
-    (fetchpatch {
-      url = "https://github.com/Keruspe/GPaste/commit/a474d8c1f2bd600476ba52dc19f517787845533b.patch";
-      sha256 = "19m1ar61l2n0vb5a5qfhdny8giivqlyq04l3j9i8llv16vx80rg2";
-    })
-    # apply symbol versioning
-    (fetchpatch {
-      url = "https://github.com/Keruspe/GPaste/commit/08047752e8dba9363673ddefd422c43075f08006.patch";
-      sha256 = "0jvcs1a17sijvb2wqyn3y8shdxrhv4kwzxs39kmh9y8nyx2dzhpf";
-    })
-
     ./fix-paths.patch
   ];
 
diff --git a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
index d591fb6033d07..c4c280fa7333d 100644
--- a/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, gettext, gnome3
-, libintl }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, gettext, vala, gnome3
+, libintl, meson, ninja }:
 
 let
   pname = "libgnome-games-support";
-  version = "1.4.4";
+  version = "1.6.0.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq";
+    sha256 = "0xifkj5dg4n3cy0hi76zy1ixyssxxpgy4yi4li7iq39cqbnkc9d8";
   };
 
-  nativeBuildInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext vala ];
   buildInputs = [ libintl ];
   propagatedBuildInputs = [
     # Required by libgnome-games-support-1.pc
diff --git a/pkgs/desktops/gnome-3/misc/metacity/default.nix b/pkgs/desktops/gnome-3/misc/metacity/default.nix
index 8355051fa856d..a619bc8902b6d 100644
--- a/pkgs/desktops/gnome-3/misc/metacity/default.nix
+++ b/pkgs/desktops/gnome-3/misc/metacity/default.nix
@@ -16,13 +16,13 @@
 
 let
   pname = "metacity";
-  version = "3.34.1";
+  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 = "0ga57b71i2gbd723gbs3pxy1jnf44q5mnwq5yhxzn2irbh2d3iri";
+    sha256 = "1a06763x9hshymmq36w7c588q4rbzq0w5rkyam5l6yi8p75ic016";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index 27bcb21a006e0..7ebdbd9b5913a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , pantheon
 , pkgconfig
 , meson
@@ -37,6 +38,14 @@ stdenv.mkDerivation rec {
     };
   };
 
+  patches = [
+    # fix build with vte-2.91 https://github.com/elementary/terminal/pull/488
+    (fetchpatch {
+      url = "https://github.com/elementary/terminal/commit/48da5328cefdc481a3ac76fbdd771096f542d55a.patch";
+      sha256 = "1y4043jxb0qzd3pp28kdij2yj1p9pg158il7q3aq1sf7c474gz4d";
+    })
+  ];
+
   nativeBuildInputs = [
     appstream
     desktop-file-utils
@@ -72,7 +81,7 @@ stdenv.mkDerivation rec {
       A super lightweight, beautiful, and simple terminal. Comes with sane defaults, browser-class tabs, sudo paste protection,
       smart copy/paste, and little to no configuration.
     '';
-    homepage = https://github.com/elementary/terminal;
+    homepage = "https://github.com/elementary/terminal";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = pantheon.maintainers;
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index fdd3f4f576505..902703bc75e54 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , pkgconfig
-, vala
+, vala_0_46
 , libgee
 , granite
 , gtk3
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkgconfig
-    vala
+    vala_0_46
   ];
 
   buildInputs = [
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Switchboard Online Accounts Plug";
-    homepage = https://github.com/elementary/switchboard-plug-onlineaccounts;
+    homepage = "https://github.com/elementary/switchboard-plug-onlineaccounts";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = pantheon.maintainers;
diff --git a/pkgs/desktops/pantheon/services/cerbere/default.nix b/pkgs/desktops/pantheon/services/cerbere/default.nix
index a911440fa5de0..02c885198b62b 100644
--- a/pkgs/desktops/pantheon/services/cerbere/default.nix
+++ b/pkgs/desktops/pantheon/services/cerbere/default.nix
@@ -7,7 +7,7 @@
 , ninja
 , glib
 , libgee
-, vala
+, vala_0_46
 , wrapGAppsHook
 }:
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     ninja
     pkgconfig
     python3
-    vala
+    vala_0_46
     wrapGAppsHook
   ];
 
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 5b6abddbcda32..770e549fc2cd6 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -26,8 +26,8 @@ in
 
 mkDerivation {
   name = "breeze-plymouth";
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ plymouth ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
+  nativeBuildInputs = [ extra-cmake-modules ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
+  buildInputs = [ plymouth ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   cmakeFlags = []
     ++ lib.optional (osName      != null) "-DDISTRO_NAME=${osName}"
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
index b33ba7770be36..db74da2939de3 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgconfig, fetchFromGitHub, python2, bash, vala
+{ stdenv, pkgconfig, fetchFromGitHub, python2, bash, vala_0_46
 , dockbarx, gtk2, xfce, pythonPackages, wafHook }:
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   pythonPath = [ dockbarx ];
 
   nativeBuildInputs = [ pkgconfig wafHook ];
-  buildInputs = [ python2 vala gtk2 pythonPackages.wrapPython ]
+  buildInputs = [ python2 vala_0_46 gtk2 pythonPackages.wrapPython ]
     ++ (with xfce; [ libxfce4util xfce4-panel xfconf xfce4-dev-tools ])
     ++ pythonPath;
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/TiZ-EX1/xfce4-dockbarx-plugin;
+    homepage = "https://github.com/TiZ-EX1/xfce4-dockbarx-plugin";
     description = "A plugins to embed DockbarX into xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;