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/dde-daemon/default.nix2
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix3
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix8
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix8
-rw-r--r--pkgs/desktops/deepin/default.nix2
-rw-r--r--pkgs/desktops/enlightenment/efl.nix99
-rw-r--r--pkgs/desktops/enlightenment/enlightenment.nix36
-rw-r--r--pkgs/desktops/gnome-3/apps/accerciser/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/apps/cheese/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gedit/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/ghex/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-books/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-todo/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-weather/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix63
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix90
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix74
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override2
-rw-r--r--pkgs/desktops/gnome-3/core/gjs/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix109
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch67
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf5
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/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-session/fix-paths.patch4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch14
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix36
-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.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch15
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix83
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/devtools/anjuta/default.nix4
-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.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix35
-rw-r--r--pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch32
-rw-r--r--pkgs/desktops/gnome-3/extensions/gsconnect/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch40
-rw-r--r--pkgs/desktops/gnome-3/extensions/icon-hider/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix32
-rw-r--r--pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/system-monitor/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/extensions/tilingnome/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/extensions/timepp/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/games/aisleriot/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/atomix/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix8
-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.nix17
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-robots/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix8
-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.nix8
-rw-r--r--pkgs/desktops/gnome-3/games/lightsoff/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/games/swell-foop/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/geary/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-applets/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix3
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/libgnome-games-support/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/pomodoro/default.nix8
-rw-r--r--pkgs/desktops/lxqt/libfm-qt/default.nix10
-rw-r--r--pkgs/desktops/lxqt/lxqt-archiver/default.nix11
-rw-r--r--pkgs/desktops/lxqt/obconf-qt/default.nix3
-rw-r--r--pkgs/desktops/mate/caja-extensions/default.nix4
-rw-r--r--pkgs/desktops/mate/caja/default.nix4
-rw-r--r--pkgs/desktops/mate/eom/default.nix4
-rw-r--r--pkgs/desktops/mate/libmateweather/default.nix4
-rw-r--r--pkgs/desktops/mate/marco/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-applets/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-calc/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-common/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-control-center/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-desktop/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-icon-theme-faenza/default.nix8
-rw-r--r--pkgs/desktops/mate/mate-icon-theme/default.nix14
-rw-r--r--pkgs/desktops/mate/mate-indicator-applet/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-media/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-menus/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-notification-daemon/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-panel/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-power-manager/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-screensaver/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-session-manager/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-settings-daemon/default.nix14
-rw-r--r--pkgs/desktops/mate/mate-system-monitor/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-user-guide/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-utils/default.nix4
-rw-r--r--pkgs/desktops/mate/mozo/default.nix4
-rw-r--r--pkgs/desktops/mate/pluma/default.nix4
-rw-r--r--pkgs/desktops/mate/python-caja/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix9
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix9
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix9
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/pantheon/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch309
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch25
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix67
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch22
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop8
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix72
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch272
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix17
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix8
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix43
-rw-r--r--pkgs/desktops/plasma-5/kdecoration.nix4
-rw-r--r--pkgs/desktops/plasma-5/kwallet-pam.nix4
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix5
-rw-r--r--pkgs/desktops/rox/rox-filer/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix1
-rw-r--r--pkgs/desktops/xfce4-14/tumbler/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/xfburn/default.nix1
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-terminal/default.nix4
188 files changed, 2000 insertions, 811 deletions
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
index 19089a6b050..da217186e27 100644
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/dde-daemon/default.nix
@@ -115,7 +115,7 @@ buildGoPackage rec {
   postFixup = ''
     # wrapGAppsHook does not work with binaries outside of $out/bin or $out/libexec
     for binary in $out/lib/deepin-daemon/*; do
-      wrapProgram $binary "''${gappsWrapperArgs[@]}"
+      wrapGApp "$binary"
     done
 
     searchHardCodedPaths $out  # debugging
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
index d6713fb3688..bad409303d9 100644
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ b/pkgs/desktops/deepin/dde-session-ui/default.nix
@@ -1,7 +1,7 @@
 { stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dbus, dde-daemon,
   dde-qt-dbus-factory, deepin, deepin-desktop-schemas,
   deepin-gettext-tools, deepin-icon-theme, deepin-wallpapers, dtkcore,
-  dtkwidget, gnugrep, gsettings-qt, hicolor-icon-theme, lightdm_qt,
+  dtkwidget, gnugrep, gsettings-qt, lightdm_qt,
   onboard, qtsvg, qttools, qtx11extras, setxkbmap, utillinux, which,
   xkeyboard_config, xorg, xrandr, wrapGAppsHook }:
 
@@ -36,7 +36,6 @@ mkDerivation rec {
     dtkwidget
     gnugrep
     gsettings-qt
-    hicolor-icon-theme
     lightdm_qt
     onboard
     qtsvg
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index e63a228d0cb..51b67e05554 100644
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gtk3, xcursorgen, papirus-icon-theme, deepin }:
+{ stdenv, fetchFromGitHub, gtk3, xcursorgen, papirus-icon-theme, deepin, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "deepin-icon-theme";
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ papirus-icon-theme ];
 
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
   postPatch = ''
     patchShebangs tools/hicolor.links
     patchShebangs tools/display_unused_links.sh
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index 59789bd84bb..bb2ab7bc8a1 100644
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala,
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_44,
   gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib,
   libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1,
-  libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux,
+  libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux, gnutls, pcre2,
   libsepol, utillinux, deepin-menu, deepin-shortcut-viewer, deepin, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     pkgconfig
     cmake
     ninja
-    vala
+    vala_0_44 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body
     gettext
     libselinux libsepol utillinux # required by gio
     deepin.setupHook
@@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
     pcre
     vte
     wnck
+    gnutls
+    pcre2
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 869f08154bb..61db4ca0571 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -39,7 +39,7 @@ let
     deepin-turbo = callPackage ./deepin-turbo { };
     deepin-wallpapers = callPackage ./deepin-wallpapers { };
     deepin-wm = callPackage ./deepin-wm {
-      vala = pkgs.vala_0_42;
+      vala = pkgs.vala_0_40;
     };
     dpa-ext-gnomekeyring = callPackage ./dpa-ext-gnomekeyring { };
     dtkcore = callPackage ./dtkcore { };
diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix
index 1876cce6c8a..5e3763c9a6d 100644
--- a/pkgs/desktops/enlightenment/efl.nix
+++ b/pkgs/desktops/enlightenment/efl.nix
@@ -1,33 +1,94 @@
-{ stdenv, fetchurl, pkgconfig, openssl, libjpeg, zlib, lz4, freetype, fontconfig
-, fribidi, SDL2, SDL, libGL, giflib, libpng, libtiff, glib, gst_all_1, libpulseaudio
-, libsndfile, xorg, libdrm, libxkbcommon, udev, utillinux, bullet, luajit
-, python27Packages, openjpeg, doxygen, expat, harfbuzz, jbig2dec, librsvg
-, dbus, alsaLib, poppler, ghostscript, libraw, libspectre, xineLib, libwebp
-, curl, libinput, systemd, mesa, writeText, gtk3
+{ stdenv, fetchurl, pkgconfig, SDL, SDL2, alsaLib, bullet, curl, dbus,
+  doxygen, expat, fontconfig, freetype, fribidi, ghostscript, giflib,
+  glib, gst_all_1, gtk3, harfbuzz, jbig2dec, libGL, libdrm, libinput,
+  libjpeg, libpng, libpulseaudio, libraw, librsvg, libsndfile,
+  libspectre, libtiff, libwebp, libxkbcommon, luajit, lz4, mesa,
+  openjpeg, openssl, poppler, python27Packages, systemd, udev,
+  utillinux, writeText, xineLib, xorg, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "efl";
-  version = "1.22.3";
+  version = "1.22.5";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1j1i8cwq4ym9z34ikv35mdmv5q7q69hdp494mc6l03g9n6cl2yky";
+    sha256 = "1cjk56z0whpzcqwg3xdq23kyp1g83xa67m9dlp7ywmb36bn4ca59";
   };
 
-  nativeBuildInputs = [ pkgconfig gtk3 ];
+  nativeBuildInputs = [
+    gtk3
+    pkgconfig
+  ];
 
-  buildInputs = [ openssl zlib lz4 freetype fontconfig SDL libGL mesa
-    giflib libpng libtiff glib gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-    gst_all_1.gst-libav libpulseaudio libsndfile xorg.libXcursor xorg.xorgproto
-    xorg.libX11 udev systemd ];
+  buildInputs = [
+    SDL
+    fontconfig
+    freetype
+    giflib
+    glib
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gstreamer
+    libGL
+    libpng
+    libpulseaudio
+    libsndfile
+    libtiff
+    lz4
+    mesa
+    openssl
+    systemd
+    udev
+    xorg.libX11
+    xorg.libXcursor
+    xorg.xorgproto
+    zlib
+  ];
 
-  propagatedBuildInputs = [ libxkbcommon python27Packages.dbus-python dbus libjpeg xorg.libXcomposite
-    xorg.libXdamage xorg.libXinerama xorg.libXp xorg.libXtst xorg.libXi xorg.libXext
-    bullet xorg.libXScrnSaver xorg.libXrender xorg.libXfixes xorg.libXrandr
-    xorg.libxkbfile xorg.libxcb xorg.xcbutilkeysyms openjpeg doxygen expat luajit
-    harfbuzz jbig2dec librsvg dbus alsaLib poppler ghostscript libraw libspectre xineLib libwebp curl libdrm
-    libinput utillinux fribidi SDL2 ];
+  propagatedBuildInputs = [
+    SDL2
+    alsaLib
+    bullet
+    curl
+    dbus
+    dbus
+    doxygen
+    expat
+    fribidi
+    ghostscript
+    harfbuzz
+    jbig2dec
+    libdrm
+    libinput
+    libjpeg
+    libraw
+    librsvg
+    libspectre
+    libwebp
+    libxkbcommon
+    luajit
+    openjpeg
+    poppler
+    python27Packages.dbus-python
+    utillinux
+    xineLib
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXinerama
+    xorg.libXp
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+    xorg.libxkbfile
+    xorg.xcbutilkeysyms
+  ];
 
   # ac_ct_CXX must be set to random value, because then it skips some magic which does alternative searching for g++
   configureFlags = [
diff --git a/pkgs/desktops/enlightenment/enlightenment.nix b/pkgs/desktops/enlightenment/enlightenment.nix
index b2a9d398709..99d1236ea88 100644
--- a/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/pkgs/desktops/enlightenment/enlightenment.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, efl,
-  xcbutilkeysyms, libXrandr, libXdmcp, libxcb, libffi, pam, alsaLib,
-  luajit, bzip2, libpthreadstubs, gdbm, libcap, mesa,
-  xkeyboard_config, pcre,
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, alsaLib, bc,
+  bzip2, efl, gdbm, libXdmcp, libXrandr, libcap, libffi,
+  libpthreadstubs, libxcb, luajit, mesa, pam, pcre, xcbutilkeysyms,
+  xkeyboard_config,
 
   bluetoothSupport ? true, bluez5,
   pulseSupport ? !stdenv.isDarwin, libpulseaudio,
@@ -9,35 +9,36 @@
 
 stdenv.mkDerivation rec {
   pname = "enlightenment";
-  version = "0.23.0";
+  version = "0.23.1";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1y7x594gvyvl5zbb1rnf3clj2pm6j97n8wl5mp9x6xjmhx0d1idq";
+    sha256 = "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75";
   };
 
   nativeBuildInputs = [
-    meson
-    ninja
     (pkgconfig.override { vanilla = true; })
     gettext
+    meson
+    ninja
   ];
 
   buildInputs = [
+    alsaLib
+    bc  # for the Everything module calculator mode
+    bzip2
     efl
+    gdbm
     libXdmcp
-    libxcb
-    xcbutilkeysyms
     libXrandr
     libffi
-    pam
-    alsaLib
-    luajit
-    bzip2
     libpthreadstubs
-    gdbm
-    pcre
+    libxcb
+    luajit
     mesa
+    pam
+    pcre
+    xcbutilkeysyms
     xkeyboard_config
   ]
   ++ stdenv.lib.optional stdenv.isLinux libcap
@@ -68,6 +69,9 @@ stdenv.mkDerivation rec {
 
     substituteInPlace src/bin/e_import_config_dialog.c \
       --replace "e_prefix_bin_get()" "\"${efl}/bin\""
+
+    substituteInPlace src/modules/everything/evry_plug_calc.c \
+      --replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
   '';
 
   mesonFlags = [ "-Dsystemdunitdir=lib/systemd/user" ];
diff --git a/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 9a70319952c..c801657f74b 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.32.3";
+  version = "3.34.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ark4qkfvdggz2mbksq12iq55izdsjnkjqkvfnnkf4k5vfpa95y5";
+    sha256 = "1awf7fcm52r23s51gllyybhywf2kljqkaw4znblajph9sawnfs3l";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,7 @@
     pyatspi
     pycairo
     pygobject3
+    setuptools
     xlib
   ];
 
diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix
index b18e58f6f56..b3bb1e1093c 100644
--- a/pkgs/desktops/gnome-3/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix
@@ -1,39 +1,41 @@
-{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra-gtk3
+{ stdenv, gettext, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra-gtk3
 , pkgconfig, gtk3, glib, clutter-gtk, clutter-gst, udev, gst_all_1, itstool
-, libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib
+, libgudev, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib
 , libxslt, yelp-tools, gnome-common, gtk-doc
-, adwaita-icon-theme, librsvg, totem, gdk-pixbuf, gnome3, gnome-desktop, libxml2 }:
+, adwaita-icon-theme, librsvg, totem, gdk-pixbuf, gnome3, gnome-desktop, libxml2
+, meson, ninja, dbus, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "cheese";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/cheese/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv";
+    sha256 = "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni";
   };
 
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript { packageName = "cheese"; attrPath = "gnome3.cheese"; };
   };
 
   nativeBuildInputs = [
-    pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib
+    meson ninja pkgconfig gettext itstool vala wrapGAppsHook libxml2 appstream-glib
     libxslt docbook_xml_dtd_43 docbook_xsl
-    autoreconfHook gtk-doc yelp-tools gnome-common
+    gtk-doc yelp-tools gnome-common python3
   ];
   buildInputs = [ gtk3 glib gnome-video-effects
                   gdk-pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer
                   gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome-desktop
                   gst_all_1.gst-plugins-bad clutter-gtk clutter-gst
-                  libcanberra-gtk3 libgudev ];
+                  libcanberra-gtk3 libgudev dbus ];
 
   outputs = [ "out" "man" "devdoc" ];
 
-  patches = [
-    gtk-doc.respect_xml_catalog_files_var_patch
-  ];
-
   preFixup = ''
     gappsWrapperArgs+=(
       # Effects
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index 2061fc26607..701f894939e 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -10,7 +10,7 @@
 , gtk3
 , glib
 , libnotify
-, gtkspell3
+, gspell
 , evolution-data-server
 , adwaita-icon-theme
 , gnome-desktop
@@ -38,15 +38,16 @@
 , procps
 , p11-kit
 , openldap
+, spamassassin
 }:
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.32.4";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh";
+    sha256 = "0hmxz3b9paqlpfjpqn379a8c01z3gb8lz0jgxxpgn6iygzfr4sk5";
   };
 
   nativeBuildInputs = [
@@ -73,7 +74,7 @@ stdenv.mkDerivation rec {
     gst_all_1.gst-plugins-base
     gst_all_1.gstreamer
     gtk3
-    gtkspell3
+    gspell
     highlight
     icu
     libcanberra-gtk3
@@ -102,6 +103,10 @@ stdenv.mkDerivation rec {
     "-DENABLE_LIBCRYPTUI=OFF"
     "-DENABLE_PST_IMPORT=OFF"
     "-DENABLE_YTNEF=OFF"
+    "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin"
+    "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn"
+    "-DWITH_BOGOFILTER=${bogofilter}/bin/bogofilter"
+    "-DWITH_OPENLDAP=${openldap}"
   ];
 
   requiredSystemFeatures = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 267a7f2f7d2..36b89a31052 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.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0irm72cf8222h93skivn0nn0ckahiiiimy4rb9r3ccjvhi3hiaqw";
+    sha256 = "0w8s6hakgsvb2nqwbv0lr8ki4cbf1pz5z3qwkb0b2k7ppbh7j2n6";
   };
 
   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 35d97a87a86..5115c2d8fb4 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gedit";
-  version = "3.32.2";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gedit/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl";
+    sha256 = "0zjh3p3lns7a7kx3g3v7gkgcqdzyx1zyv8ssr6d5ljfb7hfyb59y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/ghex/default.nix b/pkgs/desktops/gnome-3/apps/ghex/default.nix
index f776f4dbe5a..0998dbd069d 100644
--- a/pkgs/desktops/gnome-3/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome-3/apps/ghex/default.nix
@@ -6,7 +6,6 @@
 , ninja
 , python3
 , gnome3
-, hicolor-icon-theme
 , desktop-file-utils
 , appstream-glib
 , gettext
@@ -32,7 +31,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     desktop-file-utils
     gettext
-    hicolor-icon-theme # for setup-hook
     itstool
     meson
     ninja
diff --git a/pkgs/desktops/gnome-3/apps/gnome-books/default.nix b/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
index 25ee957224c..628442c3075 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-books/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-books";
-  version = "3.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1wkcywcwwszj9mldr0lngczqdz7hys08rr1nd2k6rs8ykzs2z7m4";
+    sha256 = "153vknqisjn5f105avzm933fsc3v0pjzzbwxlqxf8vjjksh1cmya";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index 2f0a21896e9..c48e6a7446f 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -6,17 +6,15 @@
 , libcap_ng, numactl, xen, libapparmor, json-glib, webkitgtk, vte
 }:
 
-# TODO: ovirt (optional)
-
 let
-  version = "3.32.1";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   pname = "gnome-boxes";
   inherit version;
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "159sxii3g4s5pjb4s4i3kc4q162w5vicp4g6wvk1y2yv68bgmcl4";
+    sha256 = "1758k5b79kyywdg67b4byqhva9045i13lzg5r62my950c4c2p0pc";
   };
 
   doCheck = true;
@@ -40,10 +38,6 @@ in stdenv.mkDerivation rec {
     gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ mtools cdrkit libcdio ]}")
   '';
 
-  mesonFlags = [
-    "-Dovirt=false"
-  ];
-
   postPatch = ''
     chmod +x build-aux/post_install.py # patchShebangs requires executable file
     patchShebangs build-aux/post_install.py
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 03619f38c9b..f1c2c7617b8 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-calendar";
-  version = "3.32.2";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k";
+    sha256 = "1qlh7vx5v4mys3rhpaczngpg0zp8apachnz2j9h3ab7ywcippm7y";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index ac1e9ee85c0..9e44573d2e3 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
       sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
         -i $file
 
-      wrapProgram $file "''${gappsWrapperArgs[@]}"
+      wrapGApp "$file"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 38182f1f994..a99e775b26b 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-clocks";
-  version = "3.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-clocks/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc";
+    sha256 = "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index 1301381e5aa..3a7e1473332 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-documents";
-  version = "3.32.0";
+  version = "3.33.90";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-documents/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1gqddzbr4d8s0asmrhy0sfmwggzhbmpm61mqf8rxpdjk7s26086c";
+    sha256 = "0l9g10i380bnjp1y3pslsy8ph1hd5x1d57dadvq70p5ki4r3qjaw";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index 655e9e9fe34..bb4e1820807 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-getting-started-docs";
-  version = "3.32.2";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-getting-started-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq";
+    sha256 = "1nq3dvvjr6vzl87p0y2ggv8bxap3hdbwhbn9ycan4y5d4g5f437p";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 8681a3c866c..c80238740e5 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, glib, gtk3, wrapGAppsHook, desktop-file-utils
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, glib, gtk3, wrapGAppsHook
 , gettext, itstool, libxml2, libxslt, docbook_xsl, docbook_xml_dtd_43, systemd, python3, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-logs";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-logs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hh3nnbq7q2xbflvaywanm0j3dqhb04ngphskhnjx2sg7px12068";
+    sha256 = "16jfwg912asirrdmipf6wh7zr5zrww3nyhf99mi230y8hmqazx0m";
   };
 
   mesonFlags = [
-    "-Dtests=true"
     "-Dman=true"
   ];
 
   nativeBuildInputs = [
     python3
-    meson ninja pkgconfig wrapGAppsHook gettext itstool desktop-file-utils
+    meson ninja pkgconfig wrapGAppsHook gettext itstool
     libxml2 libxslt docbook_xsl docbook_xml_dtd_43
   ];
   buildInputs = [ glib gtk3 systemd gsettings-desktop-schemas gnome3.adwaita-icon-theme ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index 6011092c0e0..49b44f5f283 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.32.2.1";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1m191iq1gjaqz79ci3dkbmwrkxp7pzknngimlf5bqib5x8yairlb";
+    sha256 = "03nswj60lqznr2j3ld2lgjzr4j9x2gblqx2ip4l2yxnm9kgbm14s";
   };
 
   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 9b8c96729ad..204d0a8982e 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.32.2";
+  version = "3.34.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0cn7l1d3ayima1w3bxpshijabd7ibhnvqxv2mpvffzizk04ln6hk";
+    sha256 = "1a566ifx08clfm22qzdh1i6w8cr2kv7avqzkk6zgc5adba0vmzx4";
   };
 
   nativeBuildInputs = [ meson ninja gettext itstool pkgconfig libxml2 wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
diff --git a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 920343a6024..a6bc54fd86b 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -5,14 +5,14 @@
 , gnome3, libxml2, gsettings-desktop-schemas, tracker }:
 
 let
-  version = "3.32.2";
+  version = "3.34.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 = "0chm2fks7cpx3mycxzddpj6v9by203c3m1y6zns5ra43bspwafy2";
+    sha256 = "0wrnsspcg4s0vdfc23cc84xy02k3b19yim9s4k0vv23b69n37n1l";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
index 907c0424454..3996a2e7564 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-sound-recorder/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, pkgconfig, gettext, gobject-introspection, wrapGAppsHook, gjs, glib, gtk3, gdk-pixbuf, gst_all_1, gnome3
-, meson, ninja, python3, hicolor-icon-theme, desktop-file-utils }:
+, meson, ninja, python3, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-sound-recorder";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0q83b6dabckmwj8mcw0wvhbxaszwdzzcf8ajx5bldll3lyl5yh2b";
+    sha256 = "1i442qas2dkp5d9j9j1z1jicb4cb7jkgbcl4c36bmhvaq3hddwa9";
   };
 
   nativeBuildInputs = [
     pkgconfig gettext meson ninja gobject-introspection
-    wrapGAppsHook python3 hicolor-icon-theme desktop-file-utils
+    wrapGAppsHook python3 desktop-file-utils
   ];
   buildInputs = [ gjs glib gtk3 gdk-pixbuf ] ++ (with gst_all_1; [ gstreamer.dev gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]);
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
index dbbbb43659b..f5c4eedc48d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-todo/default.nix
@@ -31,10 +31,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    # fix build with e-d-s 3.32
+    # fix build with libecal 2.0
     (fetchpatch {
-      url = https://gitlab.gnome.org/GNOME/gnome-todo/commit/6cdabc4dd0c6c804a093b94c269461ce376fed4f.patch;
-      sha256 = "08ldgyxv9216dgr8y9asqd7j2y82y9yqnqhkqaxc9i8a67yz1gzy";
+      name = "gnome-todo-eds-libecal-2.0.patch";
+      url = "https://src.fedoraproject.org/rpms/gnome-todo/raw/bed44b8530f3c79589982e03b430b3a125e9bceb/f/gnome-todo-eds-libecal-2.0.patch";
+      sha256 = "1ghrz973skal36j90wm2z13m3panw983r6y0k7z9gpj5lxgz92mq";
     })
   ];
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
index 1e5a641f08f..c71baa146d1 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-weather";
-  version = "3.32.2";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-weather/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0jfxdfbjkrk3x48w6nxgbmazd6jw1fh4mfw12hlly4rs0cjw698s";
+    sha256 = "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja wrapGAppsHook python3 ];
diff --git a/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
deleted file mode 100644
index 7ac8b4dfe11..00000000000
--- a/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, meson, ninja, glib, pkgconfig, gnome3, appstream-glib, gettext }:
-
-let
-  pname = "nautilus-sendto";
-  version = "3.8.6";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/3.8/${name}.tar.xz";
-    sha256 = "164d7c6e8bae29c4579bcc67a7bf50d783662b1545b62f3008e7ea3c0410e04d";
-  };
-
-  nativeBuildInputs = [ meson ninja pkgconfig appstream-glib gettext ];
-  buildInputs = [ glib ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "Integrates Evolution and Pidgin into the Nautilus file manager";
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index 51fea63b714..0202821f7d5 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "polari";
-  version = "3.32.2";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp";
+    sha256 = "09g2ylx2fwm55h28w0c03fxkdvlwmr2yc033m93c4acz1h30rjns";
   };
 
   propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index a1bcb406eb3..c6d5b22f934 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -1,30 +1,65 @@
-{ stdenv, fetchurl, vala, meson, ninja, libpwquality
-, pkgconfig, gtk3, glib, gobject-introspection
-, wrapGAppsHook, itstool, gnupg, libsoup
-, gnome3, gpgme, python3, openldap, gcr
-, libsecret, avahi, p11-kit, openssh, gsettings-desktop-schemas }:
+{ stdenv
+, fetchurl
+, fetchpatch
+, vala
+, meson
+, ninja
+, libpwquality
+, pkgconfig
+, gtk3
+, glib
+, wrapGAppsHook
+, itstool
+, gnupg
+, libsoup
+, gnome3
+, gpgme
+, python3
+, openldap
+, gcr
+, libsecret
+, avahi
+, p11-kit
+, openssh
+, gsettings-desktop-schemas
+}:
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.32.2";
+  version = "3.34";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x";
+    sha256 = "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v";
   };
 
   doCheck = true;
 
   nativeBuildInputs = [
-    meson ninja pkgconfig vala itstool wrapGAppsHook
-    python3 gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    vala
+    itstool
+    wrapGAppsHook
+    python3
   ];
+
   buildInputs = [
-    gtk3 glib gcr
-    gsettings-desktop-schemas gnupg
-    gnome3.adwaita-icon-theme gpgme
-    libsecret avahi libsoup p11-kit
-    openssh openldap libpwquality
+    gtk3
+    glib
+    gcr
+    gsettings-desktop-schemas
+    gnupg
+    gnome3.adwaita-icon-theme
+    gpgme
+    libsecret
+    avahi
+    libsoup
+    p11-kit
+    openssh
+    openldap
+    libpwquality
   ];
 
   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 a7f4a637b17..d2f161f23b4 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/adwaita-icon-theme/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9";
+    sha256 = "0zvwikj3a07i3g3rir4cc63b14822lrzzgprs1j2nmb3h8gykds0";
   };
 
   # For convenience, we can specify adwaita-icon-theme only in packages
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index 4734a0e96b8..5817d8ff942 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "baobab";
-  version = "3.32.0";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r";
+    sha256 = "01w6m5ylyqs4wslpjn1hg6n6ynwh3rghksak0qs8r9m6dm3dkss6";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 7f4f84fa5fe..c7a126034f2 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -1,21 +1,20 @@
 { stdenv, fetchurl, meson, ninja, vala, libxslt, pkgconfig, glib, gtk3, gnome3, python3
-, libxml2, gettext, docbook_xsl, hicolor-icon-theme, wrapGAppsHook, gobject-introspection }:
+, libxml2, gettext, docbook_xsl, wrapGAppsHook, gobject-introspection }:
 
 let
   pname = "dconf-editor";
-  version = "3.32.0";
+  version = "3.34.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi";
+    sha256 = "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f";
   };
 
   nativeBuildInputs = [
     meson ninja vala libxslt pkgconfig wrapGAppsHook
     gettext docbook_xsl libxml2 gobject-introspection python3
-    hicolor-icon-theme # for setup-hook
   ];
 
   buildInputs = [ glib gtk3 gnome3.dconf ];
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index 43f8dd08dbf..7ce498da9f3 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -6,20 +6,14 @@ let
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "0.32.0";
+  version = "0.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38";
+    sha256 = "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll";
   };
 
   patches = [
-    # Fix the build on Darwin
-    # Issue: https://gitlab.gnome.org/GNOME/dconf/issues/47
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/dconf/commit/49f4d916e1151af3975df52c522c69de98ed2fbb.patch";
-      sha256 = "00klkr1jzli9ap0aj6399m1bj2bxxz48pmcj4r16dsy6dfdl6325";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 8bb727a6fc5..e8f4663ad30 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.32.2";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy";
+    sha256 = "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x";
   };
 
   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 c52162ce7f1..bfcf01591e5 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -1,32 +1,90 @@
-{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig, gtk3, glib, icu
-, wrapGAppsHook, gnome3, libxml2, libxslt, itstool
-, webkitgtk, libsoup, glib-networking, libsecret, gnome-desktop, libnotify, p11-kit
-, sqlite, gcr, isocodes, desktop-file-utils, python3, nettle
-, gdk-pixbuf, gst_all_1, json-glib, libdazzle, libhandy }:
+{ stdenv
+, meson
+, ninja
+, gettext
+, fetchurl
+, pkgconfig
+, gtk3
+, glib
+, icu
+, wrapGAppsHook
+, gnome3
+, libxml2
+, libxslt
+, itstool
+, webkitgtk
+, libsoup
+, glib-networking
+, libsecret
+, gnome-desktop
+, libnotify
+, p11-kit
+, sqlite
+, gcr
+, isocodes
+, desktop-file-utils
+, python3
+, nettle
+, gdk-pixbuf
+, gst_all_1
+, json-glib
+, libdazzle
+, libhandy
+}:
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "3.32.4";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15d9s295yr6m9pbwh344c4akm7rgn19y4g1xkyn7gbq1hdbjia69";
+    sha256 = "1nf1pqv3pdgrlq7fbic06rl3731dx5ihpfsphpai9grcmnbwjyx0";
   };
 
   # Tests need an X display
-  mesonFlags = [ "-Dunit_tests=disabled" ];
+  mesonFlags = [
+    "-Dunit_tests=disabled"
+  ];
 
   nativeBuildInputs = [
-    meson ninja libxslt pkgconfig itstool gettext wrapGAppsHook desktop-file-utils python3
+    desktop-file-utils
+    gettext
+    itstool
+    libxslt
+    meson
+    ninja
+    pkgconfig
+    python3
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    gtk3 glib webkitgtk libsoup libxml2 libsecret gnome-desktop libnotify
-    sqlite isocodes p11-kit icu libhandy
-    gdk-pixbuf gnome3.adwaita-icon-theme gcr
-    glib-networking gst_all_1.gstreamer gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly
-    gst_all_1.gst-libav json-glib libdazzle nettle
+    gcr
+    gdk-pixbuf
+    glib
+    glib-networking
+    gnome-desktop
+    gnome3.adwaita-icon-theme
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-ugly
+    gst_all_1.gstreamer
+    gtk3
+    icu
+    isocodes
+    json-glib
+    libdazzle
+    libhandy
+    libnotify
+    libsecret
+    libsoup
+    libxml2
+    nettle
+    p11-kit
+    sqlite
+    webkitgtk
   ];
 
   postPatch = ''
@@ -36,7 +94,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome3.updateScript {
-      packageName = "epiphany";
+      packageName = pname;
     };
   };
 
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index 9313ca8990c..61f27f10ae1 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -1,6 +1,5 @@
-{ fetchFromGitLab
-, stdenv
-, fetchpatch
+{ stdenv
+, fetchurl
 , meson
 , ninja
 , pkgconfig
@@ -34,6 +33,9 @@
 , texlive
 , t1lib
 , gst_all_1
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
 , supportMultimedia ? true # PDF multimedia
 , libgxps
 , supportXPS ? true # Open XML Paper Specification via libgxps
@@ -41,24 +43,14 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.32.0";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = pname;
-    rev = version;
-    sha256 = "1klq8j70q8r8hyqv1wi6jcx8g76yh46bh8614y82zzggn4cx6y3r";
-  };
+  version = "3.34.1";
 
+  outputs = [ "out" "dev" "devdoc" ];
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2019-11459.patch";
-      url = "https://gitlab.gnome.org/GNOME/evince/commit/3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7.patch";
-      sha256 = "1ds6iwr2r9i86nwrly8cx7p1kbvf1gljjplcffa67znxqmwx4n74";
-    })
-  ];
+  src = fetchurl {
+    url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1pr6fvbaam1mzxjwyqd53hcxzdjzf73idn10j4j7n54nwg6hgr45";
+  };
 
   postPatch = ''
     chmod +x meson_post_install.py
@@ -66,39 +58,42 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
+    appstream
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+    gettext
+    gobject-introspection
+    gtk-doc
+    itstool
     meson
     ninja
     pkgconfig
-    gobject-introspection
-    gettext
-    itstool
-    yelp-tools
-    appstream
-    wrapGAppsHook
     python3
+    wrapGAppsHook
+    yelp-tools
   ];
 
   buildInputs = [
-    glib
-    gtk3
-    pango
+    adwaita-icon-theme
     atk
+    dbus # only needed to find the service directory
+    djvulibre
     gdk-pixbuf
-    libxml2
-    gsettings-desktop-schemas
-    poppler
     ghostscriptX
-    djvulibre
-    libspectre
+    glib
+    gnome-desktop
+    gsettings-desktop-schemas
+    gspell
+    gtk3
     libarchive
-    libsecret
     librsvg
-    adwaita-icon-theme
-    gspell
-    gnome-desktop
-    dbus # only needed to find the service directory
-    texlive.bin.core # kpathsea for DVI support
+    libsecret
+    libspectre
+    libxml2
+    pango
+    poppler
     t1lib
+    texlive.bin.core # kpathsea for DVI support
   ] ++ stdenv.lib.optional supportXPS libgxps
     ++ stdenv.lib.optionals supportMultimedia (with gst_all_1; [
       gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
@@ -106,7 +101,6 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dnautilus=false"
     "-Dps=enabled"
-    "-Dgtk_doc=false"
   ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
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 0048b02581a..fa70ecea264 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.32.4";
+  version = "3.34.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3";
+    sha256 = "1gisymfjhkibqy73pmd0d3fwl43a23d0lvlxzqkycfdn9jh6pxbg";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index a4d2fd2be5a..9d1602dfccd 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -1,15 +1,29 @@
 { stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg
 , accountsservice, libX11, gnome3, systemd, autoreconfHook
 , gtk3, libcanberra-gtk3, pam, libtool, gobject-introspection, plymouth
-, librsvg, coreutils, xwayland }:
+, librsvg, coreutils, xwayland, nixos-icons, fetchpatch }:
+
+let
+
+  icon = fetchurl {
+    url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/4f041870efa1a6f0799ef4b32bb7be2cafee7a74/logo/nixos.svg";
+    sha256 = "0b0dj408c1wxmzy6k0pjwc4bzwq286f1334s3cqqwdwjshxskshk";
+  };
+
+  override = substituteAll {
+    src = ./org.gnome.login-screen.gschema.override;
+    inherit icon;
+  };
+
+in
 
 stdenv.mkDerivation rec {
   pname = "gdm";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4";
+    sha256 = "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8";
   };
 
   # Only needed to make it build
@@ -17,12 +31,14 @@ stdenv.mkDerivation rec {
     substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver.out}/bin/X"
   '';
 
+  initialVT = "7";
+
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-plymouth=yes"
     "--enable-gdm-xsession"
-    "--with-initial-vt=7"
+    "--with-initial-vt=${initialVT}"
     "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
     "--with-udevdir=$(out)/lib/udev"
   ];
@@ -65,6 +81,11 @@ stdenv.mkDerivation rec {
     "dbusconfdir=$(out)/etc/dbus-1/system.d"
   ];
 
+  preInstall = ''
+    schema_dir=${glib.makeSchemaPath "$out" "${pname}-${version}"}
+    install -D ${override} $schema_dir/org.gnome.login-screen.gschema.override
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = "gdm";
diff --git a/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override b/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
new file mode 100644
index 00000000000..8c17f494b0f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/org.gnome.login-screen.gschema.override
@@ -0,0 +1,2 @@
+[org.gnome.login-screen]
+logo='@icon@'
diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix
index 303377b8631..b0c1e2d3077 100644
--- a/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gjs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.56.2";
+  version = "1.58.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac";
+    sha256 = "1xf68rbagkflb9yi3visfw8cbxqlzd717y8jakgw0y6whzm1dpxl";
   };
 
   passthru = {
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "installedTests" ];
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
-  buildInputs = [ libxml2 gobject-introspection gtk3 glib pango readline dbus ];
+  buildInputs = [ libxml2 gobject-introspection glib pango readline dbus ];
 
   propagatedBuildInputs = [ spidermonkey_60 ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
index e4c772cb1d4..4b91b3219be 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-backgrounds/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz";
+    sha256 = "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
index 817c8324c6b..b52161f90ae 100644
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
@@ -6,14 +6,14 @@ let
   pname = "gnome-bluetooth";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "3.32.1";
+  version = "3.34.0";
 
   # TODO: split out "lib"
   outputs = [ "out" "dev" "devdoc" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4";
+    sha256 = "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index df43371a497..cabe7c9ca74 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -1,14 +1,14 @@
 { stdenv, meson, ninja, vala, gettext, itstool, fetchurl, pkgconfig, libxml2
 , gtk3, glib, gtksourceview4, wrapGAppsHook, gobject-introspection, python3
-, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas }:
+, gnome3, mpfr, gmp, libsoup, libmpc, gsettings-desktop-schemas, libgee }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-calculator";
-  version = "3.32.2";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calculator/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41";
+    sha256 = "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd";
   };
 
   nativeBuildInputs = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3 glib libxml2 gtksourceview4 mpfr gmp
-    gnome3.adwaita-icon-theme
+    gnome3.adwaita-icon-theme libgee
     gsettings-desktop-schemas libsoup libmpc
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
index bcc8871bcf1..200d038d0fb 100644
--- a/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-color-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2, hicolor-icon-theme }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2 }:
 
 let
   pname = "gnome-color-manager";
@@ -13,8 +13,6 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     meson ninja pkgconfig gettext itstool desktop-file-utils
-    # setup-hook
-    hicolor-icon-theme
   ];
 
   buildInputs = [ glib gtk3 libexif libtiff colord colord-gtk libcanberra-gtk3 lcms2 vte exiv2 ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index 75a15a41f97..01127853a86 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -5,14 +5,14 @@
 , vala, meson, ninja, libhandy, gsettings-desktop-schemas }:
 
 let
-  version = "3.32.1";
+  version = "3.34";
 in stdenv.mkDerivation rec {
   pname = "gnome-contacts";
   inherit version;
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy";
+    sha256 = "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
@@ -33,15 +33,6 @@ in stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # Fixes build with libhandy >= 0.0.10
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-contacts/commit/c5eee38cd2556403a640a0a4c11d36cbf9a5a798.patch";
-      sha256 = "0s2cl7z6b0x3ky4y28yyxc9x5zp4r3vqmvbhz5m2fm6830fyjg13";
-    })
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-contacts/commit/1f1500ca01098ffda6392f5ec9ce3a29a48a84b1.patch";
-      sha256 = "082zaaj2l5cgr2qy145x8yknja87r0vpigrhidal40041kd5nldg";
-    })
   ];
 
   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 04730f2370f..f94725eb3a6 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -67,11 +67,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.32.2";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs";
+    sha256 = "0pji9r8b81w3dl08frzxknrmhlyrh8xkdicf4iic8dj1apayr0jz";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 9d798c2811b..6770f3df850 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "3.32.2";
+  version = "3.34.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9";
+    sha256 = "0nnwc837k244gjsmx8wff5sfvm8xnhm8xr39qxk73lnscrbfpny1";
   };
 
   nativeBuildInputs = [
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 d6d9f927252..86739bb0f45 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -1,15 +1,15 @@
 { stdenv, gettext, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
 , meson, ninja, gtk3, glib, wrapGAppsHook, python3, libnotify
 , itstool, gnome3, libxml2, gsettings-desktop-schemas
-, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality }:
+, libcanberra-gtk3, libxslt, docbook_xsl, libpwquality, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg";
+    sha256 = "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y";
   };
 
   nativeBuildInputs = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3 glib libsecret libpwquality libnotify libdvdread libcanberra-gtk3
-    udisks2 gnome3.adwaita-icon-theme
+    udisks2 gnome3.adwaita-icon-theme systemd
     gnome3.gnome-settings-daemon gsettings-desktop-schemas
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
index 976829acd4c..0589dfe7285 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-font-viewer";
-  version = "3.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-font-viewer/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "10b150sa3971i5lfnk0jkkzlril97lz09sshwsbkabc8b7kv1qa3";
+    sha256 = "12xrsqwmvid7hksiw4zhj4jd1qwxn8w0czskbq4yqfprwn1havxa";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
new file mode 100644
index 00000000000..c6fd8658cde
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -0,0 +1,109 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, gettext
+, meson
+, ninja
+, pkgconfig
+, wrapGAppsHook
+, gnome3
+, accountsservice
+, fontconfig
+, gdm
+, geoclue2
+, geocode-glib
+, glib
+, gnome-desktop
+, gnome-getting-started-docs
+, gnome-online-accounts
+, gtk3
+, libgweather
+, json-glib
+, krb5
+, libpwquality
+, librest
+, libsecret
+, networkmanager
+, pango
+, polkit
+, webkitgtk
+, systemd
+, networkmanagerapplet
+, tzdata
+, yelp
+, libgnomekbd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-initial-setup";
+  version = "3.34.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "18dzx9z9bcfqfn1jivzm9m5lkcij1c9y8x77zlpxj733dgpi07z7";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    meson
+    ninja
+    pkgconfig
+    systemd
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    accountsservice
+    fontconfig
+    gdm
+    geoclue2
+    geocode-glib
+    glib
+    gnome-desktop
+    gnome-getting-started-docs
+    gnome-online-accounts
+    gtk3
+    json-glib
+    krb5
+    libgweather
+    libpwquality
+    librest
+    libsecret
+    networkmanager
+    pango
+    polkit
+    webkitgtk
+    networkmanagerapplet
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit tzdata libgnomekbd;
+      yelp = "${yelp}/bin/yelp"; # gnome-welcome-tour
+    })
+  ];
+
+  mesonFlags = [
+    "-Dregion-page=true"
+    "-Dcheese=disabled"
+    "-Dsoftware-sources=disabled"
+    "-Dibus=disabled"
+    "-Dvendor-conf-file=${./vendor.conf}"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Simple, easy, and safe way to prepare a new system";
+    homepage = "https://gitlab.gnome.org/GNOME/gnome-initial-setup";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
new file mode 100644
index 00000000000..94e14f688b3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/fix-paths.patch
@@ -0,0 +1,67 @@
+diff --git a/data/gnome-welcome-tour b/data/gnome-welcome-tour
+index c479296..3dd629c 100755
+--- a/data/gnome-welcome-tour
++++ b/data/gnome-welcome-tour
+@@ -3,7 +3,7 @@
+ cfgdir=${XDG_CONFIG_DIR:-$HOME/.config}
+ 
+ # Don't do anything if yelp isn't installed
+-yelp_path=$(which yelp 2>/dev/null)
++yelp_path=@yelp@
+ if test -z "${yelp_path}"; then
+     rm -f $cfgdir/run-welcome-tour
+     exit
+@@ -17,5 +17,5 @@ geometry=(1024, 709)
+ EOF
+ fi
+ 
+-yelp help:gnome-help/getting-started
++$yelp_path help:gnome-help/getting-started
+ rm -f $cfgdir/run-welcome-tour
+diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+index 1c34ef7..a1e7f93 100644
+--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
++++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
+@@ -177,9 +177,9 @@ preview_cb (GtkLabel       *label,
+ 		return TRUE;
+ 
+ 	if (variant[0])
+-		commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
++		commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
+ 	else
+-		commandline = g_strdup_printf ("gkbd-keyboard-display -l %s", layout);
++		commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s", layout);
+ 	g_spawn_command_line_async (commandline, NULL);
+ 	g_free (commandline);
+ 
+@@ -829,7 +829,7 @@ cc_input_chooser_class_init (CcInputChooserClass *klass)
+                 g_param_spec_string ("showing-extra", "", "", "",
+                                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+ 
+-	signals[CHANGED] = 
++	signals[CHANGED] =
+ 		g_signal_new ("changed",
+ 			      G_TYPE_FROM_CLASS (object_class),
+ 			      G_SIGNAL_RUN_FIRST,
+diff --git a/gnome-initial-setup/pages/timezone/tz.h b/gnome-initial-setup/pages/timezone/tz.h
+index 93905b3..e7ee785 100644
+--- a/gnome-initial-setup/pages/timezone/tz.h
++++ b/gnome-initial-setup/pages/timezone/tz.h
+@@ -4,7 +4,7 @@
+  * Copyright (C) 2000-2001 Ximian, Inc.
+  *
+  * Authors: Hans Petter Jansson <hpj@ximian.com>
+- * 
++ *
+  * Largely based on Michael Fulbright's work on Anaconda.
+  *
+  * This program is free software; you can redistribute it and/or modify
+@@ -28,7 +28,7 @@
+ #include <glib.h>
+ 
+ #ifndef __sun
+-#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
++#  define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
+ #else
+ #  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
+ #endif
diff --git a/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf b/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
new file mode 100644
index 00000000000..a06b37e100e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-initial-setup/vendor.conf
@@ -0,0 +1,5 @@
+# Disable pages not right for NixOS
+# For example user accounts should be preconfigured
+# and we can't modify system time with systemd.
+[pages]
+skip=account;software;password;timezone;
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 7817936bfda..fa960087f9b 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.31.91";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-keyring/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1fjylqw4xp0rqsylq4gbxzw1sql2sy55h1mnz1pprrxb9py0mnd4";
+    sha256 = "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
index 93da1f8abec..b21e3f6f68a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-online-miners";
-  version = "3.30.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-online-miners/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c";
+    sha256 = "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index 33acfd245cf..bf57fb809c6 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.32.0";
+  version = "3.33.90";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b";
+    sha256 = "0bki99lkp20jvp1yjymy8y56k378vivpvqvfwfx9dwl8r3qal7i2";
   };
 
   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 f13ad9f47aa..8aaf68ea1e3 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-session";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v";
+    sha256 = "0q366pns99f6wka5ikahqpasnsm72q9pg0c0nnfb2ld7spi1z06p";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
index fe4feaf7085..2399c656016 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
@@ -1,6 +1,6 @@
 --- a/gnome-session/gnome-session.in
 +++ b/gnome-session/gnome-session.in
-@@ -3,11 +3,11 @@
+@@ -3,11 +3,13 @@
  if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
     [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
     [  -n "$SHELL" ] &&
@@ -12,6 +12,8 @@
 +   ! (echo "$SHELL" | @grep@ -q "nologin"); then
    if [ "$1" != '-l' ]; then
 -    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++    # Make sure the shell actually sets up the environment
++    unset __NIXOS_SET_ENVIRONMENT_DONE
 +    exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
    else
      shift
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 b9f33ce73a8..aa8a42ceb21 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -27,6 +27,7 @@
 , libwacom
 , libxslt
 , libxml2
+, modemmanager
 , networkmanager
 , gnome-desktop
 , geocode-glib
@@ -35,15 +36,16 @@
 , python3
 , tzdata
 , nss
+, gcr
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-settings-daemon";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks";
+    sha256 = "0dvkq6pwrvqsm30wa965q0wf15v7nmnv6xfb9sli2sc62yc9gr3w";
   };
 
   patches = [
@@ -71,6 +73,7 @@ stdenv.mkDerivation rec {
     gtk3
     glib
     gsettings-desktop-schemas
+    modemmanager
     networkmanager
     libnotify
     libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
@@ -89,6 +92,7 @@ stdenv.mkDerivation rec {
     systemd
     libgudev
     libwacom
+    gcr
   ];
 
   mesonFlags = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
index 272656fae78..2229302cab7 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/fix-paths.patch
@@ -13,14 +13,3 @@
  
  typedef struct _TzDB TzDB;
  typedef struct _TzLocation TzLocation;
---- a/plugins/mouse/gsd-mouse-manager.c
-+++ b/plugins/mouse/gsd-mouse-manager.c
-@@ -118,7 +118,7 @@ set_mousetweaks_daemon (GsdMouseManager *manager,
-         gboolean run_daemon = dwell_click_enabled || secondary_click_enabled;
-
-         if (run_daemon || manager->priv->mousetweaks_daemon_running)
--                comm = g_strdup_printf ("mousetweaks %s",
-+                comm = g_strdup_printf ("@mousetweaks@/bin/mousetweaks %s",
-                                         run_daemon ? "" : "-s");
-         else
-                 return;
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 3d37040828c..dd88d4feea1 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_52, glib
+{ stdenv, fetchurl, meson, ninja, gettext, pkgconfig, spidermonkey_60, glib
 , gnome3, gnome-menus, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2";
+    sha256 = "1ayb48l2p3lji7b226027293jfclgcjmdb5dd6xfn67rhxm8zgzm";
   };
 
   passthru = {
     updateScript = gnome3.updateScript {
-      packageName = "gnome-shell-extensions";
-      attrPath = "gnome3.gnome-shell-extensions";
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
     };
   };
 
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = true;
-  # 52 is required for tests
-  # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.30.1/meson.build#L25
-  checkInputs = [ spidermonkey_52 ];
+  # 60 is required for tests
+  # https://gitlab.gnome.org/GNOME/gnome-shell-extensions/blob/3.34.0/meson.build#L23
+  checkInputs = [ spidermonkey_60 ];
 
   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 a1d8f2c599a..e8d5b7dbffd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -2,10 +2,11 @@
 , 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, caribou
+, libpulseaudio, libical, gobject-introspection, gstreamer, wrapGAppsHook, libxslt, gcr
 , accountsservice, gdk-pixbuf, gdm, upower, ibus, networkmanagerapplet, 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 }:
+, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
+, gnome-autoar, asciidoc-full }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
 
@@ -14,21 +15,21 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.32.2";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5";
+    sha256 = "07kd7wdk12nba33jfr44xqdlryiy86wgvsyjs8cw55y8p5cnbn6c";
   };
 
   LANG = "en_US.UTF-8";
 
   nativeBuildInputs = [
     meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
-    sassc desktop-file-utils libxslt.bin python3
+    sassc desktop-file-utils libxslt.bin python3 asciidoc-full
   ];
   buildInputs = [
-    systemd caribou
+    systemd
     gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
     libcroco libsecret libsoup polkit gdk-pixbuf librsvg
     clutter networkmanager libstartup_notification telepathy-glib
@@ -39,15 +40,11 @@ in stdenv.mkDerivation rec {
     at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
     gst_all_1.gst-plugins-good # recording
     gobject-introspection
+    gnome-autoar
 
     # not declared at build time, but typelib is needed at runtime
     libgweather networkmanagerapplet
   ];
-  propagatedUserEnvPkgs = [
-    # Needed to support on-screen keyboard used with touch screen devices
-    # see https://github.com/NixOS/nixpkgs/issues/25968
-    caribou
-  ];
 
   patches = [
     (fetchpatch {
@@ -58,6 +55,7 @@ in stdenv.mkDerivation rec {
     (substituteAll {
       src = ./fix-paths.patch;
       inherit libgnomekbd unzip;
+      gsettings = "${glib.bin}/bin/gsettings";
     })
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
index 3207af11088..7b93475619b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
@@ -11,12 +11,20 @@
                                            null);
 --- a/js/ui/status/keyboard.js
 +++ b/js/ui/status/keyboard.js
-@@ -1059,7 +1059,7 @@ class InputSourceIndicator extends PanelMenu.Button {
-         let description = xkbLayout;
+@@ -1062,6 +1062,6 @@ class InputSourceIndicator extends PanelMenu.Button {
          if (xkbVariant.length > 0)
-             description = description + '\t' + xkbVariant;
+             description = `${description}\t${xkbVariant}`;
  
 -        Util.spawn(['gkbd-keyboard-display', '-l', description]);
 +        Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
      }
  });
+--- a/data/gnome-shell-disable-extensions.service
++++ b/data/gnome-shell-disable-extensions.service
+@@ -10,5 +10,5 @@ Requisite=gnome-session-stable.timer
+ [Service]
+ Type=simple
+ # Disable extensions
+-ExecStart=gsettings set org.gnome.shell disable-user-extensions true
++ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
+ Restart=no
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 12081bbae5b..fb4114a524a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
 , glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobject-introspection, flatpak, fwupd
-, gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts, hicolor-icon-theme
+, gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts
 , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gtk-doc, desktop-file-utils }:
 
 let
@@ -11,11 +11,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "3.32.4";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0g30wdrpypj23npvx85wqh1i4a8bbg00ainz7wmsvry21hcny4d4";
+    sha256 = "1yd806dp1c51ym6sidbfafzcywkbxmzxbr4zz57i0yhfjmwr9mjx";
   };
 
   patches = [
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xml_dtd_42 docbook_xml_dtd_43
     valgrind-light docbook_xsl gtk-doc desktop-file-utils gobject-introspection
-    hicolor-icon-theme # for setup-hook
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 75d4b117e77..6c03b81d54b 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
-, desktop-file-utils, itstool, wrapGAppsHook, hicolor-icon-theme }:
+, desktop-file-utils, itstool, wrapGAppsHook, glib, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.32.2";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km";
+    sha256 = "06fqgyfzjqj5k3cr9ig6xa85ml7ifgwfj4gi9z5f0pyc62lwvzlg";
   };
 
   buildInputs = [
@@ -19,8 +19,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkgconfig intltool itstool which libxml2
-    vala desktop-file-utils wrapGAppsHook
-    hicolor-icon-theme # for setup-hook
+    vala desktop-file-utils wrapGAppsHook pcre2
   ];
 
   # Silly ./configure, it looks for dbus file from gnome-shell in the
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
index 7915e71a73c..cb0c1494b94 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "3.32.3";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig";
+    sha256 = "1v94mz8zwzx67db2avbi9p2klw36cz45qr6fbskpvygz2pzhg6cg";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
index 2a425acb067..6207dd42a61 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -1,6 +1,9 @@
 { stdenv
 , gettext
+, meson
+, ninja
 , fetchurl
+, fetchpatch
 , apacheHttpd
 , nautilus
 , pkgconfig
@@ -14,36 +17,55 @@
 , mod_dnssd
 , gnome3
 , libcanberra-gtk3
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-share";
-  version = "3.32.0.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16w6n0cjyzp8vln3zspvab8jhjprpvs88xc9x7bvigg0wry74945";
+    sha256 = "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x";
   };
 
+  patches = [
+    # fix gio-unix-2.0 lookup
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-user-share/commit/8772980d4732c15505b15dccff2ca3c97e96d49d.patch;
+      sha256 = "03clzhrx72pq1cbmg2y24hvw4i1xsvrg9ip113fi5bc3w4gcji7p";
+    })
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
   preConfigure = ''
     sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
       -e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
       -i data/dav_user_2.4.conf
   '';
 
-  configureFlags = [
-    "--with-httpd=${apacheHttpd.out}/bin/httpd"
-    "--with-modules-path=${apacheHttpd.dev}/modules"
-    "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
-    "--with-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0"
+  mesonFlags = [
+    "-Dhttpd=${apacheHttpd.out}/bin/httpd"
+    "-Dmodules_path=${apacheHttpd.dev}/modules"
+    "-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
+    # In 3.34.0 it defaults to false but it is silently ignored and always installed.
+    # Let’s add it anyway in case they decide to make build respect the option in the future.
+    "-Dnautilus_extension=true"
   ];
 
   nativeBuildInputs = [
     pkgconfig
+    meson
+    ninja
     gettext
     itstool
     libxml2
     wrapGAppsHook
+    python3
   ];
 
   buildInputs = [
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
new file mode 100644
index 00000000000..2df70ff9646
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/mutter/0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
@@ -0,0 +1,25 @@
+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 eab0b131ea9..c8b1ac7e466 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -7,17 +7,19 @@
 , xorgserver
 , python3
 , wrapGAppsHook
+, sysprof
+, desktop-file-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.32.2";
+  version = "3.34.1";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva";
+    sha256 = "13kmmgg2zizr0522clwc2zn3bkwbir503b1wjiiixf5xi37jc65s";
   };
 
   mesonFlags = [
@@ -39,6 +41,7 @@ stdenv.mkDerivation rec {
     # for cvt command
     xorgserver
     wrapGAppsHook
+    desktop-file-utils
   ];
 
   buildInputs = [
@@ -47,21 +50,16 @@ stdenv.mkDerivation rec {
     geocode-glib libinput libgudev libwacom
     libcanberra-gtk3 zenity xkeyboard_config libxkbfile
     libxkbcommon pipewire xwayland
-    gnome-settings-daemon
+    gnome-settings-daemon sysprof
   ];
 
   patches = [
+   # TODO: submit upstream
+   ./0001-build-use-get_pkgconfig_variable-for-sysprof-dbusdir.patch
     (substituteAll {
       src = ./fix-paths.patch;
       inherit zenity;
     })
-    # Fix a segmentation fault in dri_flush_front_buffer() upon
-    # suspend/resume. This change should be removed when Mutter
-    # is updated to 3.34.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/mutter/commit/8307c0f7ab60760de53f764e6636893733543be8.diff";
-      sha256 = "1hzfva71xdqvvnx5smjsrjlgyrmc7dj94mpylkak0gwda5si0h2n";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch b/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch
deleted file mode 100644
index 37358c8432c..00000000000
--- a/pkgs/desktops/gnome-3/core/nautilus/bubblewrap-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
----   a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
-+++   a/src/gnome-desktop/gnome-desktop-thumbnail-script.c
-@@ -536,9 +536,9 @@ add_bwrap (GPtrArray   *array,
-   g_return_val_if_fail (script->s_infile != NULL, FALSE);
- 
-   add_args (array,
--	    "bwrap",
--	    "--ro-bind", "/usr", "/usr",
--	    "--ro-bind", "/etc/ld.so.cache", "/etc/ld.so.cache",
-+	    "@bubblewrap_bin@",
-+	    "--ro-bind", "@storeDir@", "@storeDir@",
-+	    "--ro-bind", "/run/current-system", "/run/current-system",
- 	    NULL);
- 
-   /* These directories might be symlinks into /usr/... */
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 14551fb7d0c..48f47be04bc 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -1,33 +1,77 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, libxml2
-, desktop-file-utils, python3, wrapGAppsHook , gtk3, gnome3, gnome-autoar
-, glib-networking, shared-mime-info, libnotify, libexif, libseccomp , exempi
-, librsvg, tracker, tracker-miners, gexiv2, libselinux, gdk-pixbuf
-, substituteAll, bubblewrap, gst_all_1, gsettings-desktop-schemas
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, libxml2
+, desktop-file-utils
+, python3
+, wrapGAppsHook
+, gtk3
+, gnome3
+, gnome-autoar
+, glib-networking
+, shared-mime-info
+, libnotify
+, libexif
+, libseccomp
+, exempi
+, librsvg
+, tracker
+, tracker-miners
+, gexiv2
+, libselinux
+, gdk-pixbuf
+, substituteAll
+, gnome-desktop
+, gst_all_1
+, gsettings-desktop-schemas
+, gobject-introspection
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "3.32.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.34.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1wvp0272wky2v1pcx6z27275crb48j9903v6qzf8ki8hlqb2rkip";
   };
 
   nativeBuildInputs = [
-    meson ninja pkgconfig libxml2 gettext python3 wrapGAppsHook
     desktop-file-utils
+    gettext
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    python3
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    glib-networking shared-mime-info libexif gtk3 exempi libnotify libselinux
-    tracker tracker-miners gexiv2 libseccomp bubblewrap gst_all_1.gst-plugins-base
-    gnome3.adwaita-icon-theme gsettings-desktop-schemas
+    exempi
+    gexiv2
+    glib-networking
+    gnome-desktop
+    gnome3.adwaita-icon-theme
+    gsettings-desktop-schemas
+    gst_all_1.gst-plugins-base
+    gtk3
+    libexif
+    libnotify
+    libseccomp
+    libselinux
+    shared-mime-info
+    tracker
+    tracker-miners
   ];
 
