summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2019-08-21 14:25:13 +0200
committerRobin Gloster <mail@glob.in>2019-08-21 14:25:13 +0200
commitf4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d (patch)
tree43c003d74f5de4cf4f42207cfd933d1077f8f04a /pkgs/desktops
parent9135412b63fcdb8d5cf1be659b657628f754d9c5 (diff)
parent609d408970362522c3b85ea5f903321247ed502f (diff)
downloadnixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar.gz
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar.bz2
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar.lz
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar.xz
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.tar.zst
nixpkgs-f4fc845e5b8195b7ef4c7bc6a0e83495ae472d2d.zip
Merge remote-tracking branch 'upstream/master' into openssl-1.1
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/deepin/dde-calendar/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-control-center/default.nix6
-rw-r--r--pkgs/desktops/deepin/dde-dock/default.nix10
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-launcher/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix6
-rw-r--r--pkgs/desktops/deepin/deepin-anything/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-calculator/default.nix6
-rw-r--r--pkgs/desktops/deepin/deepin-image-viewer/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-menu/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-metacity/default.nix3
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-screenshot/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix4
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix3
-rw-r--r--pkgs/desktops/deepin/deepin-turbo/default.nix4
-rw-r--r--pkgs/desktops/deepin/dtkcore/default.nix4
-rw-r--r--pkgs/desktops/deepin/dtkwidget/default.nix17
-rw-r--r--pkgs/desktops/deepin/dtkwm/default.nix17
-rw-r--r--pkgs/desktops/deepin/qcef/default.nix4
-rw-r--r--pkgs/desktops/deepin/qt5dxcb-plugin/default.nix12
-rw-r--r--pkgs/desktops/deepin/qt5integration/default.nix6
-rw-r--r--pkgs/desktops/deepin/udisks2-qt5/default.nix4
-rw-r--r--pkgs/desktops/enlightenment/terminology.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/default.nix77
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch540
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/tali/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix29
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix31
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix39
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix35
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix42
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix49
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix46
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix48
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix29
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix32
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix31
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix16
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix15
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix17
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix19
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix18
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix17
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix21
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix26
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix15
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix25
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix17
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/wrapper.nix7
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix21
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix27
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix5
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix18
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix16
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix16
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix10
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix13
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix20
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix29
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix28
-rw-r--r--pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix10
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix33
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix39
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix20
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix24
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix21
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix19
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix17
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix17
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix21
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix18
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix23
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix19
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix9
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix18
-rw-r--r--pkgs/desktops/pantheon/services/cerbere/default.nix17
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix17
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix32
-rw-r--r--pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix23
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix8
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix16
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix14
-rw-r--r--pkgs/desktops/pantheon/update.nix24
-rw-r--r--pkgs/desktops/surf-display/default.nix53
-rw-r--r--pkgs/desktops/surf-display/pdf-makefile.patch24
-rw-r--r--pkgs/desktops/xfce4-14/exo/default.nix22
-rw-r--r--pkgs/desktops/xfce4-14/garcon/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/gigolo/default.nix8
-rw-r--r--pkgs/desktops/xfce4-14/libxfce4ui/default.nix14
-rw-r--r--pkgs/desktops/xfce4-14/libxfce4util/default.nix7
-rw-r--r--pkgs/desktops/xfce4-14/mkXfceDerivation.nix4
-rw-r--r--pkgs/desktops/xfce4-14/mousepad/default.nix13
-rw-r--r--pkgs/desktops/xfce4-14/orage/default.nix2
-rw-r--r--pkgs/desktops/xfce4-14/parole/default.nix14
-rw-r--r--pkgs/desktops/xfce4-14/ristretto/default.nix15
-rw-r--r--pkgs/desktops/xfce4-14/thunar-volman/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/thunar/default.nix18
-rw-r--r--pkgs/desktops/xfce4-14/tumbler/default.nix27
-rw-r--r--pkgs/desktops/xfce4-14/xfburn/default.nix8
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-appfinder/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-dev-tools/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-notifyd/default.nix4
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-panel/default.nix20
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-power-manager/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-screenshooter/default.nix3
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-session/default.nix22
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-settings/default.nix17
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-terminal/default.nix9
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-volumed-pulse/default.nix2
-rw-r--r--pkgs/desktops/xfce4-14/xfce4-whiskermenu-plugin/default.nix8
-rw-r--r--pkgs/desktops/xfce4-14/xfconf/default.nix5
-rw-r--r--pkgs/desktops/xfce4-14/xfdesktop/default.nix12
-rw-r--r--pkgs/desktops/xfce4-14/xfwm4/default.nix5
131 files changed, 1959 insertions, 608 deletions
diff --git a/pkgs/desktops/deepin/dde-calendar/default.nix b/pkgs/desktops/deepin/dde-calendar/default.nix
index 16c8002b8e4..0d25d9083eb 100644
--- a/pkgs/desktops/deepin/dde-calendar/default.nix
+++ b/pkgs/desktops/deepin/dde-calendar/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, qttools,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qttools,
   deepin-gettext-tools, dtkcore, dtkwidget, deepin
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-calendar";
   version = "1.2.10";
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
index 906812cf98b..88c3639ff2e 100644
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/dde-control-center/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, deepin, qttools, qtdeclarative,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, deepin, qttools, qtdeclarative,
  networkmanager, qtsvg, qtx11extras,  dtkcore, dtkwidget, geoip, gsettings-qt,
  dde-network-utils, networkmanager-qt, xorg, mtdev, fontconfig, freetype, dde-api,
  dde-daemon, qt5integration, deepin-desktop-base, deepin-desktop-schemas, dbus,
  systemd, dde-qt-dbus-factory, qtmultimedia, qtbase, glib, gnome3, which,
- substituteAll, wrapGAppsHook, tzdata
+ substituteAll, tzdata, wrapGAppsHook
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-control-center";
   version = "4.10.11";
diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix
index e143f783a5a..21c8221bd13 100644
--- a/pkgs/desktops/deepin/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/dde-dock/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
-  qtsvg, libsForQt5, polkit, gsettings-qt, dtkcore, dtkwidget,
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
+  qtsvg, polkit, gsettings-qt, dtkcore, dtkwidget,
   dde-qt-dbus-factory, dde-network-utils, dde-daemon,
   deepin-desktop-schemas, xorg, glib, wrapGAppsHook, deepin,
-  plugins ? [], symlinkJoin, makeWrapper }:
+  plugins ? [], symlinkJoin, makeWrapper, libdbusmenu }:
 
 let
-unwrapped = stdenv.mkDerivation rec {
+unwrapped = mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-dock";
   version = "4.10.3";
@@ -34,7 +34,7 @@ unwrapped = stdenv.mkDerivation rec {
     dtkwidget
     glib.bin
     gsettings-qt
-    libsForQt5.libdbusmenu
+    libdbusmenu
     polkit
     qtsvg
     qtx11extras
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
index c203ccae6fb..3580eeb4304 100644
--- a/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ b/pkgs/desktops/deepin/dde-file-manager/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, avfs, dde-daemon, dde-dock,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, avfs, dde-daemon, dde-dock,
   dde-polkit-agent, dde-qt-dbus-factory, deepin, deepin-anything,
   deepin-desktop-schemas, deepin-gettext-tools, deepin-movie-reborn,
   deepin-shortcut-viewer, deepin-terminal, dtkcore, dtkwidget,
@@ -8,7 +8,7 @@
   qtx11extras, runtimeShell, samba, shadow, taglib, udisks2-qt5,
   xdg-user-dirs, xorg, zlib, wrapGAppsHook }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-file-manager";
   version = "4.8.6.4";
diff --git a/pkgs/desktops/deepin/dde-launcher/default.nix b/pkgs/desktops/deepin/dde-launcher/default.nix
index 2710393a257..f8a05b86980 100644
--- a/pkgs/desktops/deepin/dde-launcher/default.nix
+++ b/pkgs/desktops/deepin/dde-launcher/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, dde-qt-dbus-factory,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, dde-qt-dbus-factory,
   dde-session-ui, deepin, deepin-desktop-schemas, deepin-wallpapers,
   dtkcore, dtkwidget, gsettings-qt, qtsvg, qttools, qtx11extras,
   which, xdg_utils, wrapGAppsHook }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-launcher";
   version = "4.6.13";
diff --git a/pkgs/desktops/deepin/dde-network-utils/default.nix b/pkgs/desktops/deepin/dde-network-utils/default.nix
index 84c7c9207ec..4fd08749ee4 100644
--- a/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ b/pkgs/desktops/deepin/dde-network-utils/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, substituteAll, qmake, pkgconfig, qttools,
+{ stdenv, mkDerivation, fetchFromGitHub, substituteAll, qmake, pkgconfig, qttools,
   dde-qt-dbus-factory, proxychains, which, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-network-utils";
   version = "0.1.4";
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
index 8e58ae2f684..d1f1bed2775 100644
--- a/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qttools, polkit-qt,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, polkit-qt,
   dtkcore, dtkwidget, dde-qt-dbus-factory, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-polkit-agent";
   version = "0.2.10";
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
index 0c00627cd4f..8302e8e97bc 100644
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ b/pkgs/desktops/deepin/dde-session-ui/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, dbus, dde-daemon,
+{ 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,
   onboard, qtsvg, qttools, qtx11extras, setxkbmap, utillinux, which,
   xkeyboard_config, xorg, xrandr, wrapGAppsHook }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dde-session-ui";
   version = "4.9.12";
@@ -109,7 +109,7 @@ stdenv.mkDerivation 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[@]}"
+      wrapProgram $binary "''${qtWrapperArgs[@]}"
     done
 
     searchHardCodedPaths $out  # debugging
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
index a8cce9ba392..c768fa60ce7 100644
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ b/pkgs/desktops/deepin/deepin-anything/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qtbase, udisks2-qt5, utillinux,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qtbase, udisks2-qt5, utillinux,
   dtkcore, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-anything";
   version = "0.1.0";
diff --git a/pkgs/desktops/deepin/deepin-calculator/default.nix b/pkgs/desktops/deepin/deepin-calculator/default.nix
index 5b7ca756607..51f0b666cb1 100644
--- a/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ b/pkgs/desktops/deepin/deepin-calculator/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg, dtkcore,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg, dtkcore,
   dtkwidget, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-calculator";
   version = "1.0.11";
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   postFixup = ''
     searchHardCodedPaths $out  # debugging
   '';
-  
+
   passthru.updateScript = deepin.updateScript { inherit name; };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
index 5957478aa48..89ef6247504 100644
--- a/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg,
   qtx11extras, dtkcore, dtkwidget, qt5integration, freeimage, libraw,
   libexif, deepin
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-image-viewer";
   version = "1.3.17";
diff --git a/pkgs/desktops/deepin/deepin-menu/default.nix b/pkgs/desktops/deepin/deepin-menu/default.nix
index 43a124c0719..4292fb2d212 100644
--- a/pkgs/desktops/deepin/deepin-menu/default.nix
+++ b/pkgs/desktops/deepin/deepin-menu/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
   qt5integration, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-menu";
   version = "3.4.8";
diff --git a/pkgs/desktops/deepin/deepin-metacity/default.nix b/pkgs/desktops/deepin/deepin-metacity/default.nix
index fdf2c240e2c..a4aede5857c 100644
--- a/pkgs/desktops/deepin/deepin-metacity/default.nix
+++ b/pkgs/desktops/deepin/deepin-metacity/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, gnome3, glib,
   gtk3, libgtop, bamf, json-glib, libcanberra-gtk3, libxkbcommon,
   libstartup_notification, deepin-wallpapers, deepin-desktop-schemas,
-  deepin }:
+  deepin, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     libtool
     glib.dev
     gnome3.gnome-common
+    wrapGAppsHook
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
index cdf3019e5fe..6e14f0fd804 100644
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
   dtkcore, dtkwidget, ffmpeg, ffmpegthumbnailer, mpv, pulseaudio,
   libdvdnav, libdvdread, xorg, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-movie-reborn";
   version = "3.2.24";
diff --git a/pkgs/desktops/deepin/deepin-screenshot/default.nix b/pkgs/desktops/deepin/deepin-screenshot/default.nix
index 4096df66190..256744828db 100644
--- a/pkgs/desktops/deepin/deepin-screenshot/default.nix
+++ b/pkgs/desktops/deepin/deepin-screenshot/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, xdg_utils, qttools, qtx11extras,
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkgconfig, xdg_utils, qttools, qtx11extras,
   dtkcore, dtkwidget, dtkwm, deepin-turbo, deepin-shortcut-viewer,
   deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-screenshot";
   version = "4.2.1";
diff --git a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
index 737c99261f9..8c482d53405 100644
--- a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
   qt5integration, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-shortcut-viewer";
   version = "1.3.5";
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index 937c1f0d218..51156554f99 100644
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
@@ -2,7 +2,7 @@
   gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib,
   libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1,
   libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux,
-  libsepol, utillinux, deepin-menu, deepin-shortcut-viewer, deepin }:
+  libsepol, utillinux, deepin-menu, deepin-shortcut-viewer, deepin, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     gettext
     libselinux libsepol utillinux # required by gio
     deepin.setupHook