-  propagatedBuildInputs = [ gnome-autoar ];
+  propagatedBuildInputs = [
+    gnome-autoar
+  ];
 
   preFixup = ''
     gappsWrapperArgs+=(
@@ -44,13 +88,6 @@ in stdenv.mkDerivation rec {
 
   patches = [
     ./extension_dir.patch
-    # 3.30 now generates it's own thummbnails,
-    # and no longer depends on `gnome-desktop`
-    (substituteAll {
-      src = ./bubblewrap-paths.patch;
-      bubblewrap_bin = "${bubblewrap}/bin/bwrap";
-      inherit (builtins) storeDir;
-    })
   ];
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index de56b14d46f..21e198a867f 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.32.2.1";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xqb642bsd2hddsm4bd199vyq8jcipdlxm0br3mjlc5vjcxgkxyp";
+    sha256 = "0glzskxdc7p9z7nwcakqc7qzij4l79adlvvb2cj5fmis731zw9yq";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
index 86675f21f06..fc4034acf66 100644
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/pkgs/desktops/gnome-3/core/sushi/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig, meson, gettext, gobject-introspection, glib
-, clutter-gtk, clutter-gst, gnome3, gtksourceview, gjs
+, clutter-gtk, clutter-gst, gnome3, gtksourceview4, gjs
 , webkitgtk, libmusicbrainz5, icu, wrapGAppsHook, gst_all_1
-, gdk-pixbuf, librsvg, gtk3, harfbuzz, ninja }:
+, gdk-pixbuf, librsvg, gtk3, harfbuzz, ninja, epoxy }:
 
 stdenv.mkDerivation rec {
   pname = "sushi";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/sushi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj";
+    sha256 = "1zcr8wi5bgvvpb5ha1v96aiaz4vqqrsn6cvvalwzah6am85k78m8";
   };
 
   nativeBuildInputs = [
@@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     glib gtk3 gnome3.evince icu harfbuzz
-    clutter-gtk clutter-gst gjs gtksourceview gdk-pixbuf
-    librsvg libmusicbrainz5 webkitgtk
+    clutter-gtk clutter-gst gjs gtksourceview4 gdk-pixbuf
+    librsvg libmusicbrainz5 webkitgtk epoxy
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
   ];
 
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
index a5388f2eae1..50e30d2717e 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "totem";
-  version = "3.32.1";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/totem/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v";
+    sha256 = "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b";
   };
 
   doCheck = true;
@@ -31,14 +31,6 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  mesonFlags = [
-    "-Dwith-nautilusdir=${placeholder "out"}/lib/nautilus/extensions-3.0"
-    # https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1712021
-    # https://bugzilla.gnome.org/show_bug.cgi?id=784236
-    # https://github.com/mesonbuild/meson/issues/1994
-    "-Denable-vala=no"
-  ];
-
   checkInputs = [ xvfb_run ];
 
   checkPhase = ''
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index e18f4de68d6..abfe8b2e039 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -82,10 +82,10 @@ stdenv.mkDerivation {
   '';
 
   passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = "vino";
-      attrPath = "gnome3.vino";
-    };
+    # updateScript = gnome3.updateScript {
+    #   packageName = "vino";
+    #   attrPath = "gnome3.vino";
+    # };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
index fc5b0268df7..7cb63b8df79 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -1,23 +1,38 @@
-{ stdenv, intltool, fetchurl, pkgconfig
-, itstool, libxml2, libxslt, gnome3 }:
+{ stdenv
+, gettext
+, fetchurl
+, pkgconfig
+, itstool
+, libxml2
+, libxslt
+, gnome3
+}:
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "3.32.1";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-xsl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya";
+    sha256 = "1qjfw4s8yf4hmyqrcqy6q2rsnb8b2cl1qbq67m7n7pyiczp3l1p8";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "yelp-xsl"; attrPath = "gnome3.yelp-xsl"; };
-  };
+  nativeBuildInputs = [
+    pkgconfig
+    gettext
+    itstool
+    libxml2
+    libxslt
+  ];
 
   doCheck = true;
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool itstool libxml2 libxslt ];
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Yelp;
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index 7e326dd1657..438c71c4ad3 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.32.2";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f";
+    sha256 = "0ifhgdxff2xx2damaj72gpjln5k36grg2chvi4335mv3b5y55mp3";
   };
 
   nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 370733798af..017ced6c98b 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -79,6 +79,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   libgnome-keyring = callPackage ./core/libgnome-keyring { };
 