+    wrapGAppsHook
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/deepin/deepin-turbo/default.nix b/pkgs/desktops/deepin/deepin-turbo/default.nix
index d5702a55d90..1fe930ea490 100644
--- a/pkgs/desktops/deepin/deepin-turbo/default.nix
+++ b/pkgs/desktops/deepin/deepin-turbo/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, deepin }:
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qtbase, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "deepin-turbo";
   version = "0.0.3";
diff --git a/pkgs/desktops/deepin/dtkcore/default.nix b/pkgs/desktops/deepin/dtkcore/default.nix
index a0ed5c04e18..2a527e3cc19 100644
--- a/pkgs/desktops/deepin/dtkcore/default.nix
+++ b/pkgs/desktops/deepin/dtkcore/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, gsettings-qt, pythonPackages, deepin }:
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, gsettings-qt, pythonPackages, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dtkcore";
   version = "2.0.14";
diff --git a/pkgs/desktops/deepin/dtkwidget/default.nix b/pkgs/desktops/deepin/dtkwidget/default.nix
index 4992519f832..8487509e73b 100644
--- a/pkgs/desktops/deepin/dtkwidget/default.nix
+++ b/pkgs/desktops/deepin/dtkwidget/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qttools, qtmultimedia,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtmultimedia,
   qtsvg, qtx11extras, librsvg, libstartup_notification, gsettings-qt,
   dde-qt-dbus-factory, dtkcore, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dtkwidget";
   version = "2.0.14";
@@ -31,12 +31,13 @@ stdenv.mkDerivation rec {
     dtkcore
   ];
 
-  preConfigure = ''
-    qmakeFlags="$qmakeFlags \
-      INCLUDE_INSTALL_DIR=$out/include \
-      LIB_INSTALL_DIR=$out/lib \
-      QT_HOST_DATA=$out"
-  '';
+  outRef = placeholder "out";
+
+  qmakeFlags = [
+    "INCLUDE_INSTALL_DIR=${outRef}/include"
+    "LIB_INSTALL_DIR=${outRef}/lib"
+    "QT_HOST_DATA=${outRef}"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/deepin/dtkwm/default.nix b/pkgs/desktops/deepin/dtkwm/default.nix
index c0834ace8f8..c05eedd8857 100644
--- a/pkgs/desktops/deepin/dtkwm/default.nix
+++ b/pkgs/desktops/deepin/dtkwm/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qtx11extras, dtkcore,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtx11extras, dtkcore,
   deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "dtkwm";
   version = "2.0.11";
@@ -23,12 +23,13 @@ stdenv.mkDerivation rec {
     qtx11extras
   ];
 
-  preConfigure = ''
-    qmakeFlags="$qmakeFlags \
-      QT_HOST_DATA=$out \
-      INCLUDE_INSTALL_DIR=$out/include \
-      LIB_INSTALL_DIR=$out/lib"
-  '';
+  outRef = placeholder "out";
+
+  qmakeFlags = [
+    "QT_HOST_DATA=${outRef}"
+    "INCLUDE_INSTALL_DIR=${outRef}/include"
+    "LIB_INSTALL_DIR=${outRef}/lib"
+  ];
 
   passthru.updateScript = deepin.updateScript { inherit name; };
 
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
index eb220dcdae6..b275174fa9f 100644
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ b/pkgs/desktops/deepin/qcef/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools,
   qtwebchannel, qtx11extras,
   gnome2, nss, nspr, alsaLib, atk, cairo, cups, dbus,
   expat, fontconfig, gdk-pixbuf, glib, gtk2,
@@ -38,7 +38,7 @@ let
   libPath = stdenv.lib.makeLibraryPath rpahtLibraries;
 in
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "qcef";
   version = "1.1.6";
diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
index 2e6ddfcdb2d..f2e6eb0d123 100644
--- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
+++ b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qtx11extras, libSM,
-  mtdev, cairo, deepin }:
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtx11extras, libSM,
+  mtdev, cairo, deepin, qtbase }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "qt5dxcb-plugin";
   version = "1.2.2";
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
     cairo
   ];
 
-  preConfigure = ''
-    qmakeFlags="$qmakeFlags INSTALL_PATH=$out/$qtPluginPrefix/platforms"
-  '';
+  qmakeFlags = [
+    "INSTALL_PATH=${placeholder ''out''}/${qtbase.qtPluginPrefix}/platforms"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
index 7df1fdf3165..8302e701b38 100644
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ b/pkgs/desktops/deepin/qt5integration/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, mtdev ,
-  lxqt, qtx11extras, qtmultimedia, qtsvg ,
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, mtdev,
+  lxqt, qtx11extras, qtmultimedia, qtsvg,
   qt5dxcb-plugin, qtstyleplugins, dtkcore, dtkwidget, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "qt5integration";
   version = "0.3.12";
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
index b0f5aaee97c..e7f735a4256 100644
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ b/pkgs/desktops/deepin/udisks2-qt5/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, qtbase, deepin }:
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, qtbase, deepin }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
   pname = "udisks2-qt5";
   version = "0.0.1";
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology.nix
index 92d36c0e772..52f0ff15e23 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "terminology";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0mm9v5a94369is3kaarnr3a28wy42wslzi1mcisaidlcldgv7f6p";
+    sha256 = "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index c95d135e9e7..ac1e9ee85c0 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -1,39 +1,80 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, gnome3, glib, gtk3, pango, wrapGAppsHook, python3
-, gobject-introspection, gjs, libunistring, gsettings-desktop-schemas, adwaita-icon-theme, gnome-desktop }:
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, pkgconfig
+, gettext
+, gnome3
+, glib
+, gtk3
+, pango
+, wrapGAppsHook
+, python3
+, gobject-introspection
+, gjs
+, libunistring
+, gsettings-desktop-schemas
+, adwaita-icon-theme
+, gnome-desktop
+}:
 
 stdenv.mkDerivation rec {
-  name = "gnome-characters-${version}";
+  pname = "gnome-characters";
   version = "3.32.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-characters/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-characters/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1mpg125x9k879ryg8xgbm9w1amx6b3iq9sqv7xfii7kzaanjb4js";
   };
 
+  nativeBuildInputs = [
+    gettext
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    wrapGAppsHook
+  ];
+
+
+  buildInputs = [
+    adwaita-icon-theme
+    gjs
+    glib
+    gnome-desktop # for typelib
+    gsettings-desktop-schemas
+    gtk3
+    libunistring
+    pango
+  ];
+
   postPatch = ''
     chmod +x meson_post_install.py # patchShebangs requires executable file
     patchShebangs meson_post_install.py
   '';
 
+  dontWrapGApps = true;
+
+  # Fixes https://github.com/NixOS/nixpkgs/issues/31168
+  postFixup = ''
+    for file in $out/share/org.gnome.Characters/org.gnome.Characters \
+       $out/share/org.gnome.Characters/org.gnome.Characters.BackgroundService
+    do
+      sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
+        -i $file
+
+      wrapProgram $file "''${gappsWrapperArgs[@]}"
+    done
+  '';
+
   passthru = {
     updateScript = gnome3.updateScript {
-      packageName = "gnome-characters";
-      attrPath = "gnome3.gnome-characters";
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
     };
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook python3 gobject-introspection ];
-  buildInputs = [
-    glib gtk3 gjs pango gsettings-desktop-schemas
-    adwaita-icon-theme libunistring
-    # typelib
-    gnome-desktop
-  ];
-
-  mesonFlags = [
-    "-Ddbus_service_dir=${placeholder "out"}/share/dbus-1/services"
-  ];
-
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Design/Apps/CharacterMap;
     description = "Simple utility application to find and insert unusual characters";
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 776da94242f..7b7b7f64aa4 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "epiphany-${version}";
-  version = "3.32.3";
+  version = "3.32.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0gx386k1p78ppjhvdanv99hfiwana0ccn9d499qrp0rvlicnijrw";
+    sha256 = "15d9s295yr6m9pbwh344c4akm7rgn19y4g1xkyn7gbq1hdbjia69";
   };
 
   # Tests need an X display
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 5c2eae883cf..078145e1231 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -2,7 +2,7 @@
 , intltool, libsoup, libxml2, libsecret, icu, sqlite, tzdata, libcanberra-gtk3, gcr
 , p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking, pcre
 , vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib
-, glib, gtk3, gnome-online-accounts, libgweather, libgdata }:
+, glib, gtk3, gnome-online-accounts, libgweather, libgdata, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
   name = "evolution-data-server-${version}";
@@ -20,9 +20,14 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit tzdata;
     })
-    ./hardcode-gsettings.patch
   ];
 
+  prePatch = ''
+    substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch --subst-var-by ESD_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas \
+      --subst-var-by GDS_GSETTINGS_PATH "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}/glib-2.0/schemas"
+    patches="$patches $PWD/hardcode-gsettings.patch"
+  '';
+
   nativeBuildInputs = [
     cmake ninja pkgconfig intltool python3 gperf wrapGAppsHook gobject-introspection vala
   ];
@@ -43,11 +48,6 @@ stdenv.mkDerivation rec {
     "-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include"
   ];
 