+  gnome-initial-setup = callPackage ./core/gnome-initial-setup { };
+
   gnome-online-miners = callPackage ./core/gnome-online-miners { };
 
   gnome-remote-desktop = callPackage ./core/gnome-remote-desktop { };
@@ -215,8 +217,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-weather = callPackage ./apps/gnome-weather { };
 
-  nautilus-sendto = callPackage ./apps/nautilus-sendto { };
-
   polari = callPackage ./apps/polari { };
 
   seahorse = callPackage ./apps/seahorse { };
@@ -338,7 +338,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 vte-ng gnome-menus gdl;
+      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;
   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
@@ -356,4 +356,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   corePackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-shell.enable`";
   optionalPackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-utilities.enable`";
   gamesPackages = throw "deprecated 2019-08-25: please use `services.gnome3.games.enable`";
+
+  nautilus-sendto = throw "deprecated 2019-09-17: abandoned";
 })
diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
index 573259b7e7d..4df3ed10a69 100644
--- a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "anjuta";
-  version = "3.28.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/anjuta/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ya7ajai9rx9g597sr5wawr6l5pb2s34bbjdsbnx0lkrhnjv11xh";
+    sha256 = "13ql7axw6zz387s7pa1m7wmh7qps3x7fk53h9832vq1yxlq33aa2";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
index 23a58011e02..8d731d829b2 100644
--- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "devhelp";
-  version = "3.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/devhelp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq";
+    sha256 = "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook appstream-glib gobject-introspection python3 ];
diff --git a/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index 6f289fd74d9..910007bc05b 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 = "29";
+  version = "30";
 
   src = fetchFromGitHub {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "02cr6rhi3dfk49jcjm6vh7yx117bv5wqyvd34cyv1kzwzsla8v2i";
+    sha256 = "1fjhx23jqwv3d0smwhnjvc35gqhwk9p5f96ic22pfax653cn5vh8";
   };
 
   # 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 b38f0aeba91..f85b91d354d 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 = "31";
+  version = "33";
 
   src = fetchFromGitLab {
     owner = "LinxGem33";
     repo = "Arc-Menu";
-    rev = "v${version}-stable";
-    sha256 = "124jgdy6mw76nrkq3f0y7qkhdm39wg273zifdvwbgpvirwzxbia1";
+    rev = "v${version}-Stable";
+    sha256 = "0ncb19jlwy2y9jcj8g6cdbasdv6n7hm96qv9l251z6qgrmg28x4z";
   };
 
   patches = [
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     glib gettext
   ];
 
-  makeFlags = [ "INSTALL_BASE=$(out)/share/gnome-shell/extensions" ];
+  makeFlags = [ "INSTALL_BASE=${placeholder "out"}/share/gnome-shell/extensions" ];
 
   meta = with stdenv.lib; {
     description = "Gnome shell extension designed to replace the standard menu found in Gnome 3";
diff --git a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
index 95a68505c7c..8cf9fb9f0e6 100644
--- a/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, glib, gettext, bash }:
+{ stdenv, fetchFromGitHub, glib, gettext, bash, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-caffeine";
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ eperuffo ];
     homepage = https://github.com/eonpatapon/gnome-shell-extension-caffeine;
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
index 0faadbcd2b6..5277cb08cbb 100644
--- a/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-clipboard-indicator";
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jonafato ];
     platforms = platforms.linux;
     homepage = https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator;
+    broken = versionAtLeast gnome3.gnome-shell.version "3.26";
   };
 }
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 e80149e5005..6ac82c539a2 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-dock";
-  version = "66";
+  version = "67";
 
   src = fetchFromGitHub {
     owner = "micheleg";
     repo = "dash-to-dock";
     rev = "extensions.gnome.org-v" + version;
-    sha256 = "04krl6rxlp1qc97psraf2kwin7h0mx4c7pnfpi7vhplmvasrwkfh";
+    sha256 = "1746xm0iyvyzj6m3pvjx11smh9w1s7naz426ki0dlr5l7jh3mpy5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
new file mode 100644
index 00000000000..c0ecfc29e2c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, substituteAll, gnome3, vte }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-drop-down-terminal";
+  version = "24";
+
+  src = fetchFromGitHub {
+    owner = "zzrough";
+    repo = "gs-extensions-drop-down-terminal";
+    rev = "v${version}";
+    sha256 = "1gda56xzwsa5pgmgpb7lhb3i3gqishvn84282inwvqm86afks73r";
+  };
+
+  uuid = "drop-down-terminal@gs-extensions.zzrough.org";
+
+  patches = [
+    (substituteAll {
+      src = ./fix_vte_and_gjs.patch;
+      inherit vte;
+      gjs = gnome3.gjs;
+    })
+  ];
+
+  installPhase = ''
+    mkdir -p $out/share/gnome-shell/extensions
+    cp -r ${uuid} $out/share/gnome-shell/extensions/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Configurable drop down terminal shell";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ericdallo ];
+    homepage = https://github.com/zzrough/gs-extensions-drop-down-terminal;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch
new file mode 100644
index 00000000000..3544c91ee89
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/fix_vte_and_gjs.patch
@@ -0,0 +1,32 @@
+--- a/drop-down-terminal@gs-extensions.zzrough.org/extension.js
++++ b/drop-down-terminal@gs-extensions.zzrough.org/extension.js
+@@ -15,6 +15,8 @@
+ 
+ // Author: Stéphane Démurget <stephane.demurget@free.fr>
+ 
++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0')
++
+ const Lang = imports.lang;
+ const Gettext = imports.gettext.domain("drop-down-terminal");
+ const Mainloop = imports.mainloop;
+@@ -653,7 +655,7 @@ const DropDownTerminalExtension = new Lang.Class({
+         this._killingChild = false;
+ 
+         // finds the forking arguments
+-        let args = ["gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path];
++        let args = ["@gjs@/bin/gjs", GLib.build_filenamev([Me.path, "terminal.js"]), Me.path];
+ 
+         // forks the process
+         debug("forking '" + args.join(" ") + "'");
+--- a/drop-down-terminal@gs-extensions.zzrough.org/terminal.js
++++ b/drop-down-terminal@gs-extensions.zzrough.org/terminal.js
+@@ -14,6 +14,9 @@
+ // along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ // Author: Stéphane Démurget <stephane.demurget@free.fr>
++
++imports.gi.GIRepository.Repository.prepend_search_path('@vte@/lib/girepository-1.0')
++
+ const Lang = imports.lang;
+ 
+ const Pango = imports.gi.Pango;
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index cff0db665bb..cfd906a3d0c 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 = "23";
+  version = "26";
 
   src = fetchFromGitHub {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "011asrhkly9zhvnng2mh9v06yw39fx244pmqz5yk9rd9m4c32xid";
+    sha256 = "01p8b3blsnxi2i89nddkm51wbbw5irwii2qlvlrzfh8hhh37my0a";
   };
 
   patches = [
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     upower
     gnome3.caribou
     gnome3.gjs # for running daemon
-    gnome3.evolution-data-server # folks.py requires org.gnome.Evolution.DefaultSources gsettings; TODO: hardcode the schema path to the library (similarly to https://github.com/NixOS/nixpkgs/issues/47226)
+    gnome3.evolution-data-server # for libebook-contacts typelib
   ];
 
   mesonFlags = [
@@ -76,8 +76,8 @@ stdenv.mkDerivation rec {
   postFixup = ''
     # Let’s wrap the daemons
     for file in $out/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/{{daemon,nativeMessagingHost}.js,components/folks.py}; do
-      echo "Wrapping program ''${file}"
-      wrapProgram "''${file}" "''${gappsWrapperArgs[@]}"
+      echo "Wrapping program $file"
+      wrapGApp "$file"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
index b32d0af3272..097cde829ea 100644
--- a/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
@@ -29,16 +29,32 @@
  const Gio = imports.gi.Gio;
  const GLib = imports.gi.GLib;
  const Gtk = imports.gi.Gtk;
---- a/src/service/__init__.js
-+++ b/src/service/__init__.js
-@@ -600,7 +600,9 @@
- /**
-  * Convenience functions for saving/restoring window geometry
-  */
--const _mutter = new Gio.Settings({schema_id: 'org.gnome.mutter'});
-+const _schema_source = Gio.SettingsSchemaSource.new_from_directory('@mutter_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
-+const _schema = _schema_source.lookup('org.gnome.mutter', false);
-+const _mutter = new Gio.Settings({settings_schema: _schema});
+--- a/src/preferences/service.js
++++ b/src/preferences/service.js
+@@ -435,9 +435,9 @@ var Window = GObject.registerClass({
+ 
+     _restoreGeometry() {
+         if (this._mutterSettings === undefined) {
+-            this._mutterSettings = new Gio.Settings({
+-                schema_id: 'org.gnome.mutter'
+-            });
++            const _schema_source = Gio.SettingsSchemaSource.new_from_directory('@mutter_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
++            const _schema = _schema_source.lookup('org.gnome.mutter', false);
++            this._mutterSettings = new Gio.Settings({settings_schema: _schema});
+         }
+ 
+         // Restore geometry, even if we're going to maximize
+--- a/src/service/ui/messaging.js
++++ b/src/service/ui/messaging.js
+@@ -891,9 +891,9 @@ var Window = GObject.registerClass({
+      */
+     _restoreGeometry() {
+         if (this._mutterSettings === undefined) {
+-            this._mutterSettings = new Gio.Settings({
+-                schema_id: 'org.gnome.mutter'
+-            });
++            const _schema_source = Gio.SettingsSchemaSource.new_from_directory('@mutter_gsettings_path@', Gio.SettingsSchemaSource.get_default(), true);
++            const _schema = _schema_source.lookup('org.gnome.mutter', false);
++            this._mutterSettings = new Gio.Settings({settings_schema: _schema});
+         }
  
- Gtk.Window.prototype.restore_geometry = function() {
-     let [width, height] = this.settings.get_value('window-size').deep_unpack();
diff --git a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
index 8214300a531..8bfd681625f 100644
--- a/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ jonafato ];
     platforms = gnome3.gnome-shell.meta.platforms;
     homepage = https://github.com/ikalnytskyi/gnome-shell-extension-icon-hider;
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix b/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix
deleted file mode 100644
index 10175719e46..00000000000
--- a/pkgs/desktops/gnome-3/extensions/mediaplayer/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ stdenv, fetchFromGitHub, glib, meson, gettext, ninja, python3 }:
-
-stdenv.mkDerivation {
-  pname = "gnome-shell-extensions-mediaplayer";
-  version = "unstable-2019-03-21";
-
-  src = fetchFromGitHub {
-    owner = "JasonLG1979";
-    repo = "gnome-shell-extensions-mediaplayer";
-    rev = "b382c98481fa421501684e2ff3eafc53971ef22b";
-    sha256 = "01z2dml8dvl5sljw62g7x19mz02dz1g4gkmyp0h5bx49djcw1nnh";
-  };
-
-  nativeBuildInputs = [
-    meson
-    ninja
-    python3
-  ];
-  buildInputs = [
-    glib
-    gettext
-  ];
-
-  postPatch = ''
-    rm build
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Control MPRIS Version 2 Capable Media Players";
-    license = licenses.gpl2Plus;
-    homepage = https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/;
-    maintainers = with maintainers; [ tiramiseb ];
-  };
-}
-
diff --git a/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
new file mode 100644
index 00000000000..dca346c6cce
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchFromGitHub
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-mpris-indicator-button-unstable";
+  version = "2019-09-29";
+
+  src = fetchFromGitHub {
+    owner = "JasonLG1979";
+    repo = "gnome-shell-extension-mpris-indicator-button";
+    rev = "6cdc28a8bde98f25618b27ee48280996e2b4a0f8";
+    sha256 = "1n3sh3phpa75y3vpc09wnzhis0m92zli1m46amzsdbvmk6gkifif";
+  };
+
+  uuid = "mprisindicatorbutton@JasonLG1979.github.io";
+
+  installPhase = ''
+    mkdir -p $out/share/gnome-shell/extensions
+    cp -r ${uuid} $out/share/gnome-shell/extensions
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple MPRIS indicator button for GNOME Shell";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ worldofpeace ];
+    platforms = gnome3.gnome-shell.meta.platforms;
+    homepage = "https://github.com/JasonLG1979/gnome-shell-extension-mpris-indicator-button";
+    broken = versionOlder gnome3.gnome-shell.version "3.34";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix b/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix
deleted file mode 100644
index e2b5288e886..00000000000
--- a/pkgs/desktops/gnome-3/extensions/nohotcorner/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-nohotcorner";
-  version = "19.0";
-
-  src = fetchFromGitHub {
-    owner = "HROMANO";
-    repo = "nohotcorner";
-    rev = "v${version}";
-    sha256 = "059n4gyz7d686hknaifyjax8gygrda1xab5m15a09p98jdrdfdhi";
-  };
-
-  # Taken from the extension download link at
-  # https://extensions.gnome.org/extension/118/no-topleft-hot-corner/
-  uuid = "nohotcorner@azuri.free.fr";
-
-  installPhase = ''
-    mkdir -p $out/share/gnome-shell/extensions/${uuid}
-    cp extension.js $out/share/gnome-shell/extensions/${uuid}
-    cp metadata.json $out/share/gnome-shell/extensions/${uuid}
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Disables the top left hot corner";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ jonafato ];
-    homepage = https://github.com/HROMANO/nohotcorner;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
index 6f1cc3df409..cffe96894cc 100644
--- a/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, glib }:
+{ stdenv, fetchFromGitHub, glib, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-pidgin-im-integration";
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesn't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
index d9ea670db09..fbbd56f1c0f 100644
--- a/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-remove-dropdown-arrows";
-  version = "11";
+  version = "13";
 
   src = fetchFromGitHub {
     owner = "mpdeimos";
     repo = "gnome-shell-remove-dropdown-arrows";
     rev = "version/${version}";
-    sha256 = "1g99r9bpjdhab3xj74wkl40gdnaf2w51kswcr8mi6bq72n4wjxwh";
+    sha256 = "09b2hnfbqym20pb1sfc8xiz7gs2kbs6b1s7xl8swc8dydhsbambk";
   };
 
   # This package has a Makefile, but it's used for publishing and linting, not
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 33c127f449b..a5f94288ae5 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
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-sound-output-device-chooser";
-  version = "unstable-2019-04-01";
+  version = "24";
 
   src = fetchFromGitHub {
     owner = "kgshank";
     repo = "gse-sound-output-device-chooser";
-    rev = "37098909a50bafe2f2538819f988cb2327ed7c60";
-    sha256 = "09sbby8zi9xn21lbdry57bp1vwgd5c73anvqpw9css3x2ryda5li";
+    rev = version;
+    sha256 = "0n1rf4pdf0b78ivmz89x223sqlzv30qydkvlnvn7hwx0j32kyr0x";
   };
 
   dontBuild = true;
diff --git a/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
index 13b2d6a1db4..921991a33ae 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,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aneeshusa tiramiseb ];
     homepage = https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet;
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
index 90be6aed1d7..1e44cd4de5c 100644
--- a/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/taskwhisperer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell }:
+{ stdenv, substituteAll, fetchFromGitHub, taskwarrior, gettext, runtimeShell, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-taskwhisperer";
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jonafato ];
     homepage = https://github.com/cinatic/taskwhisperer;
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Doesnt't support 3.34
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
index 293918bd2b1..22f857a7809 100644
--- a/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, glib, gnome3 }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-extension-tilingnome";
-  version = "unstable-2019-01-18";
+  pname = "gnome-shell-extension-tilingnome-unstable";
+  version = "unstable-2019-09-19";
 
   src = fetchFromGitHub {
     owner = "rliang";
-    repo = pname;
-    rev = "bd4fb8c19f7a6282b38724b30e62645143390226";
-    sha256 = "1y4s4n88gdkpvgd3v3dg0181ccyhlixbvkx3bwyvdxyyyxbqibid";
+    repo = "gnome-shell-extension-tilingnome";
+    rev = "f401c20c9721d85e6b3e30d1e822a200db370407";
+    sha256 = "1hq9g9bxqpzqrdj9zm0irld8r6q4w1m4b00jya7wsny8rzb1s0y2";
   };
 
   nativeBuildInputs = [ glib ];
@@ -30,6 +30,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ benley ];
     homepage = https://github.com/rliang/gnome-shell-extension-tilingnome;
     platforms = gnome3.gnome-shell.meta.platforms;
-    broken = lib.versionAtLeast gnome3.gnome-shell.version "3.31";
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
index f841ef2403d..04e98d51b0c 100644
--- a/pkgs/desktops/gnome-3/extensions/timepp/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/timepp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-timepp";
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/zagortenay333/timepp__gnome;
     license = licenses.gpl3;
     maintainers = with maintainers; [ svsdep ];
+    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Dosen't support 3.34 https://github.com/zagortenay333/timepp__gnome/issues/113
   };
 }
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index 3e274c35cdd..474c49fb584 100644
--- a/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.8";
+  version = "3.22.9";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815";
+    sha256 = "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji";
   };
 
   configureFlags = [
diff --git a/pkgs/desktops/gnome-3/games/atomix/default.nix b/pkgs/desktops/gnome-3/games/atomix/default.nix
index c9395166c52..ec9895b3bf5 100644
--- a/pkgs/desktops/gnome-3/games/atomix/default.nix
+++ b/pkgs/desktops/gnome-3/games/atomix/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "atomix";
-  version = "3.32.1";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "19wpm7mn6r7x6jz1r0kkqg3xa69iycvgb7g7i8wi0d3cx0rsgjkl";
+    sha256 = "0h909a4mccf160hi0aimyicqhq2b0gk1dmqp7qwf87qghfrw6m00";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook python3 ];
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 5b233c48385..5f6cb92cde2 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
@@ -1,21 +1,21 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, gettext, meson, libcanberra-gtk3, librsvg, itstool, vala
+, gettext, meson, gsound, librsvg, itstool, vala
 , python3, ninja, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   pname = "four-in-a-row";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0h4wmbkdp7x3gp9sbxmvla316m8n6iy4f5sq0ksldj0z7ghlx9zl";
+    sha256 = "112pyrh2yvwy5b2a0b5crjpwp2vqqg4zgx6csll1bic6ccayv713";
   };
 
   nativeBuildInputs = [
     pkgconfig wrapGAppsHook gettext meson itstool vala
     ninja python3 desktop-file-utils
   ];
-  buildInputs = [ gtk3 libcanberra-gtk3 librsvg gnome3.adwaita-icon-theme ];
+  buildInputs = [ gtk3 gsound librsvg gnome3.adwaita-icon-theme ];
 
   postPatch = ''
     chmod +x build-aux/meson_post_install.py
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index d7001e1c527..72c4bdf1d29 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-chess/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hzb6s4wmfy1fysagc5hmn1ijvrwyd2cg7iz41mpn7gfdjyak639";
+    sha256 = "1n1vjg6xhwppmddrmqmkk6b3jkgphshp06rjbv5h3270k520a135";
   };
 
   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 904edd7e51a..137357e0a39 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.32.0";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72";
+    sha256 = "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
index 9d173945cdd..aa7824a0317 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-mahjongg/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "12kamxnxbh26k4iykhbs873mx25a2wrjnhr013lfkwbyl52kg12j";
+    sha256 = "0qyi3jkg112jysrsy5p330b7b92sl09mr8zsimq06q68kj1wzkz5";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index 1ac7e51357e..8c620fdd0d1 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.32.2";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g";
+    sha256 = "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54";
   };
 
   # 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 7b069922169..59b92a8b61c 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -1,19 +1,24 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, clutter-gtk, intltool, itstool
-, libxml2, libgee, libgnome-games-support }:
+, librsvg, gsound, clutter-gtk, gettext, itstool, vala, python3
+, libxml2, libgee, libgnome-games-support, meson, ninja
+, desktop-file-utils, hicolor-icon-theme}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-nibbles";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0g627pzbfywiy2rsh4aidgbln9s4j5m8pryw4cgr5ygc4z8l6l9p";
+    sha256 = "0nfy1wvxsyrpdinfn5v86gvq3ma487njz607biwwhji9z050gw3p";
   };
 
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool itstool libxml2 ];
+  nativeBuildInputs = [
+    meson ninja vala python3
+    pkgconfig wrapGAppsHook gettext itstool libxml2
+    desktop-file-utils hicolor-icon-theme
+  ];
   buildInputs = [
-    gtk3 librsvg libcanberra-gtk3 clutter-gtk gnome3.adwaita-icon-theme
+    gtk3 librsvg gsound clutter-gtk gnome3.adwaita-icon-theme
     libgee libgnome-games-support
   ];
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
index 46723867f8a..c8cc9f121f5 100644
--- a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, gettext, itstool, libxml2, libgnome-games-support
-, libgee, meson, ninja, python3, desktop-file-utils , hicolor-icon-theme, adwaita-icon-theme }:
+, librsvg, gsound, gettext, itstool, libxml2, libgnome-games-support
+, libgee, meson, ninja, python3, desktop-file-utils, adwaita-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-robots";
-  version = "3.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-robots/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1xp1sijl5k7wmnbb0hdgh4ajxgp74k7fcnmd5c6rw6lf51wpinyh";
+    sha256 = "18vnx5096d3mc2i7w4ma9hflsqfnvahl29aifjnvhdm5ji8qi0mb";
   };
 
   passthru = {
@@ -18,10 +18,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkgconfig meson ninja python3
     libxml2 wrapGAppsHook gettext itstool desktop-file-utils
-    hicolor-icon-theme # For setup-hook
   ];
   buildInputs = [
-    gtk3 librsvg libcanberra-gtk3 libgnome-games-support libgee adwaita-icon-theme
+    gtk3 librsvg gsound libgnome-games-support libgee adwaita-icon-theme
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
index a555ee31cf3..de00368df2e 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-sudoku/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l";
+    sha256 = "1bwy9w4jkdlsc6iz7lwy0nm4vqa11kgcw24qf4w2g0qyldcvhc3y";
   };
 
   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 b6c60362265..dd7908ba726 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook
-, librsvg, libcanberra-gtk3, gettext, itstool, libxml2
+, librsvg, gsound, gettext, itstool, libxml2
 , meson, ninja, vala, python3, desktop-file-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-taquin";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1kyxh68gg7clxg22ls4sliisxb2sydwccbxqgfvxjg2fklr6r1lm";
+    sha256 = "0vyrfhkfpx83n9p70jssykbndvb3sxwdihqvvvb94rbw7n6c4q4r";
   };
 
   passthru = {
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     gettext itstool libxml2 vala desktop-file-utils
   ];
   buildInputs = [
-    gtk3 librsvg libcanberra-gtk3
+    gtk3 librsvg gsound
     gnome3.adwaita-icon-theme
   ];
 
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 29141530211..1337a810807 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.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "18drxp43j2jnywxl6qa7mn1iv33jxr0dpc1l9xza3lnrb0jp0kjl";
+    sha256 = "05i9y6x9ai7fay0khr4zb4ji92qs49v88p3lqx9lac8hz04dnvg0";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
index 8e53a937a5e..cf83527432f 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/hitori/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "15s20db2fq4cy031sw20pmf53hxiak44fgyjy5njqnp2h2sg3806";
+    sha256 = "1612hq6d2mnggppy949dkb8lz9886n0rlg68z7qmjjizz1l41lb5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 114551ed4ee..901ad46e961 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk-pixbuf, librsvg, wrapGAppsHook
-, itstool, libcanberra-gtk3, libxml2
+, itstool, gsound, libxml2
 , meson, ninja, python3, vala, desktop-file-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "iagno";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rcqb4gpam16xw87n4q2akkrg94ksrn16ry21pr6bsd7qs7hw17d";
+    sha256 = "1y9sknc5k2vfhbv8bhbid4zwwzqj8g5m1jz0k5bfkixaa1kxvp35";
   };
 
   nativeBuildInputs = [
     meson ninja python3 vala desktop-file-utils
     pkgconfig wrapGAppsHook itstool libxml2
   ];
-  buildInputs = [ gtk3 gnome3.adwaita-icon-theme gdk-pixbuf librsvg libcanberra-gtk3 ];
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme gdk-pixbuf librsvg gsound ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
index 9c582f037a2..0a236d0425a 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.32.0";
+  version = "3.34.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/lightsoff/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0vc3ibjs9ynnm0gxlhhin7jpnsx22vnn4ygaybxwmv9w2q49cs9f";
+    sha256 = "1yyq0962fv16rab3alq5saf4gpii9xvcfy5vbq85hhhgjpbqrfns";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index 78ed0d9fa68..2ac4c4c96f7 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -1,18 +1,16 @@
 { stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk-pixbuf
-, librsvg, libcanberra-gtk3, libmanette
+, librsvg, gsound, libmanette
 , gettext, itstool, libxml2, clutter, clutter-gtk, wrapGAppsHook
 , meson, ninja, python3, vala, desktop-file-utils
 }:
 
-let
+stdenv.mkDerivation rec {
   pname = "quadrapassel";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "3.32.0";
+  version = "3.34.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1zhi1957knz9dm98drn2dh95mr33sdch590yddh1f8r6bzsfjvpy";
+    url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1qh6hx90lqag2hby94jc68xnz4i6b2a253x4yp6xz025fpacv6mk";
   };
 
   nativeBuildInputs = [
@@ -22,11 +20,9 @@ in stdenv.mkDerivation rec {
   ];
   buildInputs = [
     gtk3 gdk-pixbuf librsvg libmanette
-    libcanberra-gtk3 clutter libxml2 clutter-gtk
+    gsound clutter libxml2 clutter-gtk
   ];
 
-  enableParallelBuilding = true;
-
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
index a944e0c568a..6de5eaa96c3 100644
--- a/pkgs/desktops/gnome-3/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "swell-foop";
-  version = "3.32.0";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0jpci3c1wyzbvsq86j30rcl166skhi2wf12001amfgh0dmmwipci";
+    sha256 = "1vbclb1jcn2s9rb7whk02v6hfr6fnwx2ppa55bsa7595f3ki79v5";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
index 8babe77e412..787bdd97ebf 100644
--- a/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,28 +1,30 @@
 { stdenv, fetchurl, pkgconfig, gtk3, vala, enchant2, wrapGAppsHook, meson, ninja
 , desktop-file-utils, gnome-online-accounts, gsettings-desktop-schemas, adwaita-icon-theme
-, libnotify, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext
+, libcanberra-gtk3, libsecret, gmime, isocodes, libxml2, gettext
 , 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, libunity, folks, glib-networking
+, gobject-introspection, gspell, appstream-glib, libytnef, libhandy }:
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "3.32.2";
+  version = "3.34.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0sg53zq81v28hdqiy5d048skwfgsa8ck0z7ywsagdh7iaqin68gq";
+    sha256 = "1bx57g8199pcqh1p90dlnca2g1kpyrifr6g8m1rdjmpm2a1r993v";
   };
 
   nativeBuildInputs = [
     desktop-file-utils gettext itstool libxml2 meson ninja
-    pkgconfig vala wrapGAppsHook python3
+    pkgconfig vala wrapGAppsHook python3 appstream-glib
+    gobject-introspection
   ];
 
   buildInputs = [
     adwaita-icon-theme enchant2 gcr gmime gnome-online-accounts
     gsettings-desktop-schemas gtk3 isocodes json-glib libcanberra-gtk3
-    libgee libnotify libsecret sqlite webkitgtk glib-networking
-    libunwind libunity folks
+    libgee libsecret sqlite webkitgtk glib-networking
+    libunwind libunity folks gspell libytnef libhandy
   ];
 
   checkInputs = [ xvfb_run dbus ];
@@ -32,8 +34,8 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    chmod +x build-aux/post_install.py
-    patchShebangs build-aux/post_install.py
+    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 desktop/geary-attach
   '';
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index 94418849b98..d5617ee493d 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -24,7 +24,6 @@
 , meson
 , ninja
 , python3
-, hicolor-icon-theme
 , libdazzle
 }:
 
@@ -66,7 +65,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gobject-introspection
-    hicolor-icon-theme
     gettext
     meson
     ninja
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
index 25e1347f1c9..fff328c608d 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -18,7 +18,6 @@
 , adwaita-icon-theme
 , libgweather
 , gucharmap
-, gnome-settings-daemon
 , tracker
 , polkit
 , gnome3
@@ -26,13 +25,13 @@
 
 let
   pname = "gnome-applets";