-  postPatch = ''
-    substituteInPlace src/libedataserver/e-source-registry.c --subst-var-by ESD_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas
-  '';
-
-
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = "evolution-data-server";
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
index 8b64b3df801..c499bac4552 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/hardcode-gsettings.patch
@@ -1,36 +1,526 @@
-diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
-index 9c166dbaf..ef368f8d4 100644
---- a/src/libedataserver/e-source-registry.c
-+++ b/src/libedataserver/e-source-registry.c
-@@ -116,6 +116,8 @@ struct _ESourceRegistryPrivate {
- 	GHashTable *sources;
- 	GMutex sources_lock;
+diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
+index 2c0557c3c..5955aa55e 100644
+--- a/src/addressbook/libebook/e-book-client.c
++++ b/src/addressbook/libebook/e-book-client.c
+@@ -1989,7 +1989,20 @@ e_book_client_get_self (ESourceRegistry *registry,
  
-+	GSettingsSchemaSource *schema_source;
-+	GSettingsSchema *schema;
- 	GSettings *settings;
+ 	*out_client = book_client;
+ 
+-	settings = g_settings_new (SELF_UID_PATH_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	uid = g_settings_get_string (settings, SELF_UID_KEY);
+ 	g_object_unref (settings);
  
- 	gboolean initialized;
-@@ -1339,7 +1341,11 @@ source_registry_dispose (GObject *object)
- 	if (priv->settings != NULL) {
- 		g_signal_handlers_disconnect_by_data (priv->settings, object);
- 		g_object_unref (priv->settings);
-+		g_settings_schema_unref (priv->schema);
-+		g_settings_schema_source_unref (priv->schema_source);
- 		priv->settings = NULL;
-+		priv->schema = NULL;
-+		priv->schema_source = NULL;
+@@ -2057,7 +2070,20 @@ e_book_client_set_self (EBookClient *client,
+ 	g_return_val_if_fail (
+ 		e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
+ 
+-	settings = g_settings_new (SELF_UID_PATH_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	g_settings_set_string (
+ 		settings, SELF_UID_KEY,
+ 		e_contact_get_const (contact, E_CONTACT_UID));
+@@ -2093,8 +2119,20 @@ e_book_client_is_self (EContact *contact)
+ 	 * unfortunately the API doesn't allow that.
+ 	 */
+ 	g_mutex_lock (&mutex);
+-	if (!settings)
+-		settings = g_settings_new (SELF_UID_PATH_ID);
++	if (!settings) {
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	uid = g_settings_get_string (settings, SELF_UID_KEY);
+ 	g_mutex_unlock (&mutex);
+ 
+diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
+index 3396b57c0..ac6420b2e 100644
+--- a/src/addressbook/libebook/e-book.c
++++ b/src/addressbook/libebook/e-book.c
+@@ -2594,7 +2594,20 @@ e_book_get_self (ESourceRegistry *registry,
+ 		return FALSE;
  	}
  
- 	/* Chain up to parent's finalize() method. */
-@@ -1743,7 +1749,9 @@ e_source_registry_init (ESourceRegistry *registry)
+-	settings = g_settings_new (SELF_UID_PATH_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	uid = g_settings_get_string (settings, SELF_UID_KEY);
+ 	g_object_unref (settings);
+ 
+@@ -2649,7 +2662,20 @@ e_book_set_self (EBook *book,
+ 	g_return_val_if_fail (E_IS_BOOK (book), FALSE);
+ 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
+ 
+-	settings = g_settings_new (SELF_UID_PATH_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	g_settings_set_string (
+ 		settings, SELF_UID_KEY,
+ 		e_contact_get_const (contact, E_CONTACT_UID));
+@@ -2677,7 +2703,20 @@ e_book_is_self (EContact *contact)
+ 
+ 	g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
+ 
+-	settings = g_settings_new (SELF_UID_PATH_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 SELF_UID_PATH_ID,
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	uid = g_settings_get_string (settings, SELF_UID_KEY);
+ 	g_object_unref (settings);
+ 
+diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
+index de1716941..e83b104f1 100644
+--- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
++++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
+@@ -1397,7 +1397,20 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
+ 		(GDestroyNotify) g_free,
+ 		(GDestroyNotify) contact_record_free);
+ 
+-	cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server.calendar",
++							 FALSE);
++		cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	cbc->priv->notifyid = 0;
+ 	cbc->priv->update_alarms_id = 0;
+ 	cbc->priv->alarm_enabled = FALSE;
+diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
+index b08a7f301..a49fe39c5 100644
+--- a/src/calendar/libecal/e-reminder-watcher.c
++++ b/src/calendar/libecal/e-reminder-watcher.c
+@@ -2202,7 +2202,21 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
+ 
+ 	watcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (watcher, E_TYPE_REMINDER_WATCHER, EReminderWatcherPrivate);
+ 	watcher->priv->cancellable = g_cancellable_new ();
+-	watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server.calendar",
++							 FALSE);
++		watcher->priv->settings = g_settings_new_full(schema, NULL,
++							      NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	watcher->priv->scheduled = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_reminder_watcher_free_rd_slist);
+ 	watcher->priv->default_zone = icaltimezone_copy (zone);
+ 	watcher->priv->timers_enabled = TRUE;
+diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
+index dcdc3eed0..fd2e428c2 100644
+--- a/src/camel/camel-cipher-context.c
++++ b/src/camel/camel-cipher-context.c
+@@ -1635,7 +1635,20 @@ camel_cipher_can_load_photos (void)
+ 	GSettings *settings;
+ 	gboolean load_photos;
+ 
+-	settings = g_settings_new ("org.gnome.evolution-data-server");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server",
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
+ 	g_clear_object (&settings);
+ 
+diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
+index 1b3362886..f0811b292 100644
+--- a/src/camel/camel-gpg-context.c
++++ b/src/camel/camel-gpg-context.c
+@@ -573,7 +573,20 @@ gpg_ctx_get_executable_name (void)
+ 		GSettings *settings;
+ 		gchar *path;
+ 
+-		settings = g_settings_new ("org.gnome.evolution-data-server");
++		{
++			GSettingsSchemaSource *schema_source;
++			GSettingsSchema *schema;
++			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++										    g_settings_schema_source_get_default(),
++										    TRUE,
++										    NULL);
++			schema = g_settings_schema_source_lookup(schema_source,
++								 "org.gnome.evolution-data-server",
++								 FALSE);
++			settings = g_settings_new_full(schema, NULL, NULL);
++			g_settings_schema_source_unref(schema_source);
++			g_settings_schema_unref(schema);
++		}
+ 		path = g_settings_get_string (settings, "camel-gpg-binary");
+ 		g_clear_object (&settings);
+ 
+diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
+index e0d8b87d6..3a4d5a359 100644
+--- a/src/libedataserver/e-network-monitor.c
++++ b/src/libedataserver/e-network-monitor.c
+@@ -255,7 +255,20 @@ e_network_monitor_constructed (GObject *object)
+ 	/* Chain up to parent's method. */
+ 	G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
+ 
+-	settings = g_settings_new ("org.gnome.evolution-data-server");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server",
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	g_settings_bind (
+ 		settings, "network-monitor-gio-name",
+ 		object, "gio-name",
+diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
+index f0c6f2cbf..0053e3ce6 100644
+--- a/src/libedataserver/e-oauth2-service-google.c
++++ b/src/libedataserver/e-oauth2-service-google.c
+@@ -69,7 +69,20 @@ eos_google_read_settings (EOAuth2Service *service,
+ 	if (!value) {
+ 		GSettings *settings;
+ 
+-		settings = g_settings_new ("org.gnome.evolution-data-server");
++		{
++			GSettingsSchemaSource *schema_source;
++			GSettingsSchema *schema;
++			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++										    g_settings_schema_source_get_default(),
++										    TRUE,
++										    NULL);
++			schema = g_settings_schema_source_lookup(schema_source,
++								 "org.gnome.evolution-data-server",
++								 FALSE);
++			settings = g_settings_new_full(schema, NULL, NULL);
++			g_settings_schema_source_unref(schema_source);
++			g_settings_schema_unref(schema);
++		}
+ 		value = g_settings_get_string (settings, key_name);
+ 		g_object_unref (settings);
+ 
+diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
+index 687c10d3b..684583c35 100644
+--- a/src/libedataserver/e-oauth2-service-outlook.c
++++ b/src/libedataserver/e-oauth2-service-outlook.c
+@@ -70,7 +70,20 @@ eos_outlook_read_settings (EOAuth2Service *service,
+ 	if (!value) {
+ 		GSettings *settings;
+ 
+-		settings = g_settings_new ("org.gnome.evolution-data-server");
++		{
++			GSettingsSchemaSource *schema_source;
++			GSettingsSchema *schema;
++			schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++										    g_settings_schema_source_get_default(),
++										    TRUE,
++										    NULL);
++			schema = g_settings_schema_source_lookup(schema_source,
++								 "org.gnome.evolution-data-server",
++								 FALSE);
++			settings = g_settings_new_full(schema, NULL, NULL);
++			g_settings_schema_source_unref(schema_source);
++			g_settings_schema_unref(schema);
++		}
+ 		value = g_settings_get_string (settings, key_name);
+ 		g_object_unref (settings);
+ 
+diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
+index 682673c16..436f52d5f 100644
+--- a/src/libedataserver/e-oauth2-service.c
++++ b/src/libedataserver/e-oauth2-service.c
+@@ -95,7 +95,20 @@ eos_default_guess_can_process (EOAuth2Service *service,
+ 	name_len = strlen (name);
+ 	hostname_len = strlen (hostname);
+ 
+-	settings = g_settings_new ("org.gnome.evolution-data-server");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server",
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	values = g_settings_get_strv (settings, "oauth2-services-hint");
+ 	g_object_unref (settings);
+ 
+diff --git a/src/libedataserver/e-proxy.c b/src/libedataserver/e-proxy.c
+index 883379a60..989353494 100644
+--- a/src/libedataserver/e-proxy.c
++++ b/src/libedataserver/e-proxy.c
+@@ -969,8 +969,37 @@ e_proxy_init (EProxy *proxy)
+ 
+ 	proxy->priv->type = PROXY_TYPE_SYSTEM;
+ 
+-	proxy->priv->evolution_proxy_settings = g_settings_new ("org.gnome.evolution.shell.network-config");
+-	proxy->priv->proxy_settings = g_settings_new ("org.gnome.system.proxy");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution.shell.network-config",
++							 FALSE);
++		proxy->priv->evolution_proxy_settings = g_settings_new_full(schema,
++									    NULL,
++									    NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@GDS_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.system.proxy",
++							 FALSE);
++		proxy->priv->proxy_settings = g_settings_new_full(schema,
++								  NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	proxy->priv->proxy_http_settings = g_settings_get_child (proxy->priv->proxy_settings, "http");
+ 	proxy->priv->proxy_https_settings = g_settings_get_child (proxy->priv->proxy_settings, "https");
+ 	proxy->priv->proxy_socks_settings = g_settings_get_child (proxy->priv->proxy_settings, "socks");
+diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
+index a5a30a3e1..5fbdf8190 100644
+--- a/src/libedataserver/e-source-registry.c
++++ b/src/libedataserver/e-source-registry.c
+@@ -1749,7 +1749,21 @@ e_source_registry_init (ESourceRegistry *registry)
  
  	g_mutex_init (&registry->priv->sources_lock);
  
 -	registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
-+	GSettingsSchemaSource *schema_source = registry->priv->schema_source = g_settings_schema_source_new_from_directory ("@ESD_GSETTINGS_PATH@",  g_settings_schema_source_get_default (), TRUE, NULL);
-+	registry->priv->schema = g_settings_schema_source_lookup (schema_source, GSETTINGS_SCHEMA, FALSE);
-+	registry->priv->settings = g_settings_new_full (registry->priv->schema, NULL, NULL);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 GSETTINGS_SCHEMA,
++							 FALSE);
++		registry->priv->settings = g_settings_new_full(schema, NULL,
++							       NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
  
  	g_signal_connect (
  		registry->priv->settings, "changed",
+diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
+index f89cd4a5c..06cca9b5f 100644
+--- a/src/libedataserverui/e-reminders-widget.c
++++ b/src/libedataserverui/e-reminders-widget.c
+@@ -1642,7 +1642,21 @@ static void
+ e_reminders_widget_init (ERemindersWidget *reminders)
+ {
+ 	reminders->priv = G_TYPE_INSTANCE_GET_PRIVATE (reminders, E_TYPE_REMINDERS_WIDGET, ERemindersWidgetPrivate);
+-	reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server.calendar",
++							 FALSE);
++		reminders->priv->settings = g_settings_new_full(schema, NULL,
++								NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 	reminders->priv->cancellable = g_cancellable_new ();
+ 	reminders->priv->is_empty = TRUE;
+ 	reminders->priv->is_mapped = FALSE;
+diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
+index 6f03053d6..dffc186c7 100644
+--- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
++++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
+@@ -706,7 +706,20 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
+ 	gchar *autoconfig_directory;
+ 	gint ii;
+ 
+-	settings = g_settings_new ("org.gnome.evolution-data-server");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server",
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 
+ 	autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
+ 
+diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
+index d531cb9e2..c5b1c761c 100644
+--- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
++++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
+@@ -61,7 +61,20 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
+ 	extension_name = E_SOURCE_EXTENSION_PROXY;
+ 	extension = e_source_get_extension (source, extension_name);
+ 
+-	settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++			schema = g_settings_schema_source_lookup(schema_source,
++								 NETWORK_CONFIG_SCHEMA_ID,
++								 FALSE);
++			settings = g_settings_new_full(schema, NULL, NULL);
++			g_settings_schema_source_unref(schema_source);
++			g_settings_schema_unref(schema);
++	}
+ 
+ 	switch (g_settings_get_int (settings, "proxy-type")) {
+ 		case 1:
+diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
+index 1c0a11382..3e144845e 100644
+--- a/src/services/evolution-source-registry/evolution-source-registry.c
++++ b/src/services/evolution-source-registry/evolution-source-registry.c
+@@ -181,7 +181,20 @@ main (gint argc,
+ 
+ reload:
+ 
+-	settings = g_settings_new ("org.gnome.evolution-data-server");
++	{
++		GSettingsSchemaSource *schema_source;
++		GSettingsSchema *schema;
++		schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
++									    g_settings_schema_source_get_default(),
++									    TRUE,
++									    NULL);
++		schema = g_settings_schema_source_lookup(schema_source,
++							 "org.gnome.evolution-data-server",
++							 FALSE);
++		settings = g_settings_new_full(schema, NULL, NULL);
++		g_settings_schema_source_unref(schema_source);
++		g_settings_schema_unref(schema);
++	}
+ 
+ 	if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
+ 		g_settings_set_boolean (settings, "migrated", TRUE);
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index e301305d405..6d487597900 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -3,6 +3,12 @@
 , gtk3, gsettings-desktop-schemas, gnome-desktop, libxmlb, gnome-online-accounts, hicolor-icon-theme
 , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_43, gtk-doc, desktop-file-utils }:
 
+let
+
+  withFwupd = stdenv.isx86_64 || stdenv.isi686;
+
+in
+
 stdenv.mkDerivation rec {
   name = "gnome-software-${version}";
   version = "3.32.4";
@@ -29,13 +35,16 @@ stdenv.mkDerivation rec {
     gtk3 glib packagekit appstream-glib libsoup
     gsettings-desktop-schemas gnome-desktop
     gspell json-glib libsecret ostree
-    polkit flatpak fwupd
-    libxmlb gnome-online-accounts
+    polkit flatpak libxmlb gnome-online-accounts
+  ] ++ stdenv.lib.optionals withFwupd [
+    fwupd
   ];
 
   mesonFlags = [
     "-Dubuntu_reviews=false"
     "-Dgudev=false"
+  ] ++ stdenv.lib.optionals (!withFwupd) [
+    "-Dfwupd=false"
   ];
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 854ce936446..14551fb7d0c 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "nautilus";
-  version = "3.32.1";
+  version = "3.32.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0vmrvimv4183l3ij4kv0ir2c9rfzk7gh3xc2pa4wkqq9kn7h6m7s";
+    sha256 = "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 87b7be5bdd2..5a6dad2a794 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -351,8 +351,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-autoar = callPackage ./misc/gnome-autoar { };
 
-  gnome-video-effects = callPackage ./misc/gnome-video-effects { };
-
   gnome-packagekit = callPackage ./misc/gnome-packagekit { };
 } // lib.optionalAttrs (config.allowAliases or true) {
 #### Legacy aliases
@@ -392,6 +390,8 @@ lib.makeScope pkgs.newScope (self: with self; {
       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;
   inherit (pkgs) gsettings-desktop-schemas; # added 2019-04-16
+  inherit (pkgs) gnome-video-effects; # added 2019-08-19
+
   defaultIconTheme = adwaita-icon-theme;
   gtk = gtk3;
   gtkmm = gtkmm3;
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index cbac95c8f41..3bea240ecb9 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnome-nibbles-${version}";
-  version = "3.31.3";
+  version = "3.32.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0wg0l3aghkxcwp74liw115qjzy6w18hn80mhsz4lrjpnbpaivi18";
+    sha256 = "0g627pzbfywiy2rsh4aidgbln9s4j5m8pryw4cgr5ygc4z8l6l9p";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool itstool libxml2 ];
diff --git a/pkgs/desktops/gnome-3/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
index d9f3e5fc5ff..f0da625316f 100644
--- a/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "tali-${version}";
-  version = "3.32.0";
+  version = "3.32.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0s5clkn0qm298mvphx1xdymg67w1p8vvgvypvs97k6lfjqijkx3v";
+    sha256 = "0na7sswfh63wj44aibcnqdsbb24yfngcwgi07lv8rky6rry0kqgz";
   };
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
index 54d45eedc3d..8babe77e412 100644
--- a/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "3.32.1";
+  version = "3.32.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "07y5ii5bn7fgdpr88307fwxiafm5fwdxmzwhi6h1y4z880nnzp7f";
+    sha256 = "0sg53zq81v28hdqiy5d048skwfgsa8ck0z7ywsagdh7iaqin68gq";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
deleted file mode 100644
index b65e9c1021e..00000000000
--- a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gnome3 }:
-let
-  pname = "gnome-video-effects";
-  version = "0.4.3";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs";
-  };
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-      attrPath = "gnome3.${pname}";
-    };
-  };
-
-  meta = with stdenv.lib; {
-    description = "A collection of GStreamer effects to be used in different GNOME Modules";
-    homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects;
-    platforms = platforms.linux;
-    maintainers = gnome3.maintainers;
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index 748d33aa2ce..c1e4274ab7b 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/lxqt/qterminal;
     license = licenses.gpl2;
     platforms = with platforms; unix;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [ romildo globin ];
   };
 }
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 4a4850a0824..bcbe50e5de3 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,25 +1,38 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig
-, meson, ninja, vala, desktop-file-utils, libxml2
-, gtk3, python3, granite, libgee, elementary-icon-theme
-, appstream, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, desktop-file-utils
+, libxml2
+, gtk3
+, python3
+, granite
+, libgee
+, elementary-icon-theme
+, appstream
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "calculator";
+  pname = "elementary-calculator";
   version = "1.5.2";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "calculator";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1vdgl89hdf9q1ya6as7310hlr0xls3w7js2gzsd9z8arb6037ccl";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index 9f684c22767..b806c085f84 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -1,26 +1,45 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
-, ninja, vala, desktop-file-utils, gtk3, granite, libgee
-, geoclue2, libchamplain, clutter, folks, geocode-glib, python3
-, libnotify, libical, evolution-data-server, appstream-glib
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, geoclue2
+, libchamplain
+, clutter
+, folks
+, geocode-glib
+, python3
+, libnotify
+, libical
+, evolution-data-server
+, appstream-glib
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "calendar";
+  pname = "elementary-calendar";
   version = "5.0";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "calendar";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0yiis5ig98gjw4s2qh8lppkdmv1cgi6qchxqncsjdki7yxyyni35";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 90f326fb826..279e9eff87a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -1,24 +1,43 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
-, desktop-file-utils, python3, gettext, libxml2, gtk3, granite, libgee, gst_all_1
-, libcanberra, clutter-gtk, clutter-gst, elementary-icon-theme, appstream, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, desktop-file-utils
+, python3
+, gettext
+, libxml2
+, gtk3
+, granite
+, libgee
+, gst_all_1
+, libcanberra
+, clutter-gtk
+, clutter-gst
+, elementary-icon-theme
+, appstream
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "camera";
+  pname = "elementary-camera";
   version = "1.0.4";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "camera";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1p532f961cjdg7szmxw7hw3av9v342hv5rx7in3bbhlc7adxflyc";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index a869ff24e92..355f3ea8d0f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,25 +1,47 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
-, python3, desktop-file-utils, gtk3, granite, libgee, elementary-icon-theme
-, appstream, libpeas, editorconfig-core-c, gtksourceview3, gtkspell3, libsoup
-, vte, webkitgtk, zeitgeist, ctags, libgit2-glib, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, python3
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, elementary-icon-theme
+, appstream
+, libpeas
+, editorconfig-core-c
+, gtksourceview3
+, gtkspell3
+, libsoup
+, vte
+, webkitgtk
+, zeitgeist
+, ctags
+, libgit2-glib
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "code";
+  pname = "elementary-code";
   version = "3.1.1";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "code";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0l469fi5vbcazwfhy320nr8wrzz96jbrqn4hag0kdm16wvf5x1yc";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -36,8 +58,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     ctags
-    elementary-icon-theme
     editorconfig-core-c
+    elementary-icon-theme
     granite
     gtk3
     gtksourceview3
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 99c7afffe7a..ae6583c4672 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,25 +1,49 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala
-, python3, desktop-file-utils, libcanberra, gtk3, libgee, granite, libnotify
-, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist, glib-networking
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, gettext
+, vala
+, python3
+, desktop-file-utils
+, libcanberra
+, gtk3
+, libgee
+, granite
+, libnotify
+, libunity
+, pango
+, plank
+, bamf
+, sqlite
+, libdbusmenu-gtk3
+, zeitgeist
+, glib-networking
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "files";
-  version = "4.1.8";
+  pname = "elementary-files";
+  version = "4.1.9";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "files";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
-    sha256 = "1frslwbqnv3mwv5dpb1sbhxnwl87cps2ambkkhnn9wwckjpm7p8f";
+    sha256 = "12p1li9a7kqdlgkq20svaly5kr661ww93qngaiic6zv1bdw2bpmv";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -57,7 +81,8 @@ stdenv.mkDerivation rec {
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
 
-    substituteInPlace filechooser-module/FileChooserDialog.vala --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas
+    substituteInPlace filechooser-module/FileChooserDialog.vala \
+      --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index cba593e4c96..7d235551a80 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,27 +1,49 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
-, ninja, vala, desktop-file-utils, gtk3, granite
-, python3, libgee, clutter-gtk, json-glib, libgda, libgpod
-, libnotify, libpeas, libsoup, zeitgeist, gst_all_1, taglib
-, libdbusmenu, libsignon-glib, libaccounts-glib
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, desktop-file-utils
+, gtk3
+, granite
+, python3
+, libgee
+, clutter-gtk
+, json-glib
+, libgda
+, libgpod
+, libnotify
+, libpeas
+, libsoup
+, zeitgeist
+, gst_all_1
+, taglib
+, libdbusmenu
+, libsignon-glib
+, libaccounts-glib
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "music";
+  pname = "elementary-music";
   version = "5.0.4";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "music";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "02qjsf9xnfh043xbls9mll2r1wcdvclw60x8wysv12rhbm90gwvp";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -51,9 +73,9 @@ stdenv.mkDerivation rec {
     libgda
     libgee
     libgpod
-    libsignon-glib
     libnotify
     libpeas
+    libsignon-glib
     libsoup
     taglib
     zeitgeist
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 1704db78c5e..94b6a2fce8e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,25 +1,53 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils
-, gtk3, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2
-, granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite, python3
-, scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, elementary-icon-theme }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, desktop-file-utils
+, gtk3
+, libaccounts-glib
+, libexif
+, libgee
+, geocode-glib
+, gexiv2
+, libgphoto2
+, granite
+, gst_all_1
+, libgudev
+, json-glib
+, libraw
+, librest
+, libsoup
+, sqlite
+, python3
+, scour
+, webkitgtk
+, libwebp
+, appstream
+, libunity
+, wrapGAppsHook
+, elementary-icon-theme
+}:
 
 stdenv.mkDerivation rec {
-  pname = "photos";
+  pname = "elementary-photos";
   version = "2.6.4";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "photos";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "17r9658s0pqy6s45ysi3915sm8hpvmsp7cw2jahqvjc61r4qpdc1";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -52,10 +80,10 @@ stdenv.mkDerivation rec {
     libgphoto2
     libgudev
     libraw
+    librest
     libsoup
     libunity
     libwebp
-    librest
     scour
     sqlite
     webkitgtk
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 74af15e2787..4dd168f25f0 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -1,24 +1,37 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
-, ninja, vala, python3, desktop-file-utils, gtk3, granite, libgee
-, libcanberra, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, python3
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, libcanberra
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
+  pname = "elementary-screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
   version = "1.6.2";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "screenshot";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = "screenshot";
+    repo = repoName;
     rev = version;
     sha256 = "1z61j96jk9zjr3bn5hgsp25m4v8h1rqwxm0kg8c34bvl06f13v8q";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = "screenshot";
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index 2479d999e8f..8bd335c6530 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,24 +1,40 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3
-, vala, desktop-file-utils, gtk3, libxml2, granite, libnotify, vte, libgee
-, elementary-icon-theme, appstream, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, python3
+, vala
+, desktop-file-utils
+, gtk3
+, libxml2
+, granite
+, libnotify
+, vte
+, libgee
+, elementary-icon-theme
+, appstream
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "terminal";
+  pname = "elementary-terminal";
   version = "5.3.6";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "terminal";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0jp21sy8k3jq3ycvng9yy2hbhcvfgiknxxa8vcg3c06vqhadmnc3";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 2d978d966b9..9132707db2b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,24 +1,39 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3
-, desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, python3
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, clutter-gst
+, clutter-gtk
+, gst_all_1
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "videos";
+  pname = "elementary-videos";
   version = "2.6.3";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "videos";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1ncm8kh6dcy83p8pmpilnk03b4dx3b1jm8w13izq2dkglfgdwvqx";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 859e04eb954..a03594b7b18 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-a11y";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 6d7ecbffa31..bd6df460c04 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,5 +1,17 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja
-, pkgconfig, vala, libgee, granite, gtk3, switchboard, pciutils }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, substituteAll
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+, pciutils
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 0d7586391ce..dca9cc662a2 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja
-, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-applications";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 547b6d897e4..d1663ad48cd 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, bluez, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, bluez
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-bluetooth";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index e1303a3cc48..fb7ea18e88b 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,5 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, substituteAll, pkgconfig
-, vala, libgee, granite, gtk3, libxml2, switchboard, tzdata }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, substituteAll
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, libxml2
+, switchboard
+, tzdata
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-datetime";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 22fb795297e..c15abfd8cb8 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja
-, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-display";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 71f865bdeb6..ba753af7e20 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,5 +1,20 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, substituteAll
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, libxml2
+, libgnomekbd
+, libxklavier
+, xorg
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 76edfa18add..00579c54525 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
-, libgee, granite, gtk3, switchboard, elementary-settings-daemon }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+, elementary-settings-daemon
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
@@ -17,7 +28,8 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace src/Views/General.vala --subst-var-by GSD_GSETTINGS ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
+    substituteInPlace src/Views/General.vala \
+      --subst-var-by GSD_GSETTINGS ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
   '';
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 283a13bd82a..09d6da4f246 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,5 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, substituteAll, vala
-, libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, substituteAll
+, vala
+, libgee
+, granite
+, gtk3
+, networkmanager
+, networkmanagerapplet
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 277f70cf984..e547f22fec1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja
-, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-notifications";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 496a69ce1f6..aa9cdfa0ddd 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,6 +1,21 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
-, libgee, granite, gtk3, libaccounts-glib, libsignon-glib, json-glib
-, librest, webkitgtk, libsoup, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, libaccounts-glib
+, libsignon-glib
+, json-glib
+, librest
+, webkitgtk
+, libsoup
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index 57ae3215f5f..b9fad17c2f7 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -50,8 +50,10 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace src/Views/Appearance.vala --subst-var-by GALA_GSETTINGS_PATH ${gala}/share/gsettings-schemas/${gala.name}/glib-2.0/schemas
-    substituteInPlace src/Views/Appearance.vala --subst-var-by WINGPANEL_GSETTINGS_PATH ${wingpanel}/share/gsettings-schemas/${wingpanel.name}/glib-2.0/schemas
+    substituteInPlace src/Views/Appearance.vala \
+      --subst-var-by GALA_GSETTINGS_PATH ${gala}/share/gsettings-schemas/${gala.name}/glib-2.0/schemas
+    substituteInPlace src/Views/Appearance.vala \
+      --subst-var-by WINGPANEL_GSETTINGS_PATH ${wingpanel}/share/gsettings-schemas/${wingpanel.name}/glib-2.0/schemas
   '';
 
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 8a56a8535e8..461ddcd3764 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,6 +1,20 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja
-, pkgconfig, vala, libgee, elementary-dpms-helper, elementary-settings-daemon
-, granite, gtk3, dbus, polkit, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, substituteAll
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, elementary-dpms-helper
+, elementary-settings-daemon
+, granite
+, gtk3
+, dbus
+, polkit
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-power";
@@ -44,8 +58,10 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace src/MainView.vala --subst-var-by DPMS_HELPER_GSETTINGS_PATH ${elementary-dpms-helper}/share/gsettings-schemas/${elementary-dpms-helper.name}/glib-2.0/schemas
-    substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
+    substituteInPlace src/MainView.vala \
+      --subst-var-by DPMS_HELPER_GSETTINGS_PATH ${elementary-dpms-helper}/share/gsettings-schemas/${elementary-dpms-helper.name}/glib-2.0/schemas
+    substituteInPlace src/MainView.vala \
+      --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
   '';
 
   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 293faad51c7..5c303e04982 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, cups, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, cups
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-printers";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index d35844320a1..19967c3bce0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,6 +1,19 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, python3, ninja
-, pkgconfig, vala, libgee, granite, gtk3, polkit, zeitgeist
-, switchboard, lightlocker }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, python3
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, polkit
+, zeitgeist
+, switchboard
+, lightlocker
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
@@ -46,8 +59,10 @@ stdenv.mkDerivation rec {
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
 
-    substituteInPlace src/Views/LockPanel.vala --subst-var-by LIGHTLOCKER_GSETTINGS_PATH ${lightlocker}/share/gsettings-schemas/${lightlocker.name}/glib-2.0/schemas
-    substituteInPlace src/Views/FirewallPanel.vala --subst-var-by SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
+    substituteInPlace src/Views/LockPanel.vala \
+      --subst-var-by LIGHTLOCKER_GSETTINGS_PATH ${lightlocker}/share/gsettings-schemas/${lightlocker.name}/glib-2.0/schemas
+    substituteInPlace src/Views/FirewallPanel.vala \
+      --subst-var-by SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas
   '';
 
   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 265352ed881..b4aafb27006 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sharing";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 907bdc37e2a..ed3518c764f 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,5 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee
-, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3, switchboard }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, libgee
+, granite
+, gtk3
+, pulseaudio
+, libcanberra
+, libcanberra-gtk3
+, switchboard
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 12edf97f6ba..5c10cc0e9e4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,6 +1,20 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja
-, vala, gtk3, libgee, granite, gettext, clutter-gtk, libunity
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, gtk3
+, libgee
+, granite
+, gettext
+, clutter-gtk
+, libunity
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
@@ -38,7 +52,9 @@ stdenv.mkDerivation rec {
     libunity
   ];
 
-  patches = [ ./plugs-path-env.patch ];
+  patches = [
+    ./plugs-path-env.patch
+  ];
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
index f02f79b15a8..756ae86bb19 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
@@ -1,4 +1,9 @@
-{ makeWrapper, symlinkJoin, switchboard, switchboardPlugs, plugs }:
+{ makeWrapper
+, symlinkJoin
+, switchboard
+, switchboardPlugs
+, plugs
+}:
 
 let
   selectedPlugs = if plugs == null then switchboardPlugs else plugs;
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 1ce18a1ec40..fe9db999bb6 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -1,22 +1,27 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+}:
 
 stdenv.mkDerivation rec {
-  pname = "stylesheet";
-  version = "5.2.4";
+  pname = "elementary-gtk-theme";
+  version = "5.2.5";
 
-  name = "elementary-gtk-theme-${version}";
+  repoName = "stylesheet";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
-    sha256 = "1zhh9s4bmmk69k6j0klvfjmyv32wnwf0g575brm6gswn47nr2fni";
+    sha256 = "0934rfdwkn4315mhayzba8a3b6i1xczp66gl6n45hh5c81gb2p65";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-gtk-theme";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index d8fa143686e..bdf42b1c1ef 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,34 +1,43 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, python3,ninja, hicolor-icon-theme, gtk3 }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, python3
+, ninja
+, hicolor-icon-theme
+, gtk3
+}:
 
 stdenv.mkDerivation rec {
-  pname = "icons";
+  pname = "elementary-icon-theme";
   version = "5.0.4";
 
-  name = "elementary-icon-theme-${version}";
+  repoName = "icons";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0ha7biqvmkv68x1gi9bfcn5z0ld067pa5czx0pyf053pa86lg3hx";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-icon-theme";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
   nativeBuildInputs = [
+    gtk3
     meson
     ninja
     python3
   ];
 
-  buildInputs = [ gtk3 ];
-
-  propagatedBuildInputs = [ hicolor-icon-theme ];
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
 
   mesonFlags = [
     "-Dvolume_icons=false" # Tries to install some icons to /
diff --git a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
index 061feb4b2d9..76bdcf643f8 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchFromGitHub, pantheon }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+}:
 
 stdenv.mkDerivation rec {
   pname = "elementary-redacted-script";
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index 430acfd9ac1..aff830fda56 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -1,22 +1,28 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+}:
 
 stdenv.mkDerivation rec {
-  pname = "sound-theme";
+  pname = "elementary-sound-theme";
   version = "1.0";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "sound-theme";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 898d5f7b454..30145541750 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -1,26 +1,30 @@
-{ stdenv, fetchFromGitHub, pantheon }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+}:
 
 stdenv.mkDerivation rec {
-  pname = "wallpapers";
+  pname = "elementary-wallpapers";
   version = "5.3";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "wallpapers";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
   dontBuild = true;
+  dontConfigure = true;
 
   installPhase = ''
     mkdir -p $out/share/backgrounds/elementary
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index e7aea3be91e..a1a69ee303f 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, fetchFromGitHub, pantheon }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+}:
 
 stdenv.mkDerivation rec {
-  pname = "default-settings";
+  pname = "elementary-default-settings";
   version = "5.1.0";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "default-settings";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0l73py4rr56i4dalb2wh1c6qiwmcjkm0l1j75jp5agcnxldh5wym";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -25,6 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   dontBuild = true;
+  dontConfigure = true;
 
   installPhase = ''
     mkdir -p $out/etc/gtk-3.0
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index a71736887bb..8ef85b90a3b 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -5,22 +5,22 @@
 , clutter-gtk, libGL, dbus, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  pname = "greeter";
+  pname = "elementary-greeter";
   version = "3.3.1";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "greeter";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 2726ea2b936..dbcb992c425 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -1,4 +1,15 @@
-{ stdenv, runCommand, mutter, elementary-default-settings, nixos-artwork, glib, gala, epiphany, elementary-settings-daemon, gtk3, plank, gsettings-desktop-schemas
+{ stdenv
+, runCommand
+, mutter
+, elementary-default-settings
+, nixos-artwork
+, glib
+, gala
+, epiphany
+, elementary-settings-daemon
+, gtk3
+, plank
+, gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
 , extraGSettingsOverridePackages ? []
 }:
diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index d8634b48570..0be2431d33d 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -1,22 +1,30 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, gtk3 }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, pkgconfig
+, vala
+, gtk3
+}:
 
 stdenv.mkDerivation rec {
-  pname = "print";
+  pname = "elementary-print-shim";
   version = "0.1.3";
 
-  name = "elementary-print-shim-${version}";
+  repoName = "print";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}-shim";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 5fe22f0db81..c262fb37dbc 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,4 +1,18 @@
-{ stdenv, fetchFromGitHub, substituteAll, writeScript, pantheon, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings, writeShellScriptBin, elementary-settings-daemon, runtimeShell }:
+{ stdenv
+, fetchFromGitHub
+, substituteAll
+, writeScript
+, pantheon
+, gnome-keyring
+, gnome-session
+, wingpanel
+, orca
+, at-spi2-core
+, elementary-default-settings
+, writeShellScriptBin
+, elementary-settings-daemon
+, runtimeShell
+}:
 
 let
 
@@ -7,7 +21,7 @@ let
   #
 
   #
-  # Upstream relies on /etc/skel to initiate a new users home directory with planks dockitems.
+  # Upstream relies on /etc/skel to initiate a new users home directory with plank's dockitems.
   #
   # That is not possible within nixos, but we can achieve this easily with a simple script that copies
   # them. We then use a xdg autostart and initalize it during the "EarlyInitialization" phase of a gnome session
@@ -44,26 +58,27 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "session-settings";
+  pname = "elementary-session-settings";
   version = "5.0.3";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "session-settings";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
   dontBuild = true;
+  dontConfigure = true;
 
   installPhase = ''
     mkdir -p $out/share/applications
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index ca0ab888f14..20b1ac7d353 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,23 +1,37 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, libxml2, desktop-file-utils
-, gtk3, glib, granite, libgee, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, libxml2
+, desktop-file-utils
+, gtk3
+, glib
+, granite
+, libgee
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "shortcut-overlay";
+  pname = "elementary-shortcut-overlay";
   version = "1.0.1";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "shortcut-overlay";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "1ph4rx2l5fn0zh4fjfjlgbgskmzc0lvzqgcv7v4kr5m4rij1p4y4";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
index 4e19a65b58d..973040a8da6 100644
--- a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
+++ b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
@@ -1,11 +1,14 @@
-{ stdenv, substituteAll, fetchFromGitHub, file-roller, gnome-bluetooth }:
+{ stdenv
+, substituteAll
+, fetchFromGitHub
+, file-roller
+, gnome-bluetooth
+}:
 
 stdenv.mkDerivation rec {
   pname = "extra-elementary-contracts";
   version = "2018-08-21";
 
-  name = "${pname}-${version}";
-
   src = fetchFromGitHub {
     owner = "worldofpeace";
     repo = pname;
@@ -22,6 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   dontBuild = true;
+  dontConfigure = true;
 
   installPhase = ''
     mkdir -p $out/share/contractor
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 440426c00df..b80e93279c8 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,28 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala
-, desktop-file-utils, gettext, libxml2, gtk3, granite, libgee, bamf, libcanberra
-, libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, elementary-icon-theme
-, elementary-settings-daemon, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, desktop-file-utils
+, gettext
+, libxml2
+, gtk3
+, granite
+, libgee
+, bamf
+, libcanberra
+, libcanberra-gtk3
+, gnome-desktop
+, mutter
+, clutter
+, plank
+, elementary-icon-theme
+, elementary-settings-daemon
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "gala";
@@ -48,7 +69,9 @@ stdenv.mkDerivation rec {
     plank
   ];
 
-  patches = [ ./plugins-dir.patch ];
+  patches = [
+    ./plugins-dir.patch
+  ];
 
   postPatch = ''
     chmod +x build-aux/meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 0d00ee2072d..9f40c0f9e58 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,25 +1,46 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, python3
-, pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus
-, json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, zeitgeist
-, bc }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, substituteAll
+, meson
+, ninja
+, python3
+, pkgconfig
+, vala
+, granite
+, libgee
+, gettext
+, gtk3
+, appstream
+, gnome-menus
+, json-glib
+, plank
+, bamf
+, switchboard
+, libunity
+, libsoup
+, wingpanel
+, zeitgeist
+, bc
+}:
 
 stdenv.mkDerivation rec {
-  pname = "applications-menu";
+  pname = "wingpanel-applications-menu";
   version = "2.4.3";
 
-  name = "wingpanel-${pname}-${version}";
+  repoName = "applications-menu";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "15mwfynaa57jii43x77iaz5gqjlylh5zxc70am8zgp8vhgzflvyd";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "wingpanel-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 4d7868a1d14..7e73adcd7e9 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,6 +1,20 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
-, ninja, vala, gtk3, granite, libnotify, wingpanel, libgee, libxml2
-, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, gtk3
+, granite
+, libnotify
+, wingpanel
+, libgee
+, libxml2
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-bluetooth";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 70129690060..1ab3c579e14 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,6 +1,24 @@
-{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, python3
-, ninja, vala, gtk3, granite, wingpanel, evolution-data-server
-, libical, libgee, libxml2, libsoup, elementary-calendar, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, gtk3
+, granite
+, wingpanel
+, evolution-data-server
+, libical
+, libgee
+, libxml2
+, libsoup
+, elementary-calendar
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index aa63f82c965..00a57cb9943 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,6 +1,21 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja
-, substituteAll, vala, gtk3, granite, libxml2, wingpanel, libgee
-, xorg, libgnomekbd, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, substituteAll
+, vala
+, gtk3
+, granite
+, libxml2
+, wingpanel
+, libgee
+, xorg
+, libgnomekbd
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-keyboard";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index a201d6864a6..d5ce97df509 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,6 +1,19 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
-, gtk3, granite, networkmanager, networkmanagerapplet, wingpanel
-, libgee, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, gtk3
+, granite
+, networkmanager
+, networkmanagerapplet
+, wingpanel
+, libgee
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-network";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index fd4e1cc7e17..0eab02bf8c8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,5 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
-, gtk3, granite, wingpanel, libgee, libxml2, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, gtk3
+, granite
+, wingpanel
+, libgee
+, libxml2
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-nightlight";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 03369c3ad42..78c901a2306 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,5 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, gtk3, granite
-, wingpanel, libgee, libwnck3, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, gtk3
+, granite
+, wingpanel
+, libgee
+, libwnck3
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index a9af53449c9..f63cca74a4d 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,6 +1,21 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
-, ninja, vala, gtk3, granite, bamf, libgtop, udev, wingpanel
-, libgee, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, gtk3
+, granite
+, bamf
+, libgtop
+, udev
+, wingpanel
+, libgee
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-power";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 61572f07e2e..b363cb5485a 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
-, ninja, vala, gtk3, granite, wingpanel, accountsservice
-, libgee, elementary-icon-theme, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, gtk3
+, granite
+, wingpanel
+, accountsservice
+, libgee
+, elementary-icon-theme
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-session";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 3e17813fde2..6d0e791d1e4 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,7 +1,22 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
-, python3, ninja, vala, gtk3, granite, wingpanel, libnotify
-, pulseaudio, libcanberra-gtk3, libgee, libxml2, wrapGAppsHook
-, elementary-icon-theme }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, gtk3
+, granite
+, wingpanel
+, libnotify
+, pulseaudio
+, libcanberra-gtk3
+, libgee
+, libxml2
+, wrapGAppsHook
+, elementary-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-sound";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index be6c89f9c05..b98c205d491 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,5 +1,20 @@
-{ stdenv, fetchFromGitHub, pantheon, wrapGAppsHook, pkgconfig, meson, ninja
-, vala, gala, gtk3, libgee, granite, gettext, mutter, json-glib, python3 }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, wrapGAppsHook
+, pkgconfig
+, meson
+, ninja
+, vala
+, gala
+, gtk3
+, libgee
+, granite
+, gettext
+, mutter
+, json-glib
+, python3
+}:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
index cfae604d3a5..6b554d89caa 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
@@ -1,4 +1,11 @@
-{ lib, makeWrapper, symlinkJoin, wingpanel, wingpanelIndicators, switchboard-with-plugs, indicators ? null }:
+{ lib
+, makeWrapper
+, symlinkJoin
+, wingpanel
+, wingpanelIndicators
+, switchboard-with-plugs
+, indicators ? null
+}:
 
 let
   selectedIndicators = if indicators == null then wingpanelIndicators else indicators;
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index cc612407bf6..7fba9610db0 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -1,4 +1,20 @@
-{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala, pkgconfig, libgee, pantheon, gtk3, glib, gettext, hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, python3
+, meson
+, ninja
+, vala
+, pkgconfig
+, libgee
+, pantheon
+, gtk3
+, glib
+, gettext
+, hicolor-icon-theme
+, gobject-introspection
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "granite";
diff --git a/pkgs/desktops/pantheon/services/cerbere/default.nix b/pkgs/desktops/pantheon/services/cerbere/default.nix
index da5e544b005..a8eaf766664 100644
--- a/pkgs/desktops/pantheon/services/cerbere/default.nix
+++ b/pkgs/desktops/pantheon/services/cerbere/default.nix
@@ -1,14 +1,25 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, glib, libgee, vala, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, glib
+, libgee
+, vala
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "cerbere";
-  version = "0.2.4";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0f9jr6q5z6nir5b77f96wm9rx6r6s9i0sr1yrymg3n7jyjgrvdwp";
+    sha256 = "12y6gg4vyc1rhdm2c7pr7bgmdrah7ddphyh25fgh3way8l9gh7vw";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index d7d3cdb0312..6401b96a2ea 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -1,4 +1,17 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, python3, ninja, pkgconfig, vala, glib, libgee, dbus, glib-networking, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, python3
+, ninja
+, pkgconfig
+, vala
+, glib
+, libgee
+, dbus
+, glib-networking
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "contractor";
@@ -33,7 +46,7 @@ stdenv.mkDerivation rec {
     libgee
   ];
 
-  PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "share/dbus-1/services";
+  PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder ''out''}/share/dbus-1/services";
 
   meta = with stdenv.lib; {
     description = "A desktop-wide extension service used by elementary OS";
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 055706b1521..6305c872b2f 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,23 +1,37 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala
-, desktop-file-utils, gtk3, granite, libgee, gcr, webkitgtk, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, python3
+, ninja
+, vala
+, desktop-file-utils
+, gtk3
+, granite
+, libgee
+, gcr
+, webkitgtk
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "capnet-assist";
+  pname = "elementary-capnet-assist";
   version = "2.2.3";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "capnet-assist";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "15cnwimkmmsb4rwvgm8bizcsn1krsj6k3qc88izn79is75y6wwji";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
@@ -40,7 +54,9 @@ stdenv.mkDerivation rec {
   ];
 
   # Not useful here or in elementary - See: https://github.com/elementary/capnet-assist/issues/3
-  patches = [ ./remove-capnet-test.patch ];
+  patches = [
+    ./remove-capnet-test.patch
+  ];
 
   postPatch = ''
     chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
index 54f556e3a92..fb9d28eaf6b 100644
--- a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
@@ -1,28 +1,37 @@
-{ stdenv, fetchFromGitHub, pantheon, makeWrapper, meson, ninja, desktop-file-utils, glib, coreutils, elementary-settings-daemon, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, meson
+, ninja
+, desktop-file-utils
+, glib
+, coreutils
+, elementary-settings-daemon
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
-  pname = "dpms-helper";
+  pname = "elementary-dpms-helper";
   version = "1.0";
 
-  name = "elementary-${pname}-${version}";
+  repoName = "dpms-helper";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = pname;
+    repo = repoName;
     rev = version;
     sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh";
   };
 
   passthru = {
     updateScript = pantheon.updateScript {
-      repoName = pname;
-      attrPath = "elementary-${pname}";
+      inherit repoName;
+      attrPath = pname;
     };
   };
 
   nativeBuildInputs = [
     desktop-file-utils
-    makeWrapper
     meson
     ninja
     wrapGAppsHook
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index d8514c51f4f..8381796c456 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -44,16 +44,16 @@ stdenv.mkDerivation rec {
   pname = "elementary-settings-daemon";
   version = "3.30.2";
 
-  projectName = "gnome-settings-daemon";
+  repoName = "gnome-settings-daemon";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${projectName}/${stdenv.lib.versions.majorMinor version}/${projectName}-${version}.tar.xz";
+    url = "mirror://gnome/sources/${repoName}/${stdenv.lib.versions.majorMinor version}/${repoName}-${version}.tar.xz";
     sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12";
   };
 
   # Source for ubuntu's patchset
   src2 = fetchgit {
-    url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/${projectName}";
+    url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/${repoName}";
     rev = "refs/tags/ubuntu/${version}-1ubuntu1";
     sha256 = "02awkhw6jqm7yh812mw0nsdmsljfi8ksz8mvd2qpns5pcv002g2c";
   };
@@ -152,7 +152,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome3.updateScript {
-      packageName = projectName;
+      packageName = repoName;
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 79bc4bc6a01..8afbbbeed82 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,5 +1,17 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, glib
-, gtk3, libgee, desktop-file-utils, geoclue2, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, glib
+, gtk3
+, libgee
+, desktop-file-utils
+, geoclue2
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-geoclue2";
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index d9e5512ce78..53a65ddb947 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja
-, vala, gtk3, libgee, polkit, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pantheon
+, pkgconfig
+, meson
+, ninja
+, vala
+, gtk3
+, libgee
+, polkit
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
diff --git a/pkgs/desktops/pantheon/update.nix b/pkgs/desktops/pantheon/update.nix
index 0162de7349a..7e9aacc0c2b 100644
--- a/pkgs/desktops/pantheon/update.nix
+++ b/pkgs/desktops/pantheon/update.nix
@@ -1,5 +1,21 @@
-{ runCommand, nix, bash, git, jq, nix-prefetch-scripts, coreutils, common-updater-scripts, gnugrep, gnused, curl }:
-{ repoName, attrPath ? repoName, versionPolicy ? "release" }:
+{ runCommand
+, nix
+, bash
+, git
+, jq
+, nix-prefetch-scripts
+, coreutils
+, common-updater-scripts
+, gnugrep
+, gnused
+, curl
+}:
+
+{ repoName
+, attrPath ? repoName
+, versionPolicy ? "release"
+}:
+
 let
   script = ./update.sh;
 
@@ -13,6 +29,8 @@ let
     chmod +x $out
   '';
 
-  versionFlag = { "release" = "-r"; "master" = "-m"; }.${versionPolicy};
+  throwFlag = throw "${versionPolicy} is not a valid versionPolicy - Options are either 'release' or 'master' (defaults to release).";
+
+  versionFlag = { "release" = "-r"; "master" = "-m"; }.${versionPolicy} or throwFlag;
 
 in [ updateScript versionFlag repoName attrPath ]
diff --git a/pkgs/desktops/surf-display/default.nix b/pkgs/desktops/surf-display/default.nix
new file mode 100644
index 00000000000..f3554fe0b40
--- /dev/null
+++ b/pkgs/desktops/surf-display/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchgit, makeWrapper
+, surf, wmctrl, matchbox, xdotool, unclutter
+, xorg, pulseaudio, xprintidle-ng }:
+
+stdenv.mkDerivation rec {
+  pname = "surf-display";
+  version = "unstable-2019-04-15";
+
+  src = fetchgit {
+    url = "https://code.it-zukunft-schule.de/cgit/surf-display";
+    rev = "972d6c4b7c4503dbb63fa6c92cdc24d1e32064a4";
+    sha256 = "03c68gg4kfmkri1gn5b7m1g8vh9ciawhajb29c17kkc7mn388hjm";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [
+    surf
+    wmctrl
+    matchbox
+    pulseaudio
+    xprintidle-ng
+    xdotool
+    xorg.xmodmap
+    xorg.xkbutils
+    unclutter
+  ];
+
+  patches = [ ./pdf-makefile.patch ];
+
+  buildFlags = [ "man" ];
+
+  postFixup = ''
+    substituteInPlace $out/share/xsessions/surf-display.desktop \
+      --replace surf-display $out/bin/surf-display
+
+    substituteInPlace $out/bin/surf-display --replace /usr/share $out/share
+
+    patchShebangs $out/bin/surf-display
+    wrapProgram $out/bin/surf-display \
+       --prefix PATH ':' ${stdenv.lib.makeBinPath buildInputs}
+  '';
+
+  makeFlags = [ "PREFIX=${placeholder ''out''}" ];
+
+  meta = with stdenv.lib; {
+    description = "Kiosk browser session manager based on the surf browser";
+    homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/";
+    maintainers = with maintainers; [ etu ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/surf-display/pdf-makefile.patch b/pkgs/desktops/surf-display/pdf-makefile.patch
new file mode 100644
index 00000000000..9c2541052c0
--- /dev/null
+++ b/pkgs/desktops/surf-display/pdf-makefile.patch
@@ -0,0 +1,24 @@
+diff --git a/Makefile b/Makefile
+index 1081d64..499160c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -13,19 +13,10 @@ man::
+ 	gzip -9 -c -n data/surf-display.1 > data/surf-display.1.gz
+ 
+ install:
+-	if [ ! -e data/surf-display.pdf.gz ]; then \
+-	    echo "Run 'make build' first, before running 'sudo make install'."; \
+-	    exit -1; \
+-	fi
+-
+         # script
+ 	mkdir -p $(DESTDIR)$(PREFIX)/bin/
+ 	install -m 0755 bin/surf-display $(DESTDIR)$(PREFIX)/bin/
+ 
+-	# LaTeX Beamer PDF: Impressive HowTo
+-	mkdir -p $(DESTDIR)$(PREFIX)/share/doc/surf-display/
+-	install -m 0644 data/*.pdf.gz $(DESTDIR)$(PREFIX)/share/doc/surf-display/
+-
+ 	# man page
+ 	mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
+ 	install -m 0644 data/*.1.gz $(DESTDIR)$(PREFIX)/share/man/man1/
diff --git a/pkgs/desktops/xfce4-14/exo/default.nix b/pkgs/desktops/xfce4-14/exo/default.nix
index 933fa595aad..b0dcec78765 100644
--- a/pkgs/desktops/xfce4-14/exo/default.nix
+++ b/pkgs/desktops/xfce4-14/exo/default.nix
@@ -1,26 +1,18 @@
-{ mkXfceDerivation, docbook_xsl, libxslt, perlPackages, gtk3
+{ mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3
 , libxfce4ui, libxfce4util }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "exo";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "0.12.8";
 
-  sha256 = "0s91fv4yzafmdi25c63yin15sa25cfcyarpvavr4q3mmmiamzpi0";
+  sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5";
 
-  nativeBuildInputs = [ libxslt perlPackages.URI ];
-  buildInputs = [ gtk3 libxfce4ui libxfce4util ];
+  nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ];
+  buildInputs = [ gtk3 glib libxfce4ui libxfce4util ];
 
-  postPatch = ''
-    substituteInPlace exo-helper/Makefile.am \
-      --replace 'exo_helper_2_CFLAGS =' \
-                'exo_helper_2_CFLAGS = $(GIO_UNIX_CFLAGS)'
-
-    substituteInPlace docs/reference/Makefile.am \
-      --replace http://docbook.sourceforge.net/release/xsl/current \
-                ${docbook_xsl}/share/xml/docbook-xsl
-  '';
+  # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   meta = {
     description = "Application library for Xfce";
diff --git a/pkgs/desktops/xfce4-14/garcon/default.nix b/pkgs/desktops/xfce4-14/garcon/default.nix
index a63ddeb52ea..d4e7e2ffc80 100644
--- a/pkgs/desktops/xfce4-14/garcon/default.nix
+++ b/pkgs/desktops/xfce4-14/garcon/default.nix
@@ -3,10 +3,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "garcon";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "0.6.4";
 
-  sha256 = "0d2fir4vbfdmng9k70nf5zv3fjwgr6g0czrp458x6qswih2gv2ik";
+  sha256 = "0pamhp1wffiw638s66nws2mpzmwkhvhb6iwccfy8b0kyr57wipjv";
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util ];
 }
diff --git a/pkgs/desktops/xfce4-14/gigolo/default.nix b/pkgs/desktops/xfce4-14/gigolo/default.nix
index 46b659b11d0..6939e8859ac 100644
--- a/pkgs/desktops/xfce4-14/gigolo/default.nix
+++ b/pkgs/desktops/xfce4-14/gigolo/default.nix
@@ -1,12 +1,12 @@
-{ mkXfceDerivation, exo, gtk3 }:
+{ mkXfceDerivation, exo, gtk3, gvfs, glib }:
 
 mkXfceDerivation rec {
   category = "apps";
   pname = "gigolo";
-  version = "0.4.91";
+  version = "0.5.0";
 
-  sha256 = "1r075hw1jxbpv7jxzyqgfmd2rsw1lykd7snnx736gm55v84k15i7";
+  sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";
 
   nativeBuildInputs = [ exo ];
-  buildInputs = [ gtk3 ];
+  buildInputs = [ gtk3 glib gvfs ];
 }
diff --git a/pkgs/desktops/xfce4-14/libxfce4ui/default.nix b/pkgs/desktops/xfce4-14/libxfce4ui/default.nix
index 77083fabbd3..2ea6d195d6f 100644
--- a/pkgs/desktops/xfce4-14/libxfce4ui/default.nix
+++ b/pkgs/desktops/xfce4-14/libxfce4ui/default.nix
@@ -1,17 +1,21 @@
 { lib, mkXfceDerivation, gobject-introspection, gtk2, gtk3, libICE, libSM
-, libstartup_notification ? null, libxfce4util, xfconf }:
+, libstartup_notification, libxfce4util, xfconf }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "libxfce4ui";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.1";
 
-  sha256 = "0kvqzf91ygxxkcy4drjminby4c3c42c54a3if8jwx0zmgbml7l8q";
+  sha256 = "0fnncf30s51qhgixn57z4d021pjjhzgsg2x69w4dy68vff2347qy";
 
-  buildInputs =  [ gobject-introspection gtk2 gtk3 libstartup_notification xfconf ];
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs =  [ gtk2 gtk3 libstartup_notification xfconf ];
   propagatedBuildInputs = [ libxfce4util libICE libSM ];
 
+  configureFlags = [
+    "--with-vendor-info='NixOS'"
+  ];
+
   meta = with lib; {
     description = "Widgets library for Xfce";
     license = licenses.lgpl2Plus;
diff --git a/pkgs/desktops/xfce4-14/libxfce4util/default.nix b/pkgs/desktops/xfce4-14/libxfce4util/default.nix
index e6cafcac8bb..99fe59583aa 100644
--- a/pkgs/desktops/xfce4-14/libxfce4util/default.nix
+++ b/pkgs/desktops/xfce4-14/libxfce4util/default.nix
@@ -3,12 +3,11 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "libxfce4util";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "0s1fh798v86ifg46qn3zaykpwidn23vpqbkxq1fcbxpxb6rpxxwk";
+  sha256 = "0vq16bzmnykiikg4dhiaj0qbyj76nkdd54j6k6n568h3dc9ix6q4";
 
-  buildInputs = [ gobject-introspection ];
+  nativeBuildInputs = [ gobject-introspection ];
 
   meta = with lib; {
     description = "Extension library for Xfce";
diff --git a/pkgs/desktops/xfce4-14/mkXfceDerivation.nix b/pkgs/desktops/xfce4-14/mkXfceDerivation.nix
index da7179c4646..cf4b5eb3cdc 100644
--- a/pkgs/desktops/xfce4-14/mkXfceDerivation.nix
+++ b/pkgs/desktops/xfce4-14/mkXfceDerivation.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme }:
+{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, wrapGAppsHook }:
 
 { category, pname, version, rev ? "${pname}-${version}", sha256, ... } @ args:
 
@@ -15,7 +15,7 @@ let
   template = rec {
     name = "${pname}-${version}";
 
-    nativeBuildInputs = [ pkgconfig xfce4-dev-tools ];
+    nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ];
     buildInputs = [ hicolor-icon-theme ];
     configureFlags = [ "--enable-maintainer-mode" ];
 
diff --git a/pkgs/desktops/xfce4-14/mousepad/default.nix b/pkgs/desktops/xfce4-14/mousepad/default.nix
index b5fd3a19d06..ca80fd8bf53 100644
--- a/pkgs/desktops/xfce4-14/mousepad/default.nix
+++ b/pkgs/desktops/xfce4-14/mousepad/default.nix
@@ -1,12 +1,15 @@
-{ mkXfceDerivation, exo, wrapGAppsHook, dbus-glib, gtk3, gtksourceview3 }:
+{ mkXfceDerivation, exo, glib, gtk3, gtksourceview3, xfconf }:
 
 mkXfceDerivation rec {
   category = "apps";
   pname = "mousepad";
-  version = "0.4.1";
+  version = "0.4.2";
 
-  sha256 = "0pr1w9n0qq2raxhy78982i9g17x0ya02q7vdrn0wb2bpk74hlki5";
+  sha256 = "0a35vaq4l0d8vzw7hqpvbgkr3wj1sqr2zvj7bc5z4ikz2cppqj7p";
 
-  nativeBuildInputs = [ exo wrapGAppsHook ];
-  buildInputs = [ dbus-glib gtk3 gtksourceview3 ];
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ glib gtk3 gtksourceview3 xfconf ];
+
+  # See https://github.com/NixOS/nixpkgs/issues/36468
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 }
diff --git a/pkgs/desktops/xfce4-14/orage/default.nix b/pkgs/desktops/xfce4-14/orage/default.nix
index 3c8395a4908..8c453aa96a2 100644
--- a/pkgs/desktops/xfce4-14/orage/default.nix
+++ b/pkgs/desktops/xfce4-14/orage/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchpatch, mkXfceDerivation, dbus-glib, gtk2, libical, libnotify, tzdata
-, popt, libxfce4ui ? null, xfce4-panel ? null, withPanelPlugin ? true }:
+, popt, libxfce4ui, xfce4-panel, withPanelPlugin ? true }:
 
 assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null;
 
diff --git a/pkgs/desktops/xfce4-14/parole/default.nix b/pkgs/desktops/xfce4-14/parole/default.nix
index f3a4561826e..578be8329b0 100644
--- a/pkgs/desktops/xfce4-14/parole/default.nix
+++ b/pkgs/desktops/xfce4-14/parole/default.nix
@@ -1,24 +1,22 @@
-{ mkXfceDerivation, makeWrapper, wrapGAppsHook, dbus, dbus-glib
-, gst-plugins-bad ? null, gst-plugins-base, gst-plugins-good
-, gst-plugins-ugly ? null, gtk3, libnotify, libxfce4ui, libxfce4util
-, taglib ? null, xfconf }:
+{ mkXfceDerivation, dbus, dbus-glib
+, gst-plugins-bad, gst-plugins-base, gst-plugins-good
+, gst-plugins-ugly, gtk3, libnotify, libxfce4ui, libxfce4util
+, taglib, xfconf }:
 
 # Doesn't seem to find H.264 codec even though built with gst-plugins-bad.
 
 mkXfceDerivation rec {
   category = "apps";
   pname = "parole";
-  version = "1.0.2";
+  version = "1.0.4";
 
-  sha256 = "11i20pvbrcf1jbn77skb1cg72jdmdd0jvmf5khfn91slqky8gcbl";
+  sha256 = "18j4bmny37crryh4pvxcjjvj99mln6ljq2vy69awxhvrjx9ljv13";
 
   postPatch = ''
     substituteInPlace src/plugins/mpris2/Makefile.am \
       --replace GST_BASE_CFLAGS GST_VIDEO_CFLAGS
   '';
 
-  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
-
   buildInputs = [
     dbus
     dbus-glib
diff --git a/pkgs/desktops/xfce4-14/ristretto/default.nix b/pkgs/desktops/xfce4-14/ristretto/default.nix
index b2da8139930..1c09d3a0c00 100644
--- a/pkgs/desktops/xfce4-14/ristretto/default.nix
+++ b/pkgs/desktops/xfce4-14/ristretto/default.nix
@@ -1,18 +1,13 @@
-{ mkXfceDerivation, automakeAddFlags, exo, dbus-glib, gtk2, libexif
+{ mkXfceDerivation, automakeAddFlags, exo, gtk3, glib, libexif
 , libxfce4ui, libxfce4util, xfconf }:
 
 mkXfceDerivation rec {
   category = "apps";
   pname = "ristretto";
-  version = "0.8.4";
+  version = "0.10.0";
 
-  postPatch = ''
-    automakeAddFlags src/Makefile.am ristretto_CFLAGS DBUS_GLIB_CFLAGS
-    automakeAddFlags src/Makefile.am ristretto_LDADD DBUS_GLIB_LIBS
-  '';
+  sha256 = "07h7wbq3xh2ac6q4kp2ai1incfn0zfxxngap7hzqx47a5xw2mrm8";
 
-  nativeBuildInputs = [ automakeAddFlags exo ];
-  buildInputs = [ dbus-glib gtk2 libexif libxfce4ui libxfce4util xfconf ];
-
-  sha256 = "0vnivwl0xwhzpflys9zwds6x9gqd3v069qn04afmakhi2m8qr6hf";
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
 }
diff --git a/pkgs/desktops/xfce4-14/thunar-volman/default.nix b/pkgs/desktops/xfce4-14/thunar-volman/default.nix
index db7324140c5..1fa714c7ff1 100644
--- a/pkgs/desktops/xfce4-14/thunar-volman/default.nix
+++ b/pkgs/desktops/xfce4-14/thunar-volman/default.nix
@@ -3,10 +3,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "thunar-volman";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "0.9.5";
 
   buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ];
 
-  sha256 = "0jl863z6rxz50vqa31s58dfn429yn5x8scg492bvgl4cnmni6a30";
+  sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
 }
diff --git a/pkgs/desktops/xfce4-14/thunar/default.nix b/pkgs/desktops/xfce4-14/thunar/default.nix
index 27fe256490a..ed0be442023 100644
--- a/pkgs/desktops/xfce4-14/thunar/default.nix
+++ b/pkgs/desktops/xfce4-14/thunar/default.nix
@@ -1,21 +1,14 @@
-{ mkXfceDerivation, docbook_xsl, exo, gdk-pixbuf, gtk3, libgudev ? null
-, libnotify ? null, libX11, libxfce4ui, libxfce4util, libxslt, xfconf }:
+{ mkXfceDerivation, docbook_xsl, exo, gdk-pixbuf, gtk3, libgudev
+, libnotify, libX11, libxfce4ui, libxfce4util, libxslt, xfconf, gobject-introspection, gvfs }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "thunar";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "1.8.9";
 
-  sha256 = "0b17yf8ss8s8xyr65v4zrq15ayr5nskqpxy4wxah33n7lz09dh8r";
+  sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w";
 
-  postPatch = ''
-    substituteInPlace docs/Makefile.am \
-      --replace http://docbook.sourceforge.net/release/xsl/current \
-                ${docbook_xsl}/share/xml/docbook-xsl
-  '';
-
-  nativeBuildInputs = [ libxslt ];
+  nativeBuildInputs = [ libxslt docbook_xsl gobject-introspection ];
 
   buildInputs = [
     exo
@@ -27,5 +20,6 @@ mkXfceDerivation rec {
     libxfce4ui
     libxfce4util
     xfconf
+    gvfs
   ];
 }
diff --git a/pkgs/desktops/xfce4-14/tumbler/default.nix b/pkgs/desktops/xfce4-14/tumbler/default.nix
index 81cc0922ff3..81b00808336 100644
--- a/pkgs/desktops/xfce4-14/tumbler/default.nix
+++ b/pkgs/desktops/xfce4-14/tumbler/default.nix
@@ -1,15 +1,30 @@
-{ mkXfceDerivation, gdk-pixbuf ? null, ffmpegthumbnailer ? null, libgsf ? null
-, poppler ? null }:
+{ mkXfceDerivation
+, ffmpegthumbnailer
+, gdk-pixbuf
+, glib
+, freetype
+, libgsf
+, poppler
+, libjpeg
+, gst_all_1
+}:
 
 # TODO: add libopenraw
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "tumbler";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "0.2.7";
 
-  sha256 = "1k579g8dmcfpw1vakspv6k2qkr1y1axyr8cbd0fqjhqdj4pis81i";
+  sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry";
 
-  buildInputs = [ gdk-pixbuf ffmpegthumbnailer libgsf poppler ];
+  buildInputs = [
+    ffmpegthumbnailer
+    freetype
+    gdk-pixbuf
+    glib
+    gst_all_1.gst-plugins-base
+    libgsf
+    poppler # technically the glib binding
+  ];
 }
diff --git a/pkgs/desktops/xfce4-14/xfburn/default.nix b/pkgs/desktops/xfce4-14/xfburn/default.nix
index b8a61f6cf90..97d08636656 100644
--- a/pkgs/desktops/xfce4-14/xfburn/default.nix
+++ b/pkgs/desktops/xfce4-14/xfburn/default.nix
@@ -5,14 +5,8 @@ mkXfceDerivation rec {
   pname = "xfburn";
   version = "0.5.5";
 
-  postPatch = ''
-    substituteInPlace docs/Makefile.am \
-      --replace http://docbook.sourceforge.net/release/xsl/current \
-                ${docbook_xsl}/share/xml/docbook-xsl
-  '';
-
   sha256 = "1lmv48vqrlap1a2ha72g16vqly18zvcwj8y3f3f00l10pmn52bkp";
 
-  nativeBuildInputs = [ libxslt ];
+  nativeBuildInputs = [ libxslt docbook_xsl ];
   buildInputs = [ exo gtk2 libburn libisofs libxfce4ui ];
 }
diff --git a/pkgs/desktops/xfce4-14/xfce4-appfinder/default.nix b/pkgs/desktops/xfce4-14/xfce4-appfinder/default.nix
index 22a6b6fedd2..312e64cdbbe 100644
--- a/pkgs/desktops/xfce4-14/xfce4-appfinder/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-appfinder/default.nix
@@ -3,10 +3,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-appfinder";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "0vr5lx4fv0kldqvqfnsjp6ss7ciz0b2yjq4fhmrhk8czkf8p7va8";
+  sha256 = "04h7jxfm3wkxnxfy8149dckay7i160vvk4p9lnq6xny22r4x20h8";
 
   nativeBuildInputs = [ exo ];
   buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];
diff --git a/pkgs/desktops/xfce4-14/xfce4-dev-tools/default.nix b/pkgs/desktops/xfce4-14/xfce4-dev-tools/default.nix
index 49133b0ba2d..b18f3fd45d6 100644
--- a/pkgs/desktops/xfce4-14/xfce4-dev-tools/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-dev-tools/default.nix
@@ -4,10 +4,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-dev-tools";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "11g5byxjihgkn0wi7gp8627d04wr59k117lpv53vdbsvv2qgksmg";
+  sha256 = "10hcj88784faqrk08xb538355cla26vdk9ckx158hqdqv38sb42f";
 
   nativeBuildInputs = [ autoreconfHook ];
 
diff --git a/pkgs/desktops/xfce4-14/xfce4-notifyd/default.nix b/pkgs/desktops/xfce4-14/xfce4-notifyd/default.nix
index 98ed6882a02..a99c3ecb984 100644
--- a/pkgs/desktops/xfce4-14/xfce4-notifyd/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-notifyd/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, dbus-glib, exo, gtk3, libnotify, libxfce4ui, libxfce4util
+{ mkXfceDerivation, glib, exo, gtk3, libnotify, libxfce4ui, libxfce4util
 , xfce4-panel, xfconf }:
 
 mkXfceDerivation rec {
@@ -8,5 +8,5 @@ mkXfceDerivation rec {
 
   sha256 = "1lmm9h3ych8dz9jpjkxg91f9ln14xs527nxjxsryks00kmqk4kai";
 
-  buildInputs = [ dbus-glib exo gtk3 libnotify libxfce4ui libxfce4util xfce4-panel xfconf ];
+  buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ];
 }
diff --git a/pkgs/desktops/xfce4-14/xfce4-panel/default.nix b/pkgs/desktops/xfce4-14/xfce4-panel/default.nix
index 4f1de32abdf..27acb3bee58 100644
--- a/pkgs/desktops/xfce4-14/xfce4-panel/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-panel/default.nix
@@ -1,15 +1,14 @@
-{ mkXfceDerivation, makeWrapper, tzdata, exo, garcon, gtk2, gtk3, gettext, glib-networking, libxfce4ui, libxfce4util, libwnck3, xfconf }:
+{ mkXfceDerivation, tzdata, exo, garcon, gtk2, gtk3, glib, gettext, glib-networking, libxfce4ui, libxfce4util, libwnck3, xfconf, gobject-introspection }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "1p0bkbxjh14kgny2lpcjg2q8pm55l8i7qsr5bsvdppw3ab46kz34";
+  sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15";
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ exo garcon gtk2 gtk3 libxfce4ui libxfce4util libwnck3 xfconf ];
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
 
   patches = [ ../../xfce/core/xfce4-panel-datadir.patch ];
   patchFlags = "-p1";
@@ -19,18 +18,11 @@ mkXfceDerivation rec {
       substituteInPlace $f --replace gettext ${gettext}/bin/gettext
     done
     substituteInPlace plugins/clock/clock.c \
-       --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" \
-       --replace "if (!g_file_test (filename, G_FILE_TEST_IS_SYMLINK))" ""
+       --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
   '';
 
   configureFlags = [ "--enable-gtk3" ];
 
-  postInstall = ''
-    wrapProgram "$out/bin/xfce4-panel" \
-      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
-      --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules"
-  '';
-
   meta =  {
     description = "Xfce's panel";
   };
diff --git a/pkgs/desktops/xfce4-14/xfce4-power-manager/default.nix b/pkgs/desktops/xfce4-14/xfce4-power-manager/default.nix
index a855f2c977e..115668334c3 100644
--- a/pkgs/desktops/xfce4-14/xfce4-power-manager/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-power-manager/default.nix
@@ -4,10 +4,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-power-manager";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "1.6.5";
 
-  sha256 = "1x1ssji4v9qp64si38paz15bgsgs1w3hkx080qznnmcxqlg7zpj9";
+  sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5";
 
   nativeBuildInputs = [ automakeAddFlags exo ];
   buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
diff --git a/pkgs/desktops/xfce4-14/xfce4-screenshooter/default.nix b/pkgs/desktops/xfce4-14/xfce4-screenshooter/default.nix
index 95af146903b..0f74a78e8f2 100644
--- a/pkgs/desktops/xfce4-14/xfce4-screenshooter/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-screenshooter/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, wrapGAppsHook, glib-networking }:
+{ mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, glib-networking }:
 
 mkXfceDerivation rec {
   category = "apps";
@@ -7,6 +7,5 @@ mkXfceDerivation rec {
 
   sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";
 
-  nativeBuildInputs = [ wrapGAppsHook ]; # fix "No GSettings schemas are installed on the system"
   buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
 }
diff --git a/pkgs/desktops/xfce4-14/xfce4-session/default.nix b/pkgs/desktops/xfce4-14/xfce4-session/default.nix
index a39a70b09a8..070f40b52d5 100644
--- a/pkgs/desktops/xfce4-14/xfce4-session/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-session/default.nix
@@ -1,26 +1,18 @@
-{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, dbus-glib, dbus, iceauth, gtk3, libwnck3, xorg }:
+{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck3, xorg }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-session";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "1asfy11rp6zmn70a3w5dqssxpxywhpm9ns7zyiaz6pnpcq075dr0";
+  sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104";
 
-  buildInputs = [ exo dbus-glib dbus gtk3 libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
+  buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
 
-  configureFlags = [ "--with-xsession-prefix=$(out)" ];
+  configureFlags = [ "--with-xsession-prefix=${placeholder ''out''}" ];
 
-  NIX_CFLAGS_COMPILE = [ "-I${dbus-glib.dev}/include/dbus-1.0"
-                         "-I${dbus.dev}/include/dbus-1.0"
-                         "-I${dbus.lib}/lib/dbus-1.0/include"
-                       ];
-
-  postPatch = ''
-    substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0
-    substituteInPlace scripts/xflock4 --replace PATH=/bin:/usr/bin "PATH=\$PATH:$out/bin:${xorg.xset}/bin"
-  '';
+  # See https://github.com/NixOS/nixpkgs/issues/36468
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   meta =  {
     description = "Session manager for Xfce";
diff --git a/pkgs/desktops/xfce4-14/xfce4-settings/default.nix b/pkgs/desktops/xfce4-14/xfce4-settings/default.nix
index a939f5e213c..21aaef5fd08 100644
--- a/pkgs/desktops/xfce4-14/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-settings/default.nix
@@ -1,35 +1,32 @@
-{ mkXfceDerivation, automakeAddFlags, exo, garcon, gtk3
-, libnotify ? null, libxfce4ui, libxfce4util, libxklavier ? null
-, upower ? null, xfconf, xf86inputlibinput ? null }:
+{ mkXfceDerivation, automakeAddFlags, exo, garcon, gtk3, glib
+, libnotify, libxfce4ui, libxfce4util, libxklavier
+, upower, xfconf, xf86inputlibinput }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "0agi5flbzbc9q29yh7wbk3giif74finf4shq3q7v2h91w5kvyc9j";
+  sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn";
 
   postPatch = ''
-    automakeAddFlags xfce4-settings-editor/Makefile.am xfce4_settings_editor_CFLAGS DBUS_GLIB_CFLAGS
     for f in $(find . -name \*.c); do
       substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
     done
   '';
 
-  nativeBuildInputs = [ automakeAddFlags ];
-
   buildInputs = [
     exo
     garcon
+    glib
     gtk3
     libnotify
     libxfce4ui
     libxfce4util
     libxklavier
     upower
-    xfconf
     xf86inputlibinput
+    xfconf
   ];
 
   configureFlags = [
diff --git a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
index 6bc88ee7661..e62332343ba 100644
--- a/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-terminal/default.nix
@@ -1,14 +1,13 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, wrapGAppsHook, vte }:
+{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf }:
 
 mkXfceDerivation rec {
   category = "apps";
   pname = "xfce4-terminal";
-  version = "0.8.7.4";
+  version = "0.8.8";
 
-  sha256 = "1s1dq560icg602jjb2ja58x7hxg4ikp3jrrf74v3qgi0ir950k2y";
+  sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp";
 
-  buildInputs = [ gtk3 libxfce4ui vte ];
-  nativeBuildInputs = [ wrapGAppsHook ];
+  buildInputs = [ gtk3 libxfce4ui vte xfconf ];
 
   meta = {
     description = "A modern terminal emulator";
diff --git a/pkgs/desktops/xfce4-14/xfce4-volumed-pulse/default.nix b/pkgs/desktops/xfce4-14/xfce4-volumed-pulse/default.nix
index 626451c70d6..b1405910021 100644
--- a/pkgs/desktops/xfce4-14/xfce4-volumed-pulse/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-volumed-pulse/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkXfceDerivation, gtk3, libnotify ? null, libpulseaudio, keybinder3, xfconf }:
+{ lib, mkXfceDerivation, gtk3, libnotify, libpulseaudio, keybinder3, xfconf }:
 
 mkXfceDerivation rec {
   category = "apps";
diff --git a/pkgs/desktops/xfce4-14/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce4-14/xfce4-whiskermenu-plugin/default.nix
index 41cd491a7dc..f943f2ab333 100644
--- a/pkgs/desktops/xfce4-14/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce4-14/xfce4-whiskermenu-plugin/default.nix
@@ -1,15 +1,15 @@
-{ mkXfceDerivation, dbus-glib, gtk3, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+{ mkXfceDerivation, gtk3, glib, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
 mkXfceDerivation rec {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
-  version = "2.3.2";
+  version = "2.3.3";
   rev = "v${version}";
-  sha256 = "0ha6c259d7a0wzpf87ynyzpj3y178iwhpcb87m9zxm66i513qmbs";
+  sha256 = "0agh0a5srsy6vi6r50ak9rb42r7vcnfv6nfvg4qbqi77yc44yqdb";
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ dbus-glib exo garcon gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
+  buildInputs = [ exo garcon gtk3 glib libxfce4ui libxfce4util xfce4-panel xfconf ];
 
   postInstall = ''
     substituteInPlace $out/bin/xfce4-popup-whiskermenu \
diff --git a/pkgs/desktops/xfce4-14/xfconf/default.nix b/pkgs/desktops/xfce4-14/xfconf/default.nix
index 8a37aefab41..8e56e0f8b37 100644
--- a/pkgs/desktops/xfce4-14/xfconf/default.nix
+++ b/pkgs/desktops/xfce4-14/xfconf/default.nix
@@ -3,10 +3,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfconf";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.1";
 
-  sha256 = "056r2dkkw8hahqin1p5k8rz0r9r0z8piniy855nd1ns0mx2sh47k";
+  sha256 = "1mbqc1463xgn7gafbh2fyshshdxin33iwk96y4nw2gl48nhx4sgs";
 
   buildInputs = [ libxfce4util ];
 }
diff --git a/pkgs/desktops/xfce4-14/xfdesktop/default.nix b/pkgs/desktops/xfce4-14/xfdesktop/default.nix
index 6b99b1b6a35..c4b7d738b32 100644
--- a/pkgs/desktops/xfce4-14/xfdesktop/default.nix
+++ b/pkgs/desktops/xfce4-14/xfdesktop/default.nix
@@ -1,14 +1,11 @@
-{ mkXfceDerivation, exo, wrapGAppsHook, gtk3, libxfce4ui, libxfce4util, libwnck3, xfconf }:
+{ mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck3, xfconf, libnotify, garcon, thunar }:
 
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfdesktop";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.1";
 
-  sha256 = "14sfcxbwxhhwn9nmiap46nz6idvw5hwr8wyjqrhq4h79x78g18k4";
-
-  nativeBuildInputs = [ wrapGAppsHook ]; # fix "No GSettings schemas are installed on the system"
+  sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g";
 
   buildInputs = [
     exo
@@ -17,6 +14,9 @@ mkXfceDerivation rec {
     libxfce4util
     libwnck3
     xfconf
+    libnotify
+    garcon
+    thunar
   ];
 
   meta = {
diff --git a/pkgs/desktops/xfce4-14/xfwm4/default.nix b/pkgs/desktops/xfce4-14/xfwm4/default.nix
index 34b5bdae45a..b84487c09ae 100644
--- a/pkgs/desktops/xfce4-14/xfwm4/default.nix
+++ b/pkgs/desktops/xfce4-14/xfwm4/default.nix
@@ -5,10 +5,9 @@
 mkXfceDerivation rec {
   category = "xfce";
   pname = "xfwm4";
-  version = "4.14pre2";
-  rev = "xfce-4.14pre2";
+  version = "4.14.0";
 
-  sha256 = "00nysv5qrv5n4xzyqv4jnsmgljwr2wyynis1gpdbm2kvl5ndxrrd";
+  sha256 = "1z5aqij2d8n9wnha88b0qzkvss54jvqs8w1w5m3mzjl4c9mn9n8m";
 
   nativeBuildInputs = [ exo librsvg ];