-  version = "3.32.0";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "10kd19ymxl2z65121g90mx96m6vcn2a8a50g6a56prrdjsgbgia1";
+    sha256 = "1mbhykqwzq18zpvfkdcdkbb4zhijmxqa2i6502an78yap87vq74i";
   };
 
   nativeBuildInputs = [
@@ -56,7 +55,6 @@ in stdenv.mkDerivation rec {
     adwaita-icon-theme
     libgweather
     gucharmap
-    gnome-settings-daemon
     tracker
     polkit
     wirelesstools
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index c8d26988391..8ccf5107046 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -1,11 +1,20 @@
-{ stdenv, fetchurl, pkgconfig, gnome3
-, gtk3, glib, gobject-introspection, libarchive
+{ stdenv
+, fetchurl
+, pkgconfig
+, gnome3
+, gtk3
+, glib
+, gobject-introspection
+, libarchive
+, vala
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-autoar";
   version = "0.2.3";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-autoar/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax";
@@ -15,9 +24,20 @@ stdenv.mkDerivation rec {
     updateScript = gnome3.updateScript { packageName = "gnome-autoar"; attrPath = "gnome3.gnome-autoar"; };
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 glib ];
-  propagatedBuildInputs = [ libarchive gobject-introspection ];
+  nativeBuildInputs = [
+    gobject-introspection
+    pkgconfig
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    libarchive
+    glib
+  ];
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index 3cade7ccdf8..e809cc7f44f 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -26,24 +26,20 @@
 
 let
   pname = "gnome-flashback";
-  version = "3.32.0";
-  requiredComponents = wmName: "RequiredComponents=${wmName};gnome-flashback-init;gnome-flashback;gnome-panel;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;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.34.0";
+  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;";
   gnome-flashback = stdenv.mkDerivation rec {
     name = "${pname}-${version}";
 
     src = fetchurl {
       url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-      sha256 = "0jfzr7vdmnxpxqqa38ni1p3c508xhlnxqpmmqshk3rvrf0afqn62";
+      sha256 = "1ryr28psrjr3kp0in99a12y4vy6kvi2mvhp174dli2a56ds16mgj";
     };
 
     # make .desktop Execs absolute
     postPatch = ''
       patch -p0 <<END_PATCH
-      +++ data/applications/gnome-flashback-init.desktop.in
-      @@ -4 +4 @@
-      -Exec=gnome-flashback --initialize
-      +Exec=$out/bin/gnome-flashback --initialize
-      +++ data/applications/gnome-flashback.desktop.in
+      +++ data/applications/gnome-flashback.desktop.in.in
       @@ -4 +4 @@
       -Exec=gnome-flashback
       +Exec=$out/bin/gnome-flashback
diff --git a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
index ea9a79de40e..ce6d943c39f 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, packagekit, polkit
-, gtk3, systemd, wrapGAppsHook, desktop-file-utils, hicolor-icon-theme }:
+, gtk3, systemd, wrapGAppsHook, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-packagekit";
@@ -12,7 +12,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     pkgconfig meson ninja gettext wrapGAppsHook desktop-file-utils
-    hicolor-icon-theme # for setup-hook
   ];
 
   buildInputs = [ gtk3 packagekit systemd polkit ];
diff --git a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index 3031b2c1d78..423a393eb77 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -23,7 +23,7 @@
 
 let
   pname = "gnome-panel";
-  version = "3.32.0";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0a9zi1jb0b42zd6wx3251cnns9v1w0cbwasmrx9hsj1dsb9pjq3a";
+    sha256 = "03dr54njdh2szy6yrib2q0agjscbj3bmzrfb9fb4psrf4mah5g56";
   };
 
   # make .desktop Exec absolute
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
index 7a54114d2db..f40911577c1 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
@@ -1,17 +1,17 @@
 { stdenv, meson, ninja, gettext, fetchurl
 , pkgconfig, gtk3, glib, libsoup, gsettings-desktop-schemas
-, itstool, libxml2, python3Packages
+, itstool, libxml2, python3Packages, libhandy
 , gnome3, gdk-pixbuf, libnotify, gobject-introspection, wrapGAppsHook }:
 
 let
   pname = "gnome-tweaks";
-  version = "3.32.0";
+  version = "3.34.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55";
+    sha256 = "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0";
   };
 
   nativeBuildInputs = [
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
     libnotify gnome3.gnome-shell python3Packages.pygobject3
     libsoup gnome3.gnome-settings-daemon gnome3.nautilus
     gnome3.mutter gnome3.gnome-desktop gobject-introspection
-    gnome3.nautilus
+    gnome3.nautilus libhandy
     # Makes it possible to select user themes through the `user-theme` extension
     gnome3.gnome-shell-extensions
   ];
diff --git a/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
index 46ca01c1a1a..ebedf0c81ff 100644
--- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
@@ -2,12 +2,12 @@
 , pango, gtk3, gnome3, dbus, clutter, appstream-glib, wrapGAppsHook, gobject-introspection }:
 
 stdenv.mkDerivation rec {
-  version = "3.32.0";
+  version = "3.34.0";
   pname = "gpaste";
 
   src = fetchurl {
     url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz";
-    sha256 = "1fvpl9vqmrr1w22hm0ybabn9pjfii5qj9ghnc2jzihgrn2h486v6";
+    sha256 = "0mih07b3mb0m1bk8ng9175fgvdbmvsacl4v4kvdnnlnql6rh47gv";
   };
 
   patches = [
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 3776a9adbf2..d591fb6033d 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, intltool, gnome3
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, libgee, gettext, gnome3
 , libintl }:
 
 let
   pname = "libgnome-games-support";
-  version = "1.4.3";
+  version = "1.4.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0g6a1vvhrbs0pfnzjfg3lgqvppwkydn6j3dn713zhrjhma9pljkh";
+    sha256 = "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig gettext ];
   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 8b1d2b05df1..8355051fa85 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.32.0";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "177dmb1smizfgkddk49n2kr90graj9r6xw5hg3aq0y2qqg6v4rcg";
+    sha256 = "0ga57b71i2gbd723gbs3pxy1jnf44q5mnwq5yhxzn2irbh2d3iri";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/misc/pomodoro/default.nix
index fcbceab24ea..0080177df71 100644
--- a/pkgs/desktops/gnome-3/misc/pomodoro/default.nix
+++ b/pkgs/desktops/gnome-3/misc/pomodoro/default.nix
@@ -22,14 +22,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "gnome-shell-pomodoro";
-  version = "0.15.1";
+  pname = "gnome-shell-pomodoro-unstable";
+  version = "2019-09-15";
 
   src = fetchFromGitHub {
     owner = "codito";
     repo = "gnome-pomodoro";
-    rev = version;
-    sha256 = "0nmgd122gsfka0p50mila88iwrzckq2r36a3h20lswn5qkn321i1";
+    rev = "cb1ad32587c209d3322cd1bbc139efa624a4436f";
+    sha256 = "1zp3z043zzkkn2305s55hnpf9bdzirlzljpzswfh1fj6j4dqlb9k";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix
index c214f0b3dcd..39cece7724e 100644
--- a/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/libfm-qt/default.nix
@@ -5,14 +5,14 @@
 }:
 
 mkDerivation rec {
-  pname = "libfm-qt";
-  version = "0.14.1";
+  pname = "libfm-qt-unstable";
+  version = "2019-09-22";
 
   src = fetchFromGitHub {
     owner = "lxqt";
-    repo = pname;
-    rev = version;
-    sha256 = "00rn5i16h659zyp1dx213nc3jz7rx9phiw71zf6nspxzxsb8w2sc";
+    repo = "libfm-qt";
+    rev = "7c94e9efb996df0602f1f2b34b0216ba9b6df498";
+    sha256 = "1fnli2kh7n4hxmqwcb1n06lyk67d9a2fx6z70gas5jzym7r2h5vw";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index da90826116f..205ea2fd201 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -1,14 +1,15 @@
 { lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, json-glib, libfm-qt, qtbase, qttools, qtx11extras }:
 
 mkDerivation rec {
-  pname = "lxqt-archiver";
-  version = "0.0.96";
+  # pname = "lxqt-archiver";
+  pname = "lxqt-archiver-unstable";
+  version = "2019-09-25";
 
   src = fetchFromGitHub {
     owner = "lxqt";
-    repo = pname;
-    rev = version;
-    sha256 = "1vc9pzxrhznp65gdkzj3fzzivfqy712mwcxp3r25ar59d54alfpj";
+    repo = "lxqt-archiver";
+    rev = "62501255434b2ba6a8fd043a5af13dc0df038a5b";
+    sha256 = "1af58k68karmnay7xgngzlmcgkmvx6hay5m1xbl5id9hh16n20in";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix
index a5be8f41967..1333d027fca 100644
--- a/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -1,5 +1,5 @@
 { lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, qttools,
-  qtx11extras, xorg, lxqt-build-tools, openbox, hicolor-icon-theme }:
+  qtx11extras, xorg, lxqt-build-tools, openbox }:
 
 mkDerivation rec {
   pname = "obconf-qt";
@@ -27,7 +27,6 @@ mkDerivation rec {
     xorg.libXdmcp
     xorg.libSM
     openbox
-    hicolor-icon-theme
   ];
 
   meta = with lib; {
diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix
index ba21cb00d35..74b184d2cb0 100644
--- a/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-extensions/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "caja-extensions";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1h866jmdd3qpjzi7wjj11krwiaadnlf21844g1zqfb4jgrzj773p";
+    sha256 = "0xzhphzvaxbwyyp242pnhl5zjrkiznj90i0xjmy7pvi155pmp16h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix
index 667a73eb630..265b0b92222 100644
--- a/pkgs/desktops/mate/caja/default.nix
+++ b/pkgs/desktops/mate/caja/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "caja";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "10b7yjimblymp1fpsrl4jb2k7kbhla2izsj3njfmg2n6fv9fy9iv";
+    sha256 = "1c5yr4b8pzd7nz7g7ln9jwp4fx6qgq8vgbv4spfryy53il3gv75h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix
index cc683ab2db2..2d32d8301c9 100644
--- a/pkgs/desktops/mate/eom/default.nix
+++ b/pkgs/desktops/mate/eom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eom";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "03lpxqvyaqhz4wmi07nxcyn5q73ym3dzm41cdid53f2dp9lk1mv4";
+    sha256 = "0za1lw4awg1i0ls0r9iw0ail2hqa34y1dx65b50bw9kx9kbfyl9l";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/libmateweather/default.nix b/pkgs/desktops/mate/libmateweather/default.nix
index e4976f71ae6..c22c849a165 100644
--- a/pkgs/desktops/mate/libmateweather/default.nix
+++ b/pkgs/desktops/mate/libmateweather/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmateweather";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ribgcwl4ncfbcf9bkcbxrgc7yzajdnxg12837psngymkqswlp6a";
+    sha256 = "1y3z82ymc7q6z8ly9f6nys0hbs373fjnvr6j7zwlgf6zc88f71h3";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index 9899256018a..88dd9e79bc8 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "marco";
-  version = "1.22.2";
+  version = "1.22.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0sc7x14229yj22ka1vlzbaqndwcgh6idypjmm9rydkj4n968jwry";
+    sha256 = "0faiqj9i1mqqy1v4jdcwy8nsbkkvs0cwd2dqypgscmcqpbq7jf8a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix
index ec7ad2b4294..a99405d517a 100644
--- a/pkgs/desktops/mate/mate-applets/default.nix
+++ b/pkgs/desktops/mate/mate-applets/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-applets";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19sjm2180ir8a264rz8m528qaqjpl3q3cq095ab0sbkp2igksrfx";
+    sha256 = "1c32rkkry6kka2arrx5psjj037j79icp5jr1s0qh596dvsgxciqc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-calc/default.nix b/pkgs/desktops/mate/mate-calc/default.nix
index 64ede5101c7..81cfd3201a6 100644
--- a/pkgs/desktops/mate/mate-calc/default.nix
+++ b/pkgs/desktops/mate/mate-calc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-calc";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zin3w03zrkpb12rvay23bfk9fnjpybkr5mqzkpn9xfnqamhk8ld";
+    sha256 = "1as4gshydcf84vynq8ijd9n8pslz5jpw6aj18ri4bdc91a6q3rpg";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-common/default.nix b/pkgs/desktops/mate/mate-common/default.nix
index f85dd632bd1..5eacbd08146 100644
--- a/pkgs/desktops/mate/mate-common/default.nix
+++ b/pkgs/desktops/mate/mate-common/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-common";
-  version = "1.22.0";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11lwckndizawbq993ws8lqp59vsc873zri0m8s1i5zyc4qx9f69z";
+    sha256 = "1xx7qrw8kc6355r1a1nybncf8s2rxjb2nqzw0gv2r5j5sqx8fzgf";
   };
 
   meta = {
diff --git a/pkgs/desktops/mate/mate-control-center/default.nix b/pkgs/desktops/mate/mate-control-center/default.nix
index a06c24b9c72..e16effed670 100644
--- a/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/pkgs/desktops/mate/mate-control-center/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-control-center";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0w9w3wkxksbhzyd96y1x6yxb0q5lkp16y8i42564b6njvwqch5a0";
+    sha256 = "1ybdjibi6wgqn3587a66ckxp2qkvl4mcvv2smhflyxksl5djrjgh";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-desktop/default.nix b/pkgs/desktops/mate/mate-desktop/default.nix
index 58515a492b5..8d157a201be 100644
--- a/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/pkgs/desktops/mate/mate-desktop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-desktop";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hr4r69855csqrcaqpbcyplsy4cwjfz7gabps2pzkh5132jycfr0";
+    sha256 = "18w5r9p3bqpvxqqy2am7z686xf65cz5vhj247kki8s2yvvap6rlh";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
index 7db01f59816..1e1b2b837c3 100644
--- a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
@@ -11,7 +11,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook gtk3 ];
 
-  buildInputs = [ mate.mate-icon-theme hicolor-icon-theme ];
+  buildInputs = [ mate.mate-icon-theme ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
 
   postInstall = ''
     for theme in "$out"/share/icons/*; do
diff --git a/pkgs/desktops/mate/mate-icon-theme/default.nix b/pkgs/desktops/mate/mate-icon-theme/default.nix
index 9df0d0ce5a8..74777a7ef5e 100644
--- a/pkgs/desktops/mate/mate-icon-theme/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, librsvg, hicolor-icon-theme, gtk3 }:
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, librsvg, gtk3, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "mate-icon-theme";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pn1xbmr4w4mi45nwk1qh18z9rlngmkhp9bw671yn4k6sii8fi3k";
+    sha256 = "0r2bk4flb6kjj97badj2lnml4lfwpl2ym5hkf7r6f7cj8g6pzc4r";
   };
 
   nativeBuildInputs = [ pkgconfig intltool iconnamingutils ];
 
-  buildInputs = [ librsvg hicolor-icon-theme ];
+  buildInputs = [ librsvg ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
 
   postInstall = ''
     for theme in "$out"/share/icons/*; do
diff --git a/pkgs/desktops/mate/mate-indicator-applet/default.nix b/pkgs/desktops/mate/mate-indicator-applet/default.nix
index e1a6e874d1d..9b471805ad3 100644
--- a/pkgs/desktops/mate/mate-indicator-applet/default.nix
+++ b/pkgs/desktops/mate/mate-indicator-applet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-indicator-applet";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zad81qvcin4m329hfxhv4a5j8gf4gj8944mvjrdgdh71bzan2x1";
+    sha256 = "05j5s6r4kx1rbz0j7a7xv38d0kbdi1r8iv8b6nx3lkbkdzq1x0w2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-media/default.nix b/pkgs/desktops/mate/mate-media/default.nix
index 93c765a9953..ca1d7867807 100644
--- a/pkgs/desktops/mate/mate-media/default.nix
+++ b/pkgs/desktops/mate/mate-media/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-media";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13g1n2ddgr1yxgl4fsqj3sgb9344b756kam9v3sq6vh0bxlr4yf2";
+    sha256 = "0m8q2rqbxzvh82yj63syd8sbfjrc8y4a8caa42zs66j9x60d1agw";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/mate/mate-menus/default.nix b/pkgs/desktops/mate/mate-menus/default.nix
index e37a270f9dc..3788c2d4894 100644
--- a/pkgs/desktops/mate/mate-menus/default.nix
+++ b/pkgs/desktops/mate/mate-menus/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-menus";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lkakbf2f1815c146z4xp5f0h4lim6jzr02681wbvzalc6k97v5c";
+    sha256 = "0kh6y76f1rhp3nr22rp93bx77wcgqnygag2ir076cqkppayjc3c0";
   };
 
   nativeBuildInputs = [ pkgconfig intltool gobject-introspection ];
diff --git a/pkgs/desktops/mate/mate-notification-daemon/default.nix b/pkgs/desktops/mate/mate-notification-daemon/default.nix
index d53ae8efa35..a44b73c81a3 100644
--- a/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-notification-daemon";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06z3xczhz5diy4kk7b8lrzljrnql6fz0n1jyy916cf8pnnanpg0j";
+    sha256 = "0f8m3m94iqj2x61dzwwvwq2qlsl2ma8pqr6rfns5pzd0nj0waz0m";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index 39d2c1812cb..db45dc9c472 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0pb9dpgsfjp6gsldg4ad2jz23xdvjfarmz4cjwkpakygkq5i6dma";
+    sha256 = "1sm0fniywcxg8rbakhhc37bamwq1x3jqqyaqcvqwxvm6jg1hc97y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix
index 6ba6ac205ce..df7223e2288 100644
--- a/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-power-manager";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06vs2w44l1s25j0mifkid02yncw0nvdxw8r4pp2jm18kxan4frms";
+    sha256 = "12pnj7y01k1fhfhswxmf6q9yyb0772am5anm338hzfhjp0lcxlbn";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/mate/mate-screensaver/default.nix b/pkgs/desktops/mate/mate-screensaver/default.nix
index d1c1e481d70..4a2c0a5e2b8 100644
--- a/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-screensaver";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0c4qq5szsbfrz8hgkmlby2k7f1qs8kgqf2shd63z0pc8p6f47vvc";
+    sha256 = "1y8828g4bys8y4r5y478z6i7dgdqm2wkymi5fq75vxx4lzq919cb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix
index b7735ec77fe..fb9ea7699ac 100644
--- a/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-session-manager";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ix8picxgc28m5zd0ww3zvzw6rz38wvzsrbqw28hghrfg926h6ig";
+    sha256 = "1v0a9jbsmf9axfqm2cnsqp5ihwffw7rl0z77dyw0m4j2pmyb0558";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-settings-daemon/default.nix b/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 5ee995402ec..d03863b9048 100644
--- a/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -1,17 +1,25 @@
 { stdenv, fetchurl, pkgconfig, intltool, glib, dbus-glib, libxklavier,
   libcanberra-gtk3, libnotify, nss, polkit, gnome3, gtk3, mate,
   pulseaudioSupport ? stdenv.config.pulseaudio or true, libpulseaudio,
-  wrapGAppsHook }:
+  wrapGAppsHook, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "mate-settings-daemon";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yr5v6b9hdk20j29smbw1k4fkyg82i5vlflmgly0vi5whgc74gym";
+    sha256 = "0idw02z0iig0pfxvlhc4dq4sr7kl1w50xscvg0jzzswnxid2l4ip";
   };
 
+  patches = [
+    # Don't use etc/dbus-1/system.d
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/mate-desktop/mate-settings-daemon/pull/296.patch";
+      sha256 = "00dfn8h47zw3wr7yya82vvp19wsw51whn8jwgayn4hkjd161s9nm";
+    })
+  ];
+
   nativeBuildInputs = [
     pkgconfig
     intltool
diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix
index 6f5993cfc35..12818d206a8 100644
--- a/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-system-monitor";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yh1sh5snd7ivchh6l9rbn1s7ia4j5ihhzhqkyjnhr8ln59dvcbm";
+    sha256 = "1d4l5rv01343jf8bk2j5hxvrbp3d705nd4v2pdrjn4h5dw8nxsl1";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mate-user-guide/default.nix b/pkgs/desktops/mate/mate-user-guide/default.nix
index a9a0e171231..72330317bc4 100644
--- a/pkgs/desktops/mate/mate-user-guide/default.nix
+++ b/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-user-guide";
-  version = "1.22.2";
+  version = "1.22.3";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01kcszsjiriqp4hf1k4fhazi2yfqlkn415sfgx0jw0p821bzqf2h";
+    sha256 = "0zv8arsxnbab0qk3ck9i1wp3d4gfclcv6vq6nh5i8zjz6rpp9cjs";
   };
 
   nativeBuildInputs = [ itstool intltool libxml2 ];
diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix
index 7775173611e..adb8fef27f5 100644
--- a/pkgs/desktops/mate/mate-utils/default.nix
+++ b/pkgs/desktops/mate/mate-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-utils";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0768y6x33ljc9dxjlfmvplsn4lrxj5xhjddbyab9h6pqav8527rg";
+    sha256 = "1i6fnm3y1hj8r57x4jpc4ixqs77zln8f7477d0haypflxm3s4kjr";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix
index 36f8fecb192..9d61f45e18e 100644
--- a/pkgs/desktops/mate/mozo/default.nix
+++ b/pkgs/desktops/mate/mozo/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mozo";
-  version = "1.22.1";
+  version = "1.22.2";
 
   format = "other";
   doCheck = false;
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yffp7p3b6ynpf7ck21klym7h09l35amnyahm71dxbv2kzj6hlqh";
+    sha256 = "1lzcwsz940v218frwzhpywp1an9x3cgfvqr7r8dplpdapvd0khrs";
   };
 
   nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix
index cfbe33dd380..e0b61fd35cb 100644
--- a/pkgs/desktops/mate/pluma/default.nix
+++ b/pkgs/desktops/mate/pluma/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pluma";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "14d5c5fg31d7br9h1y3gdcr53j4sxlgybf326jvdcw8mgy91k3dg";
+    sha256 = "1gsj8grdhzb1jvl5zwd8zjc9cj9ys2ndny04gy4bbh80sjaj6xva";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/mate/python-caja/default.nix b/pkgs/desktops/mate/python-caja/default.nix
index 42a8e328a16..d861ddbf4d7 100644
--- a/pkgs/desktops/mate/python-caja/default.nix
+++ b/pkgs/desktops/mate/python-caja/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "python-caja";
-  version = "1.22.0";
+  version = "1.22.1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1zwdjvxci72j0181nlfq6912lw3aq8j3746brlp7wlzn22qp7b0k";
+    sha256 = "07hkvs4a6anrvh28zjsrj8anbcz32p19hslhq66yhcvh0hh4kvqk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index b806c085f84..72983c8479c 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -25,21 +25,22 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.0";
+  version = "unstable-2019-09-17";
 
   repoName = "calendar";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = version;
-    sha256 = "0yiis5ig98gjw4s2qh8lppkdmv1cgi6qchxqncsjdki7yxyyni35";
+    rev = "46346e48b53e9d3d59d9f567b622532338f50f32"; # needed for libical 2.0 compat
+    sha256 = "04xzczcj5rbzqlhmf175d8p0wzw01s4658v5jllrp8nchmndb986";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
       inherit repoName;
       attrPath = pname;
+      versionPolicy = "master";
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 8b82543a0e5..e31355b7b7e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , pantheon
+, fetchpatch
 , substituteAll
 , meson
 , ninja
@@ -55,6 +56,11 @@ stdenv.mkDerivation rec {
       src = ./xkb.patch;
       config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml";
     })
+    # Fix build with latest vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-keyboard/commit/28fa960f607f0b1d67f2864965a079bdfc23e3a8.patch";
+      sha256 = "0121qcg8n7gkz7gpwrxc1cx0nnypj02zy2jmp3cks5r9sc0yi0hw";
+    })
   ];
 
   PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index aa9cdfa0ddd..fd1719814b8 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , pantheon
 , meson
 , ninja
@@ -54,6 +55,14 @@ stdenv.mkDerivation rec {
     webkitgtk
   ];
 
+  patches = [
+    # Fix build with latest vala
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/5fa2882f765076d20c6ef4886198a34a05159f8a.patch";
+      sha256 = "1szryyy7shdmbvx9yhpi0bhzaayg7hl6pq2c456j1qf9kfv0m4hf";
+    })
+  ];
+
   PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
   PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
   PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index d1feaaf0ea4..aa65934acdb 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , pantheon
 , meson
 , ninja
@@ -44,6 +45,14 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
+  patches = [
+    # Fix build with latest vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-printers/commit/3175c2ebf106145a95355d2571e0a2aa4834e884.patch";
+      sha256 = "1b2q48a1284037nz79vjcrz8g2qpsyg7s5rag6bfp03a1ijb7gw3";
+    })
+  ];
+
   PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 87ae233916d..57e7fe6af44 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , pantheon
 , meson
 , ninja
@@ -42,6 +43,14 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
+  patches = [
+    # Fix build with latest vala
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-sharing/commit/22c9d52577a2e8c36c840a99009420266a39e1fe.patch";
+      sha256 = "0rbf1yxhc7k44cwikd45mv2g6slzw0rkwn5s38q3yxai9jnpvqch";
+    })
+  ];
+
   PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index bdf42b1c1ef..7467bd124ac 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
     hicolor-icon-theme
   ];
 
+  dontDropIconThemeCache = true;
+
   mesonFlags = [
     "-Dvolume_icons=false" # Tries to install some icons to /
     "-Dpalettes=false" # Don't install gimp and inkscape palette files
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index aed08c35a80..11193fe872d 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -18,6 +18,7 @@ lib.makeScope pkgs.newScope (self: with self; {
   ];
 
   desktop = [
+    elementary-default-settings
     elementary-session-settings
     elementary-shortcut-overlay
     gala
@@ -58,7 +59,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ];
 
   mutter = pkgs.gnome3.mutter328;
-  vala = pkgs.vala_0_40;
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
@@ -219,4 +219,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
 
+  ### ALIASES
+
+  vala = pkgs.vala; # added 2019-10-10
+
 })
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
new file mode 100644
index 00000000000..3a0b3812450
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
@@ -0,0 +1,309 @@
+From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Sat, 13 Jul 2019 19:06:20 -0400
+Subject: [PATCH 1/2] Build with Meson
+
+Has the following meson build options:
+* default-wallpaper
+* plank-dockitems
+* default-gsettings-overrides
+
+All default to true.
+
+We also split the default-settings gsettings override into another that
+only sets plank's default dockitems. This is installed when plank-dockitems
+is true. We need to have this because those settings are dependent on
+those dockitems actually being installed and we have it optional.
+---
+ accountsservice/create-symlink.py             |  24 ++++++
+ accountsservice/meson.build                   |  25 ++++++
+ .../appcenter.blacklist                       |   0
+ .../default-testpage.pdf                      | Bin
+ settings.ini => gtk/settings.ini              |   0
+ .inputrc => inputrc/.inputrc                  |   0
+ meson.build                                   |  79 ++++++++++++++++++
+ meson/post_install.py                         |  12 +++
+ meson_options.txt                             |  14 ++++
+ ...e => default-settings.gschema.override.in} |   3 +-
+ overrides/meson.build                         |  21 +++++
+ overrides/plank-dockitems.gschema.override    |   2 +
+ .../sessioninstaller.desktop                  |   0
+ 13 files changed, 178 insertions(+), 2 deletions(-)
+ create mode 100644 accountsservice/create-symlink.py
+ create mode 100644 accountsservice/meson.build
+ rename appcenter.blacklist => appcenter/appcenter.blacklist (100%)
+ rename default-testpage.pdf => cups/default-testpage.pdf (100%)
+ rename settings.ini => gtk/settings.ini (100%)
+ rename .inputrc => inputrc/.inputrc (100%)
+ create mode 100644 meson.build
+ create mode 100755 meson/post_install.py
+ create mode 100644 meson_options.txt
+ rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%)
+ create mode 100644 overrides/meson.build
+ create mode 100644 overrides/plank-dockitems.gschema.override
+ rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%)
+
+diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py
+new file mode 100644
+index 0000000..e502134
+--- /dev/null
++++ b/accountsservice/create-symlink.py
+@@ -0,0 +1,24 @@
++#!/usr/bin/env python3
++
++import os
++import sys
++
++if len(sys.argv) < 3:
++    print('Usage: create-symlink.py SOURCE DESTINATION')
++    sys.exit(1)
++
++src = sys.argv[1]
++dest = sys.argv[2]
++
++if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ:
++    src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src)
++    dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest)
++
++if os.path.isabs(src):
++    src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest)))
++
++if not os.path.exists(dest):
++    print('Creating symbolic link: ' + dest + ' -> ' + src)
++    if not os.path.exists(os.path.dirname(dest)):
++        os.makedirs(os.path.dirname(dest))
++    os.symlink(src, dest)
+diff --git a/accountsservice/meson.build b/accountsservice/meson.build
+new file mode 100644
+index 0000000..6d18459
+--- /dev/null
++++ b/accountsservice/meson.build
+@@ -0,0 +1,25 @@
++dbus_dep = dependency('dbus-1')
++dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir])
++
++install_data(
++    'io.elementary.pantheon.AccountsService.xml',
++    install_dir: dbus_interfaces_dir
++)
++
++
++polkit_dep = dependency('polkit-gobject-1')
++polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix])
++
++install_data(
++    'io.elementary.pantheon.AccountsService.policy',
++    install_dir: polkit_actiondir
++)
++
++act_dep = dependency('accountsservice')
++act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir])
++
++meson.add_install_script(
++    'create-symlink.py',
++    join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'),
++    join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'),
++)
+diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist
+similarity index 100%
+rename from appcenter.blacklist
+rename to appcenter/appcenter.blacklist
+diff --git a/default-testpage.pdf b/cups/default-testpage.pdf
+similarity index 100%
+rename from default-testpage.pdf
+rename to cups/default-testpage.pdf
+diff --git a/settings.ini b/gtk/settings.ini
+similarity index 100%
+rename from settings.ini
+rename to gtk/settings.ini
+diff --git a/.inputrc b/inputrc/.inputrc
+similarity index 100%
+rename from .inputrc
+rename to inputrc/.inputrc
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 0000000..7740a34
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,79 @@
++project(
++    'elementary-default-settings',
++    version: '5.1.0',
++    default_options: 'sysconfdir=/etc',
++)
++
++prefix = get_option('prefix')
++datadir = join_paths(prefix, get_option('datadir'))
++sysconfdir = get_option('sysconfdir')
++
++meson.add_install_script('meson/post_install.py', datadir)
++
++# Planks Default DockItems
++if get_option('plank-dockitems')
++    install_subdir(
++        'plank',
++        install_dir: join_paths(sysconfdir, 'skel', '.config')
++    )
++endif
++
++# Setup system wide global environment for applications
++install_subdir(
++    'profile.d',
++    install_dir: join_paths(sysconfdir, 'profile.d'),
++    strip_directory : true
++)
++
++# elementary Plymouth Theme
++install_subdir(
++    'plymouth/elementary',
++    install_dir: join_paths(datadir, 'plymouth', 'themes')
++)
++
++install_data(
++    'plymouth/ubuntu-text.plymouth',
++    install_dir: join_paths(datadir, 'plymouth', 'themes')
++)
++
++# Sudo password feedback in terminals
++install_data(
++    'sudoers.d/pwfeedback',
++    install_dir: join_paths(sysconfdir, 'sudoers.d')
++)
++
++# CUPS Printing testpage
++install_data(
++    'cups/default-testpage.pdf',
++    install_dir: join_paths(datadir, 'cups', 'data')
++)
++
++# GTK3 Settings
++install_data(
++    'gtk/settings.ini',
++    install_dir: join_paths(sysconfdir, 'gtk-3.0')
++)
++
++# So SessionInstaller can have an Icon
++install_data(
++    'sessioninstaller/sessioninstaller.desktop',
++    install_dir: join_paths(datadir, 'applications')
++)
++
++# Default Appcenter Blacklist
++install_data(
++    'appcenter/appcenter.blacklist',
++    install_dir: join_paths(sysconfdir, 'appcenter')
++)
++
++# Configuration file of GNU readline
++install_data(
++    'inputrc/.inputrc',
++    install_dir: join_paths(sysconfdir, 'skel')
++)
++
++# Default gsettings overrides
++subdir('overrides')
++
++# AccountsService extension for Greeter.
++subdir('accountsservice')
+diff --git a/meson/post_install.py b/meson/post_install.py
+new file mode 100755
+index 0000000..c6b5617
+--- /dev/null
++++ b/meson/post_install.py
+@@ -0,0 +1,12 @@
++#!/usr/bin/env python3
++
++import os
++import sys
++import subprocess
++
++if 'DESTDIR' not in os.environ:
++    default_settings_datadir = sys.argv[1]
++
++    print('Compiling GSettings schemas...')
++    subprocess.call(['glib-compile-schemas',
++                    os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')])
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..8fd19ba
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,14 @@
++option('default-wallpaper',
++       type: 'string',
++       value: '/usr/share/backgrounds/elementaryos-default',
++       description: 'Path to default wallpaper to use in Pantheon.')
++
++option('plank-dockitems',
++       type: 'boolean',
++       value: true,
++       description: 'Install default Pantheon Plank dockitems')
++
++option('default-gsettings-overrides',
++       type: 'boolean',
++       value: true,
++       description: 'Install default Pantheon GSettings Overrides')
+diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in
+similarity index 92%
+rename from overrides/default-settings.gschema.override
+rename to overrides/default-settings.gschema.override.in
+index 1aef29c..69d272b 100644
+--- a/overrides/default-settings.gschema.override
++++ b/overrides/default-settings.gschema.override.in
+@@ -1,5 +1,4 @@
+ [net.launchpad.plank.dock.settings]
+-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+ hide-delay=250
+ hide-mode='window-dodge'
+ show-dock-item=false
+@@ -11,7 +10,7 @@ triggers=['<Control>space']
+ [org.gnome.desktop.background]
+ draw-background=true
+ picture-options='zoom'
+-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
++picture-uri='file://@DEFAULT_WALLPAPER@'
+ primary-color='#000000'
+ show-desktop-icons=false
+ 
+diff --git a/overrides/meson.build b/overrides/meson.build
+new file mode 100644
+index 0000000..ad80644
+--- /dev/null
++++ b/overrides/meson.build
+@@ -0,0 +1,21 @@
++if get_option('default-gsettings-overrides')
++    default_wallpaper = get_option('default-wallpaper')
++
++    wallpaper_configuration = configuration_data()
++    wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper)
++
++    settings_override = configure_file(
++        input: 'default-settings.gschema.override.in',
++        output: '@BASENAME@',
++        configuration: wallpaper_configuration,
++        install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
++    )
++endif
++
++# Install conditionally because it's dependent on our dockitems being installed
++if get_option('plank-dockitems')
++    install_data(
++        'plank-dockitems.gschema.override',
++        install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
++    )
++endif
+diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override
+new file mode 100644
+index 0000000..72b38d4
+--- /dev/null
++++ b/overrides/plank-dockitems.gschema.override
+@@ -0,0 +1,2 @@
++[net.launchpad.plank.dock.settings]
++dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop
+similarity index 100%
+rename from sessioninstaller.desktop
+rename to sessioninstaller/sessioninstaller.desktop
+-- 
+2.23.0
+
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch
deleted file mode 100644
index 1b2dc835706..00000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override
-index 1aef29c..08de164 100644
---- a/overrides/default-settings.gschema.override
-+++ b/overrides/default-settings.gschema.override
-@@ -1,5 +1,5 @@
- [net.launchpad.plank.dock.settings]
--dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
-+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
- hide-delay=250
- hide-mode='window-dodge'
- show-dock-item=false
-@@ -8,13 +8,6 @@ theme='Gtk+'
- [org.freedesktop.ibus.general.hotkey]
- triggers=['<Control>space']
- 
--[org.gnome.desktop.background]
--draw-background=true
--picture-options='zoom'
--picture-uri='file:///usr/share/backgrounds/elementaryos-default'
--primary-color='#000000'
--show-desktop-icons=false
--
- [org.gnome.desktop.datetime]
- automatic-timezone=true
- 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index a1a69ee303f..f20f1197499 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,11 +1,20 @@
 { stdenv
 , fetchFromGitHub
 , pantheon
+, meson
+, ninja
+, nixos-artwork
+, glib
+, pkgconfig
+, dbus
+, polkit
+, accountsservice
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-default-settings";
-  version = "5.1.0";
+  version = "5.1.1";
 
   repoName = "default-settings";
 
@@ -13,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0l73py4rr56i4dalb2wh1c6qiwmcjkm0l1j75jp5agcnxldh5wym";
+    sha256 = "10sdy8v34y6bgb3mabwy7k3b5dbqrnab504dvhashpfxr9n9xncy";
   };
 
   passthru = {
@@ -24,24 +33,54 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./correct-override.patch
+    # https://github.com/elementary/default-settings/pull/119
+    ./0001-Build-with-Meson.patch
   ];
 
-  dontBuild = true;
-  dontConfigure = true;
+  nativeBuildInputs = [
+    accountsservice
+    dbus
+    glib # polkit requires
+    meson
+    ninja
+    pkgconfig
+    polkit
+    python3
+  ];
+
+  mesonFlags = [
+    "--sysconfdir=${placeholder "out"}/etc"
+    "-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
+    "-Dplank-dockitems=false"
+  ];
 
-  installPhase = ''
-    mkdir -p $out/etc/gtk-3.0
-    cp -av settings.ini $out/etc/gtk-3.0
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
 
-    mkdir -p $out/share/glib-2.0/schemas
-    cp -av overrides/default-settings.gschema.override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override
+  preInstall = ''
+    # Install our override for plank dockitems.
+    # This is because we don't have Pantheon's mail or Appcenter.
+    # See: https://github.com/NixOS/nixpkgs/issues/58161
+    schema_dir=$out/share/glib-2.0/schemas
+    install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
+
+    # Our launchers that use paths at /run/current-system/sw/bin
+    mkdir -p $out/etc/skel/.config/plank/dock1
+    cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
+
+    # Whitelist wingpanel indicators to be used in the greeter
+    # TODO: is this needed or installed upstream?
+    install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+  '';
 
-    mkdir $out/etc/wingpanel.d
-    cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+  postFixup = ''
+    # https://github.com/elementary/default-settings/issues/55
+    rm -rf $out/share/plymouth
+    rm -rf $out/share/cups
 
-    mkdir -p $out/share/elementary/config/plank/dock1
-    cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers
+    rm -rf $out/share/applications
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
new file mode 100644
index 00000000000..671448745c5
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -0,0 +1,2 @@
+[net.launchpad.plank.dock.settings]
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 963418feec0..5241aded066 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , linkFarm
+, substituteAll
 , elementary-greeter
 , pantheon
 , pkgconfig
@@ -86,6 +87,11 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./sysconfdir-install.patch
+    # Needed until https://github.com/elementary/greeter/issues/360 is fixed
+    (substituteAll {
+      src = ./hardcode-fallback-background.patch;
+      default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png";
+    })
   ];
 
   preFixup = ''
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch
new file mode 100644
index 00000000000..556a0fc82a1
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch
@@ -0,0 +1,22 @@
+diff --git a/src/Cards/BackgroundImage.vala b/src/Cards/BackgroundImage.vala
+index b57fb4d..ddfd56c 100644
+--- a/src/Cards/BackgroundImage.vala
++++ b/src/Cards/BackgroundImage.vala
+@@ -9,7 +9,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
+ 
+     public BackgroundImage (string? path) {
+         if (path == null) {
+-            path = "/usr/share/backgrounds/elementaryos-default";
++            path = "@default_wallpaper@";
+         }
+ 
+         try {
+@@ -19,7 +19,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
+             critical ("Fallback to default wallpaper");
+ 
+             try {
+-                full_pixbuf = new Gdk.Pixbuf.from_file ("/usr/share/backgrounds/elementaryos-default");
++                full_pixbuf = new Gdk.Pixbuf.from_file ("@default_wallpaper");
+             } catch (GLib.Error e) {
+                 critical (e.message);
+             }
diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 9fc4418e7ca..38e57539de4 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -41,13 +41,9 @@ runCommand "elementary-gsettings-desktop-schemas" {}
      ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml $schema_dir\n") gsettingsOverridePackages}
 
      chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
-     cp ${elementary-default-settings}/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override $schema_dir
+     cp ${glib.getSchemaPath elementary-default-settings}/* $schema_dir
 
      cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
-     [org.gnome.desktop.background]
-     picture-uri='file://${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
-     primary-color='#000000'
-
      ${extraGSettingsOverrides}
      EOF
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop
deleted file mode 100644
index 517a9457ae1..00000000000
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=Instantiate Default elementary dockitems
-Exec=@script@
-StartupNotify=false
-NoDisplay=true
-OnlyShowIn=Pantheon;
-X-GNOME-Autostart-Phase=EarlyInitialization
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 7b0657bcd80..ab7333212a0 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -10,9 +10,12 @@
 , onboard
 , at-spi2-core
 , elementary-default-settings
-, writeShellScriptBin
 , elementary-settings-daemon
 , runtimeShell
+, writeText
+, meson
+, ninja
+, git
 }:
 
 let
@@ -33,26 +36,32 @@ let
     #!${runtimeShell}
 
     elementary_default_settings="${elementary-default-settings}"
-    dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/*
+    dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/*
 
     if [ ! -d "$HOME/.config/plank/dock1" ]; then
         echo "Instantiating default Plank Dockitems..."
 
-        mkdir -p $HOME/.config/plank/dock1/launchers
-        cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/
+        mkdir -p "$HOME/.config/plank/dock1/launchers"
+        cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/"
     else
         echo "Plank Dockitems already instantiated"
     fi
   '';
 
-  dockitemAutostart = substituteAll {
-    src = ./default-elementary-dockitems.desktop;
-    script = dockitems-script;
-  };
+  dockitemAutostart = writeText "default-elementary-dockitems.desktop" ''
+    [Desktop Entry]
+    Type=Application
+    Name=Instantiate Default elementary dockitems
+    Exec=${dockitems-script}
+    StartupNotify=false
+    NoDisplay=true
+    OnlyShowIn=Pantheon;
+    X-GNOME-Autostart-Phase=EarlyInitialization
+  '';
 
-  executable = writeShellScriptBin "pantheon" ''
-    export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS
-    export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS
+  executable = writeScript "pantheon" ''
+    export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:${elementary-default-settings}/etc:$XDG_CONFIG_DIRS
+    export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
     exec ${gnome-session}/bin/gnome-session --session=pantheon "$@"
   '';
 
@@ -71,17 +80,23 @@ stdenv.mkDerivation rec {
     sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
   };
 
-  passthru = {
-    updateScript = pantheon.updateScript {
-      inherit repoName;
-      attrPath = pname;
-    };
-  };
+  postPatch = ''
+    ${git}/bin/git apply --verbose ${./meson.patch}
+  '';
 
-  dontBuild = true;
-  dontConfigure = true;
+  nativeBuildInputs = [
+    meson
+    ninja
+  ];
 
-  installPhase = ''
+  mesonFlags = [
+    "-Ddefaults-list=false"
+    "-Dpatched-gsd-autostarts=false"
+    "-Dpatched-ubuntu-autostarts=false"
+    "-Dfallback-session=GNOME"
+  ];
+
+  postInstall = ''
     mkdir -p $out/share/applications
     cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
 
@@ -92,16 +107,14 @@ stdenv.mkDerivation rec {
 
     cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
 
-    mkdir -p $out/share/gnome-session/sessions
-    cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions
-
-    mkdir -p $out/share/xsessions
-    cp -av xsessions/pantheon.desktop $out/share/xsessions
+    mkdir -p $out/libexec
+    substitute ${executable} $out/libexec/pantheon --subst-var out
+    chmod +x $out/libexec/pantheon
   '';
 
   postFixup = ''
     substituteInPlace $out/share/xsessions/pantheon.desktop \
-      --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \
+      --replace "gnome-session --session=pantheon" "$out/libexec/pantheon" \
       --replace "wingpanel" "${wingpanel}/bin/wingpanel"
 
     for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
@@ -113,6 +126,13 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru = {
+    updateScript = pantheon.updateScript {
+      inherit repoName;
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Session settings for elementary";
     homepage = https://github.com/elementary/session-settings;
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
new file mode 100644
index 00000000000..39d15565661
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
@@ -0,0 +1,272 @@
+From 0a20ad6a31c74f4f96e9ed3613ec6c16a94ede39 Mon Sep 17 00:00:00 2001
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu, 8 Aug 2019 11:25:37 -0400
+Subject: [PATCH] Build with Meson (#13)
+
+---
+ applications/meson.build                       |  4 ++++
+ ...ettingsDaemon.A11ySettings-pantheon.desktop |  0
+ ...e.SettingsDaemon.Clipboard-pantheon.desktop |  0
+ ...gnome.SettingsDaemon.Color-pantheon.desktop |  0
+ ...me.SettingsDaemon.Datetime-pantheon.desktop |  0
+ ...ettingsDaemon.Housekeeping-pantheon.desktop |  0
+ ...me.SettingsDaemon.Keyboard-pantheon.desktop |  0
+ ...e.SettingsDaemon.MediaKeys-pantheon.desktop |  0
+ ...gnome.SettingsDaemon.Mouse-pantheon.desktop |  0
+ ...gnome.SettingsDaemon.Power-pantheon.desktop |  0
+ ...sDaemon.PrintNotifications-pantheon.desktop |  0
+ ...nome.SettingsDaemon.Rfkill-pantheon.desktop |  0
+ ...ome.SettingsDaemon.Sharing-pantheon.desktop |  0
+ ...e.SettingsDaemon.Smartcard-pantheon.desktop |  0
+ ...gnome.SettingsDaemon.Sound-pantheon.desktop |  0
+ ...gnome.SettingsDaemon.Wacom-pantheon.desktop |  0
+ ...e.SettingsDaemon.XSettings-pantheon.desktop |  0
+ autostart/meson.build                          | 18 ++++++++++++++++++
+ .../gnome-keyring-gpg-pantheon.desktop         |  0
+ .../gnome-keyring-pkcs11-pantheon.desktop      |  0
+ .../gnome-keyring-secrets-pantheon.desktop     |  0
+ .../gnome-keyring-ssh-pantheon.desktop         |  0
+ .../onboard-autostart-pantheon.desktop         |  0
+ .../orca-autostart-pantheon.desktop            |  0
+ .../user-dirs-update-gtk-pantheon.desktop      |  0
+ gnome-session/meson.build                      | 11 +++++++++++
+ .../{pantheon.session => pantheon.session.in}  |  2 +-
+ meson.build                                    | 14 ++++++++++++++
+ meson_options.txt                              | 11 +++++++++++
+ xsessions/meson.build                          |  4 ++++
+ 30 files changed, 63 insertions(+), 1 deletion(-)
+ create mode 100644 applications/meson.build
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Color-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Datetime-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Mouse-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Power-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sharing-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sound-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Wacom-pantheon.desktop (100%)
+ rename autostart/{ => gsd}/org.gnome.SettingsDaemon.XSettings-pantheon.desktop (100%)
+ create mode 100644 autostart/meson.build
+ rename autostart/{ => ubuntu}/gnome-keyring-gpg-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-pkcs11-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-secrets-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/gnome-keyring-ssh-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/onboard-autostart-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/orca-autostart-pantheon.desktop (100%)
+ rename autostart/{ => ubuntu}/user-dirs-update-gtk-pantheon.desktop (100%)
+ create mode 100644 gnome-session/meson.build
+ rename gnome-session/{pantheon.session => pantheon.session.in} (94%)
+ create mode 100644 meson.build
+ create mode 100644 meson_options.txt
+ create mode 100644 xsessions/meson.build
+
+diff --git a/applications/meson.build b/applications/meson.build
+new file mode 100644
+index 0000000..d03b92b
+--- /dev/null
++++ b/applications/meson.build
+@@ -0,0 +1,4 @@
++install_data(
++    'defaults.list',
++    install_dir: join_paths(datadir, 'applications')
++)
+diff --git a/autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
+diff --git a/autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+similarity index 100%
+rename from autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+rename to autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
+diff --git a/autostart/meson.build b/autostart/meson.build
+new file mode 100644
+index 0000000..265088b
+--- /dev/null
++++ b/autostart/meson.build
+@@ -0,0 +1,18 @@
++autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart')
++
++if get_option('patched-gsd-autostarts')
++    install_subdir(
++        'gsd',
++        install_dir: autostartdir,
++        strip_directory: true
++    )
++endif
++
++
++if get_option('patched-ubuntu-autostarts')
++    install_subdir(
++        'ubuntu',
++        install_dir: autostartdir,
++        strip_directory: true
++    )
++endif
+diff --git a/autostart/gnome-keyring-gpg-pantheon.desktop b/autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-gpg-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
+diff --git a/autostart/gnome-keyring-pkcs11-pantheon.desktop b/autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-pkcs11-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
+diff --git a/autostart/gnome-keyring-secrets-pantheon.desktop b/autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-secrets-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
+diff --git a/autostart/gnome-keyring-ssh-pantheon.desktop b/autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
+similarity index 100%
+rename from autostart/gnome-keyring-ssh-pantheon.desktop
+rename to autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
+diff --git a/autostart/onboard-autostart-pantheon.desktop b/autostart/ubuntu/onboard-autostart-pantheon.desktop
+similarity index 100%
+rename from autostart/onboard-autostart-pantheon.desktop
+rename to autostart/ubuntu/onboard-autostart-pantheon.desktop
+diff --git a/autostart/orca-autostart-pantheon.desktop b/autostart/ubuntu/orca-autostart-pantheon.desktop
+similarity index 100%
+rename from autostart/orca-autostart-pantheon.desktop
+rename to autostart/ubuntu/orca-autostart-pantheon.desktop
+diff --git a/autostart/user-dirs-update-gtk-pantheon.desktop b/autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
+similarity index 100%
+rename from autostart/user-dirs-update-gtk-pantheon.desktop
+rename to autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
+diff --git a/gnome-session/meson.build b/gnome-session/meson.build
+new file mode 100644
+index 0000000..b9245a1
+--- /dev/null
++++ b/gnome-session/meson.build
+@@ -0,0 +1,11 @@
++fallback_session = get_option('fallback-session')
++
++session_configuration = configuration_data()
++session_configuration.set('FALLBACK_SESSION', fallback_session)
++
++pantheon_session = configure_file(
++  input: 'pantheon.session.in',
++  output: '@BASENAME@',
++  configuration: session_configuration,
++  install_dir: join_paths(datadir, 'gnome-session', 'sessions')
++)
+diff --git a/gnome-session/pantheon.session b/gnome-session/pantheon.session.in
+similarity index 94%
+rename from gnome-session/pantheon.session
+rename to gnome-session/pantheon.session.in
+index 1626393..7bc1814 100644
+--- a/gnome-session/pantheon.session
++++ b/gnome-session/pantheon.session.in
+@@ -1,5 +1,5 @@
+ [GNOME Session]
+ Name=Pantheon
+ RequiredComponents=gala;gala-daemon;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
+-FallbackSession=ubuntu
++FallbackSession=@FALLBACK_SESSION@
+ DesktopName=Pantheon
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 0000000..a7d3195
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,14 @@
++project('elementary-session-settings',
++        version: '5.0.3',
++        default_options: 'sysconfdir=/etc')
++
++prefix = get_option('prefix')
++datadir = join_paths(prefix, get_option('datadir'))
++
++if get_option('defaults-list')
++    subdir('applications')
++endif
++
++subdir('autostart')
++subdir('gnome-session')
++subdir('xsessions')
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..4c5ac2d
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,11 @@
++option('defaults-list', type : 'boolean', value: true,
++       description : 'Install defaults.list')
++
++option('patched-gsd-autostarts', type : 'boolean', value: true,
++       description : 'Install patched GNOME Settings Daemon autostarts')
++
++option('patched-ubuntu-autostarts', type : 'boolean', value: true,
++       description : 'Install patched Ubuntu autostarts')
++
++option('fallback-session', type : 'string', value: 'ubuntu',
++       description : 'Fallback session to use for Pantheon')
+diff --git a/xsessions/meson.build b/xsessions/meson.build
+new file mode 100644
+index 0000000..d144291
+--- /dev/null
++++ b/xsessions/meson.build
+@@ -0,0 +1,4 @@
++install_data(
++    'pantheon.desktop',
++    install_dir: join_paths(datadir, 'xsessions')
++)
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 74408a4ed6d..74542b5c4c4 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -18,8 +18,23 @@
 , elementary-calendar
 , elementary-icon-theme
 , wrapGAppsHook
+, fetchurl
 }:
 
+let
+
+  # Terrible workaround https://github.com/elementary/wingpanel-indicator-datetime/issues/122
+  # Evolution Data Server functionality will be broken (events from calendar in indicator)
+  # but at least we don't fail to build.
+  old-evolution-data-server = evolution-data-server.overrideAttrs(old: {
+    src = fetchurl {
+      url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor "3.32.4"}/${old.pname}-3.32.4.tar.xz";
+      sha256 = "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3";
+    };
+  });
+
+in
+
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
   version = "2.1.3";
@@ -49,7 +64,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     elementary-icon-theme
-    evolution-data-server
+    old-evolution-data-server
     granite
     gtk3
     libgee
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 521d22d2335..b93eb2f3f9b 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -11,7 +11,6 @@
 , gtk3
 , glib
 , gettext
-, hicolor-icon-theme
 , gobject-introspection
 , wrapGAppsHook
 }:
@@ -34,6 +33,12 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/granite/raw/0550b44ed6400c9b1ff7e70871913747df2ff323/f/00-datetime-clock-format-gsettings.patch";
       sha256 = "0i9yvdmn77x5fjdwd1raw6ym8js8yxa7w6ydc7syx7hcyls00dmq";
     })
+
+    # Fix build latest vala.
+    (fetchpatch {
+      url = "https://github.com/elementary/granite/commit/fd26013c84afdeb6300ae2f4a574856753fc2b58.patch";
+      sha256 = "01nxqhj8gr61n6wx6ccrqdn25nmbrhhk437k21g4mxqx0gnih265";
+    })
   ];
 
   passthru = {
@@ -56,7 +61,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     gtk3
-    hicolor-icon-theme
     libgee
   ];
 
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 67a67dd4b3d..d29178b220d 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -90,8 +90,6 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
-
     for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart)
     do
       echo "Patching OnlyShowIn to Pantheon in: $autostart"
@@ -100,7 +98,7 @@ stdenv.mkDerivation rec {
 
     # This breaks lightlocker https://github.com/elementary/session-settings/commit/b0e7a2867608c3a3916f9e4e21a68264a20e44f8
     # TODO: shouldn't be neeed for the 5.1 greeter (awaiting release)
-    rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy-pantheon.desktop
+    rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop
 
     # So the polkit policy can reference /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
     mkdir -p $out/bin/elementary-settings-daemon
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 48b038325fe..5b6abddbcda 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -8,37 +8,42 @@
   imagemagick,
   netpbm,
   perl,
-  # these will typically need to be set via an override
-  # in a NixOS context
-  nixosBranding ? false,
-  nixosName ? "NixOS",
-  nixosVersion ? "",
+  logoName ? null,
+  logoFile ? null,
+  osName ? null,
+  osVersion ? null,
   topColor ? "black",
   bottomColor ? "black"
 }:
 
-let
-  logoName = "nixos";
+let 
+  validColors = [ "black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green" ];
+  resolvedLogoName = if (logoFile != null && logoName == null) then lib.strings.removeSuffix ".png" (baseNameOf(toString logoFile)) else logoName;
 in
+  assert lib.asserts.assertOneOf "topColor" topColor validColors;
+  assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
+  
+
 mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ plymouth ] ++ lib.optionals nixosBranding [ imagemagick netpbm perl ];
+  buildInputs = [ plymouth ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
-  cmakeFlags = lib.optionals nixosBranding [
-    "-DDISTRO_NAME=${nixosName}"
-    "-DDISTRO_VERSION=${nixosVersion}"
-    "-DDISTRO_LOGO=${logoName}"
-    "-DBACKGROUND_TOP_COLOR=${topColor}"
-    "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
-  ];
+  cmakeFlags = []
+    ++ lib.optional (osName      != null) "-DDISTRO_NAME=${osName}"
+    ++ lib.optional (osVersion   != null) "-DDISTRO_VERSION=${osVersion}"
+    ++ lib.optional (logoName    != null) "-DDISTRO_LOGO=${logoName}"
+    ++ lib.optional (topColor    != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
+    ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
+  ;
+  
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
-  '' + lib.optionalString nixosBranding ''
-      cp ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png breeze/images/${logoName}.logo.png
+  '' + lib.optionalString (logoFile != null) ''
+      cp ${logoFile} breeze/images/${resolvedLogoName}.logo.png
 
       # conversion for 16bit taken from the breeze-plymouth readme
-      convert ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
-      pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${logoName}.logo.png
+      convert ${logoFile} -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
+      pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${resolvedLogoName}.logo.png
   '';
 }
diff --git a/pkgs/desktops/plasma-5/kdecoration.nix b/pkgs/desktops/plasma-5/kdecoration.nix
index 569da3c7034..3f2e9be462d 100644
--- a/pkgs/desktops/plasma-5/kdecoration.nix
+++ b/pkgs/desktops/plasma-5/kdecoration.nix
@@ -2,7 +2,11 @@
 
 mkDerivation {
   name = "kdecoration";
+  meta = {
+    broken = builtins.compareVersions qtbase.version "5.12.0" < 0;
+  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ki18n ];
   outputs = [ "out" "dev" ];
+  broken = true;
 }
diff --git a/pkgs/desktops/plasma-5/kwallet-pam.nix b/pkgs/desktops/plasma-5/kwallet-pam.nix
index b4fd032cf1f..7ddd6e2abb7 100644
--- a/pkgs/desktops/plasma-5/kwallet-pam.nix
+++ b/pkgs/desktops/plasma-5/kwallet-pam.nix
@@ -7,4 +7,8 @@ mkDerivation {
   postPatch = ''
     sed -i pam_kwallet_init -e "s|socat|${lib.getBin socat}/bin/socat|"
   '';
+  postFixup = ''
+    wrapQtApp $out/libexec/pam_kwallet_init
+  '';
+  dontWrapQtApps = true;
 }
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index 5625aa656ce..cf9d7084401 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,11 +1,14 @@
 {
   mkDerivation, lib, copyPathsToStore, propagate,
   extra-cmake-modules,
-  kwayland, libXrandr, qtx11extras
+  kwayland, libXrandr, qtbase, qtx11extras
 }:
 
 mkDerivation {
   name = "libkscreen";
+  meta = {
+    broken = builtins.compareVersions qtbase.version "5.12.0" < 0;
+  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/rox/rox-filer/default.nix b/pkgs/desktops/rox/rox-filer/default.nix
index 543e3ca897f..05f5936a6cb 100644
--- a/pkgs/desktops/rox/rox-filer/default.nix
+++ b/pkgs/desktops/rox/rox-filer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk, libSM, shared-mime-info, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, libSM, shared-mime-info }:
 
 let
   version = "2.11";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 gtk shared-mime-info hicolor-icon-theme libSM ];
+  buildInputs = [ libxml2 gtk shared-mime-info libSM ];
   NIX_LDFLAGS = [ "-ldl" "-lm" ];
 
   patches = [
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
index 144291da86d..43e943f194a 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     description = "Global Menu applet for XFCE4";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ jD91mZM2 ];
+    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce4-14/tumbler/default.nix b/pkgs/desktops/xfce4-14/tumbler/default.nix
index ecbc62d8ffb..e99551bd8d2 100644
--- a/pkgs/desktops/xfce4-14/tumbler/default.nix
+++ b/pkgs/desktops/xfce4-14/tumbler/default.nix
@@ -27,4 +27,9 @@ mkXfceDerivation {
     libgsf
     poppler # technically the glib binding
   ];
+
+  # WrapGAppsHook won't touch this binary automatically, so we wrap manually.
+  postFixup = ''
+    wrapProgram $out/lib/tumbler-1/tumblerd "''${gappsWrapperArgs[@]}"
+  '';
 }
diff --git a/pkgs/desktops/xfce4-14/xfburn/default.nix b/pkgs/desktops/xfce4-14/xfburn/default.nix
index 27fae12981c..dd3a9af1680 100644
--- a/pkgs/desktops/xfce4-14/xfburn/default.nix
+++ b/pkgs/desktops/xfce4-14/xfburn/default.nix
@@ -9,4 +9,5 @@ mkXfceDerivation {
 
   nativeBuildInputs = [ libxslt docbook_xsl ];
   buildInputs = [ exo gtk2 libburn libisofs libxfce4ui ];
+  meta.broken = true;
 }
diff --git a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
index 78e98e9ea7d..3b9cd268d55 100644
--- a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf }:
+{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2 }:
 
 mkXfceDerivation {
   category = "apps";
@@ -7,7 +7,7 @@ mkXfceDerivation {
 
   sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp";
 
-  buildInputs = [ gtk3 libxfce4ui vte xfconf ];
+  buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
 
   meta = {
     description = "A modern terminal emulator";