about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/pantheon
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/pantheon')
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch234
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch162
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch35
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch24
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch55
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix (renamed from nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix)10
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix84
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch26
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch36
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patch15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch58
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix26
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix43
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix72
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/default.nix41
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch309
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix27
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list2
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/fix-session-crash-when-taking-screenshots.patch50
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix70
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix25
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patch13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/granite/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix66
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix163
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patch84
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch26
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix6
97 files changed, 1584 insertions, 1138 deletions
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 556b67aeafe8..86580bd4c30f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -30,15 +30,24 @@
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.6.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0kwqgilhyrj2nbvw5y34nzch5h9jnrg1a1n333qdsx4ax6yrxh4j";
+    sha256 = "07lkdpnjj9pxbq8h794qjiidvnysvzx0132w98r1wg9k7ca170bj";
   };
 
+  patches = [
+    # Try to remove other backends to make flatpak backend work.
+    # https://github.com/NixOS/nixpkgs/issues/70214
+    ./flatpak-only.patch
+    # The homepage banner does not show up on first run,
+    # has issues with app icon and mouse scrolling.
+    ./drop-homepage-banner.patch
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -76,7 +85,6 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dhomepage=false"
     "-Dpayments=false"
     "-Dcurated=false"
   ];
@@ -91,6 +99,6 @@ stdenv.mkDerivation rec {
     description = "An open, pay-what-you-want app store for indie developers, designed for elementary OS";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
new file mode 100644
index 000000000000..3e7aa3efc126
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/drop-homepage-banner.patch
@@ -0,0 +1,234 @@
+From b1e09653d755ca6ffd03a1e3e67750e6bcc2bc6f Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Wed, 22 Sep 2021 11:54:48 +0800
+Subject: [PATCH 2/2] Drop homepage banner
+
+---
+ src/Views/Homepage.vala | 181 +---------------------------------------
+ 1 file changed, 1 insertion(+), 180 deletions(-)
+
+diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
+index 576fc02c..80a1d221 100644
+--- a/src/Views/Homepage.vala
++++ b/src/Views/Homepage.vala
+@@ -31,67 +31,12 @@ public class AppCenter.Homepage : AbstractView {
+     public bool viewing_package { get; private set; default = false; }
+ 
+     public AppStream.Category currently_viewed_category;
+-    private Hdy.Carousel banner_carousel;
+-    private Gtk.Revealer banner_revealer;
+-    private Gtk.FlowBox recently_updated_carousel;
+-    private Gtk.Revealer recently_updated_revealer;
+-
+-    private uint banner_timeout_id;
+ 
+     construct {
+-        banner_carousel = new Hdy.Carousel () {
+-            allow_long_swipes = true
+-        };
+-
+-        var banner_event_box = new Gtk.EventBox ();
+-        banner_event_box.events |= Gdk.EventMask.ENTER_NOTIFY_MASK;
+-        banner_event_box.events |= Gdk.EventMask.LEAVE_NOTIFY_MASK;
+-        banner_event_box.add (banner_carousel);
+-
+-        var banner_dots = new Hdy.CarouselIndicatorDots () {
+-            carousel = banner_carousel
+-        };
+-
+-        var banner_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        banner_grid.add (banner_event_box);
+-        banner_grid.add (banner_dots);
+-
+-        banner_revealer = new Gtk.Revealer ();
+-        banner_revealer.add (banner_grid);
+-
+-        var recently_updated_label = new Granite.HeaderLabel (_("Recently Updated")) {
+-            margin_start = 12
+-        };
+-
+-        recently_updated_carousel = new Gtk.FlowBox () {
+-            activate_on_single_click = true,
+-            column_spacing = 12,
+-            row_spacing = 12,
+-            homogeneous = true,
+-            max_children_per_line = 5,
+-            min_children_per_line = 3
+-        };
+-
+-        var recently_updated_grid = new Gtk.Grid () {
+-            margin_end = 12,
+-            margin_start = 12
+-        };
+-        recently_updated_grid.attach (recently_updated_label, 0, 0);
+-        recently_updated_grid.attach (recently_updated_carousel, 0, 1);
+-
+-        recently_updated_revealer = new Gtk.Revealer ();
+-        recently_updated_revealer.add (recently_updated_grid );
+-
+-        var categories_label = new Granite.HeaderLabel (_("Categories")) {
+-            margin_start = 24,
+-            margin_top = 24
+-        };
+-
+         category_flow = new Widgets.CategoryFlowBox () {
+             margin_start = 12,
+             margin_end =12,
++            margin_top = 12,
+             valign = Gtk.Align.START
+         };
+ 
+@@ -99,9 +44,6 @@ public class AppCenter.Homepage : AbstractView {
+             column_spacing = 24,
+             orientation = Gtk.Orientation.VERTICAL
+         };
+-        grid.add (banner_revealer);
+-        grid.add (recently_updated_revealer);
+-        grid.add (categories_label);
+         grid.add (category_flow);
+ 
+         scrolled_window = new Gtk.ScrolledWindow (null, null) {
+@@ -111,19 +53,6 @@ public class AppCenter.Homepage : AbstractView {
+ 
+         add (scrolled_window);
+ 
+-        var local_package = App.local_package;
+-        if (local_package != null) {
+-            var banner = new Widgets.Banner (local_package);
+-
+-            banner_carousel.prepend (banner);
+-
+-            banner.clicked.connect (() => {
+-                show_package (local_package);
+-            });
+-        }
+-
+-        load_banners_and_carousels.begin ();
+-
+         category_flow.child_activated.connect ((child) => {
+             var item = child as Widgets.CategoryItem;
+             if (item != null) {
+@@ -159,94 +88,8 @@ public class AppCenter.Homepage : AbstractView {
+                         }
+                     }
+                 }
+-
+-                return GLib.Source.REMOVE;
+             });
+         });
+-
+-        banner_event_box.enter_notify_event.connect (() => {
+-            banner_timeout_stop ();
+-        });
+-
+-        banner_event_box.leave_notify_event.connect (() => {
+-            banner_timeout_start ();
+-        });
+-
+-        recently_updated_carousel.child_activated.connect ((child) => {
+-            var package_row_grid = (AppCenter.Widgets.ListPackageRowGrid) child.get_child ();
+-
+-            show_package (package_row_grid.package);
+-        });
+-    }
+-
+-    private async void load_banners_and_carousels () {
+-        unowned var fp_client = AppCenterCore.FlatpakBackend.get_default ();
+-        var packages_by_release_date = fp_client.get_featured_packages_by_release_date ();
+-        var packages_in_banner = new Gee.LinkedList<AppCenterCore.Package> ();
+-
+-        int package_count = 0;
+-        foreach (var package in packages_by_release_date) {
+-            if (package_count >= MAX_PACKAGES_IN_BANNER) {
+-                break;
+-            }
+-
+-            var installed = false;
+-            foreach (var origin_package in package.origin_packages) {
+-                try {
+-                    if (yield origin_package.backend.is_package_installed (origin_package)) {
+-                        installed = true;
+-                        break;
+-                    }
+-                } catch (Error e) {
+-                    continue;
+-                }
+-            }
+-
+-            if (!installed) {
+-                packages_in_banner.add (package);
+-                package_count++;
+-            }
+-        }
+-
+-        foreach (var package in packages_in_banner) {
+-            var banner = new Widgets.Banner (package);
+-            banner.clicked.connect (() => {
+-                show_package (package);
+-            });
+-
+-            banner_carousel.add (banner);
+-        }
+-
+-        banner_carousel.show_all ();
+-        banner_revealer.reveal_child = true;
+-        banner_timeout_start ();
+-
+-        foreach (var package in packages_by_release_date) {
+-            if (recently_updated_carousel.get_children ().length () >= MAX_PACKAGES_IN_CAROUSEL) {
+-                break;
+-            }
+-
+-            var installed = false;
+-            foreach (var origin_package in package.origin_packages) {
+-                try {
+-                    if (yield origin_package.backend.is_package_installed (origin_package)) {
+-                        installed = true;
+-                        break;
+-                    }
+-                } catch (Error e) {
+-                    continue;
+-                }
+-            }
+-
+-            if (!installed && !(package in packages_in_banner) && !package.is_explicit) {
+-                var package_row = new AppCenter.Widgets.ListPackageRowGrid (package);
+-                recently_updated_carousel.add (package_row);
+-            }
+-        }
+-        recently_updated_carousel.show_all ();
+-        recently_updated_revealer.reveal_child = recently_updated_carousel.get_children ().length () > 0;
+-
+-        page_loaded ();
+     }
+ 
+     public override void show_package (
+@@ -307,26 +150,4 @@ public class AppCenter.Homepage : AbstractView {
+         var apps = client.get_applications_for_category (category);
+         app_list_view.add_packages (apps);
+     }
+-
+-    private void banner_timeout_start () {
+-        banner_timeout_id = Timeout.add (MILLISECONDS_BETWEEN_BANNER_ITEMS, () => {
+-            var new_index = (uint) banner_carousel.position + 1;
+-            var max_index = banner_carousel.n_pages - 1; // 0-based index
+-
+-            if (banner_carousel.position >= max_index) {
+-                new_index = 0;
+-            }
+-
+-            banner_carousel.switch_child (new_index, Granite.TRANSITION_DURATION_OPEN);
+-
+-            return Source.CONTINUE;
+-        });
+-    }
+-
+-    private void banner_timeout_stop () {
+-        if (banner_timeout_id != 0) {
+-            Source.remove (banner_timeout_id);
+-            banner_timeout_id = 0;
+-        }
+-    }
+ }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
new file mode 100644
index 000000000000..aa8cde89616a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch
@@ -0,0 +1,162 @@
+From 5d3f20b49a89b55e39339a0f90ae7f846356b0e1 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Wed, 22 Sep 2021 11:54:24 +0800
+Subject: [PATCH 1/2] Drop PackageKitBackend and UbuntuDriversBackend
+
+---
+ src/Application.vala            | 14 ---------
+ src/Core/BackendAggregator.vala |  2 --
+ src/Core/UpdateManager.vala     | 56 ---------------------------------
+ src/MainWindow.vala             | 17 ----------
+ 4 files changed, 89 deletions(-)
+
+diff --git a/src/Application.vala b/src/Application.vala
+index 65fae5aa..9d42b14f 100644
+--- a/src/Application.vala
++++ b/src/Application.vala
+@@ -167,10 +167,6 @@ public class AppCenter.App : Gtk.Application {
+ 
+         var client = AppCenterCore.Client.get_default ();
+ 
+-        if (fake_update_packages != null) {
+-            AppCenterCore.PackageKitBackend.get_default ().fake_packages = fake_update_packages;
+-        }
+-
+         if (silent) {
+             NetworkMonitor.get_default ().network_changed.connect ((available) => {
+                 schedule_cache_update (!available);
+@@ -183,16 +179,6 @@ public class AppCenter.App : Gtk.Application {
+             return;
+         }
+ 
+-        if (local_path != null) {
+-            var file = File.new_for_commandline_arg (local_path);
+-
+-            try {
+-                local_package = AppCenterCore.PackageKitBackend.get_default ().add_local_component_file (file);
+-            } catch (Error e) {
+-                warning ("Failed to load local AppStream XML file: %s", e.message);
+-            }
+-        }
+-
+         if (main_window == null) {
+             main_window = new MainWindow (this);
+ 
+diff --git a/src/Core/BackendAggregator.vala b/src/Core/BackendAggregator.vala
+index 2f8bdedf..b705ca87 100644
+--- a/src/Core/BackendAggregator.vala
++++ b/src/Core/BackendAggregator.vala
+@@ -26,8 +26,6 @@ public class AppCenterCore.BackendAggregator : Backend, Object {
+ 
+     construct {
+         backends = new Gee.ArrayList<unowned Backend> ();
+-        backends.add (PackageKitBackend.get_default ());
+-        backends.add (UbuntuDriversBackend.get_default ());
+         backends.add (FlatpakBackend.get_default ());
+ 
+         unowned Gtk.Application app = (Gtk.Application) GLib.Application.get_default ();
+diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala
+index 29fa397a..ce42dd57 100644
+--- a/src/Core/UpdateManager.vala
++++ b/src/Core/UpdateManager.vala
+@@ -53,42 +53,9 @@ public class AppCenterCore.UpdateManager : Object {
+             installed_package.update_state ();
+         }
+ 
+-        Pk.Results pk_updates;
+-        unowned PackageKitBackend client = PackageKitBackend.get_default ();
+-        try {
+-            pk_updates = yield client.get_updates (cancellable);
+-        } catch (Error e) {
+-            warning ("Unable to get updates from PackageKit backend: %s", e.message);
+-            return 0;
+-        }
+-
+         uint os_count = 0;
+         string os_desc = "";
+ 
+-        var package_array = pk_updates.get_package_array ();
+-        debug ("PackageKit backend reports %d updates", package_array.length);
+-
+-        package_array.foreach ((pk_package) => {
+-            var pkg_name = pk_package.get_name ();
+-            var appcenter_package = client.lookup_package_by_id (pkg_name);
+-            if (appcenter_package != null) {
+-                debug ("Added %s to app updates", pkg_name);
+-                apps_with_updates.add (appcenter_package);
+-                appcenter_package.latest_version = pk_package.get_version ();
+-            } else {
+-                debug ("Added %s to OS updates", pkg_name);
+-                os_count++;
+-                unowned string pkg_summary = pk_package.get_summary ();
+-                unowned string pkg_version = pk_package.get_version ();
+-                os_desc += Markup.printf_escaped (
+-                    "<li>%s\n\t%s\n\t%s</li>\n",
+-                    pkg_name,
+-                    pkg_summary,
+-                    _("Version: %s").printf (pkg_version)
+-                );
+-            }
+-        });
+-
+         os_updates.component.set_pkgnames ({});
+         os_updates.change_information.clear_update_info ();
+ 
+@@ -160,29 +127,6 @@ public class AppCenterCore.UpdateManager : Object {
+             count += 1;
+         }
+ 
+-        pk_updates.get_details_array ().foreach ((pk_detail) => {
+-            var pk_package = new Pk.Package ();
+-            try {
+-                pk_package.set_id (pk_detail.get_package_id ());
+-                var pkg_name = pk_package.get_name ();
+-                var appcenter_package = client.lookup_package_by_id (pkg_name);
+-                    if (appcenter_package != null) {
+-                        appcenter_package.change_information.updatable_packages.@set (client, pk_package.get_id ());
+-                        appcenter_package.change_information.size += pk_detail.size;
+-                        appcenter_package.update_state ();
+-                    } else {
+-                        var pkgnames = os_updates.component.pkgnames;
+-                        pkgnames += pkg_name;
+-                        os_updates.component.pkgnames = pkgnames;
+-
+-                        os_updates.change_information.updatable_packages.@set (client, pk_package.get_id ());
+-                        os_updates.change_information.size += pk_detail.size;
+-                    }
+-            } catch (Error e) {
+-                critical (e.message);
+-            }
+-        });
+-
+         os_updates.update_state ();
+         return count;
+     }
+diff --git a/src/MainWindow.vala b/src/MainWindow.vala
+index a32ce47b..b9f8594a 100644
+--- a/src/MainWindow.vala
++++ b/src/MainWindow.vala
+@@ -292,23 +292,6 @@ public class AppCenter.MainWindow : Hdy.ApplicationWindow {
+     }
+ 
+     public override bool delete_event (Gdk.EventAny event) {
+-        unowned AppCenterCore.PackageKitBackend client = AppCenterCore.PackageKitBackend.get_default ();
+-        if (client.working) {
+-            if (task_finished_connection != 0U) {
+-                client.disconnect (task_finished_connection);
+-            }
+-
+-            hide ();
+-            task_finished_connection = client.notify["working"].connect (() => {
+-                if (!visible && !client.working) {
+-                    destroy ();
+-                }
+-            });
+-
+-            AppCenterCore.Client.get_default ().cancel_updates (false); //Timeouts keep running
+-            return true;
+-        }
+-
+         return false;
+     }
+ 
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 8b02af57d42d..7fbaa32dc39f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -12,6 +13,7 @@
 , python3
 , granite
 , libgee
+, libhandy
 , elementary-icon-theme
 , appstream
 , wrapGAppsHook
@@ -19,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "1.6.2";
+  version = "1.7.0";
 
   repoName = "calculator";
 
@@ -27,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-kOQr94PAfLPv4LjY2WDdTtlbf3/tYf+NUESZ94+L41M=";
+    sha256 = "1kl2iximcmbk8inklb2xav7dp08lp5pn9xxa59327zw13gdy8fkf";
   };
 
   passthru = {
@@ -53,6 +55,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
   ];
 
   postPatch = ''
@@ -65,6 +68,6 @@ stdenv.mkDerivation rec {
     description = "Calculator app designed for elementary OS";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index cf0d0d812fe1..549493966c13 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -10,6 +10,7 @@
 , gtk3
 , granite
 , libgee
+, libhandy
 , geoclue2
 , libchamplain
 , clutter
@@ -27,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.1.1";
+  version = "6.0.2";
 
   repoName = "calendar";
 
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "18npf4zzf2dywr1zkr6fqzcbb70297yvdp5wxw7zyam1xwa86v07";
+    sha256 = "16xp8gfgpyz9xpjsxm6jlk4skkknj65g0q4x0qvw9sg9f1p6a514";
   };
 
   passthru = {
@@ -66,6 +67,7 @@ stdenv.mkDerivation rec {
     gtk3
     libchamplain
     libgee
+    libhandy
     libical
     libnotify
     libgdata # required by some dependency transitively
@@ -81,6 +83,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/calendar";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 9a48d38ad8cb..432e5fdf00e7 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -13,6 +13,7 @@
 , gtk3
 , granite
 , libgee
+, libhandy
 , gst_all_1
 , libcanberra
 , clutter-gtk
@@ -24,7 +25,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-camera";
-  version = "1.0.6";
+  version = "6.0.0";
 
   repoName = "camera";
 
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
+    sha256 = "1z5c6pkc7psglxwzby5idsdxvplpi28ckjxrwdngnr22knfdcgag";
   };
 
   passthru = {
@@ -61,11 +62,12 @@ stdenv.mkDerivation rec {
     granite
     gst_all_1.gst-plugins-bad
     gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
+    (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
     gst_all_1.gstreamer
     gtk3
     libcanberra
     libgee
+    libhandy
   ];
 
   postPatch = ''
@@ -76,8 +78,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Camera app designed for elementary OS";
     homepage = "https://github.com/elementary/camera";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 50a32420de09..8516133b18d8 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -41,6 +42,15 @@ stdenv.mkDerivation rec {
     sha256 = "1w1m52mq3zr9alkxk1c0s4ncscka1km5ppd0r6zm86qan9cjwq0f";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/code/pull/1090
+    (fetchpatch {
+      url = "https://github.com/elementary/code/commit/88dc40d7bbcc2288ada6673eb8f4fab345d97882.patch";
+      sha256 = "16y20bvslcm390irlib759703lvf7w6rz4xzaiazjj1r1njwinvv";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -53,10 +63,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-
-    # polkit is needed for ITS rules
-    polkit
-
+    polkit # needed for ITS rules
     python3
     vala
     wrapGAppsHook
@@ -100,6 +107,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/code";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 797f62cf8e2f..4de65108c564 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , vala
 , atk
 , cairo
@@ -24,11 +23,12 @@
 , pantheon
 , meson
 , ninja
+, granite
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2020-06-11";
+  version = "unstable-2021-07-16";
 
   outputs = [ "out" "dev" ];
 
@@ -37,18 +37,10 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "0a389ee58939d8c91c340df4e5340fc4b23d0b80";
-    sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
+    rev = "05fd6fccdf1a769f6737a0d7e57e092825348660";
+    sha256 = "0lqqq5cx0kk8y7qyjx7z2k3v1kw2xxzns968ianarcji19wzcns4";
   };
 
-  patches = [
-    # Fix double includedir path in plank.pc
-    (fetchpatch {
-      url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
-      sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
-    })
-  ];
-
   nativeBuildInputs = [
     gettext
     meson
@@ -67,6 +59,7 @@ stdenv.mkDerivation rec {
     glib
     gnome-menus
     dconf
+    granite
     gtk3
     libX11
     libXfixes
@@ -82,6 +75,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/dock";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ davidak ] ++ pantheon.maintainers;
+    maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index 2e20314d480a..e65e45809c45 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -21,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-feedback";
-  version = "6.0.0";
+  version = "6.1.0";
 
   repoName = "feedback";
 
@@ -29,9 +30,18 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1fh9a0nfvbrxamki9avm9by760csj2nqy4ya7wzbnqbrrvjwd3fv";
+    sha256 = "02wydbpa5qaa4xmmh4m7rbj4djbrn2i44zjakj5i6mzwjlj6sv5n";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/feedback/pull/48
+    (fetchpatch {
+      url = "https://github.com/elementary/feedback/commit/080005153977a86d10099eff6a5b3e68f7b12847.patch";
+      sha256 = "01710i90qsaqsrjs92ahwwj198bdrrif6mnw29l9har2rncfkfk2";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -69,6 +79,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/feedback";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
deleted file mode 100644
index 9bcedac3f035..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From f51974c9736c3e28755245d15729578214652343 Mon Sep 17 00:00:00 2001
-Message-Id: <f51974c9736c3e28755245d15729578214652343.1599178185.git-series.worldofpeace@protonmail.ch>
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Thu,  3 Sep 2020 20:08:15 -0400
-Subject: [PATCH] filechooser-module: hardcode gsettings for nixos
-
----
- filechooser-module/FileChooserDialog.vala | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
-index a70fe10..08fde2c 100644
---- a/filechooser-module/FileChooserDialog.vala
-+++ b/filechooser-module/FileChooserDialog.vala
-@@ -60,10 +60,14 @@ public class CustomFileChooserDialog : Object {
-         /* If not local only during creation, strange bug occurs on fresh installs */
-         chooser_dialog.local_only = true;
- 
--        var files_preferences = new Settings ("io.elementary.files.preferences");
-+        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
-+        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+
-+        var files_preferences = new Settings.full (preferences_schema, null, null);
-         is_single_click = files_preferences.get_boolean ("single-click");
- 
--        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+        var chooser_settings = new Settings.full (chooser_schema, null, null);
- 
-         assign_container_box ();
-         remove_gtk_widgets ();
-
-base-commit: 57cb89b64fd2d5c08f4aaf23e8c74bfaa5d0384f
--- 
-git-series 0.9.1
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 99fd2a6555f5..dcdd1bb9acec 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -13,9 +13,9 @@
 , gtk3
 , glib
 , libgee
+, libhandy
 , granite
 , libnotify
-, libunity
 , pango
 , elementary-dock
 , bamf
@@ -27,11 +27,12 @@
 , libcloudproviders
 , libgit2-glib
 , wrapGAppsHook
+, systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.5.0";
+  version = "6.0.2";
 
   repoName = "files";
 
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
+    sha256 = "1i514r3adypmcwinmv4c1kybims16xi4i3akx0yy04dib92hbk7c";
   };
 
   passthru = {
@@ -73,30 +74,31 @@ stdenv.mkDerivation rec {
     libdbusmenu-gtk3
     libgee
     libgit2-glib
+    libhandy
     libnotify
-    libunity
     pango
     sqlite
+    systemd
     zeitgeist
   ];
 
   patches = [
-    ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
+    ./filechooser-portal-hardcode-gsettings-for-nixos.patch
   ];
 
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
 
-    substituteInPlace filechooser-module/FileChooserDialog.vala \
+    substituteInPlace filechooser-portal/LegacyFileChooserDialog.vala \
       --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
   '';
 
   meta = with lib; {
     description = "File browser designed for elementary OS";
     homepage = "https://github.com/elementary/files";
-    license = licenses.lgpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
new file mode 100644
index 000000000000..b04208cc8b86
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
@@ -0,0 +1,24 @@
+From 726ab4c0ab01273cb2197e4c151a5b69ff0954b6 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Fri, 16 Jul 2021 18:24:58 +0800
+Subject: [PATCH] filechooser-portal: hardcode gsettings for nixos
+
+---
+ filechooser-portal/LegacyFileChooserDialog.vala | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/filechooser-portal/LegacyFileChooserDialog.vala b/filechooser-portal/LegacyFileChooserDialog.vala
+index 330718f..f383bb1 100644
+--- a/filechooser-portal/LegacyFileChooserDialog.vala
++++ b/filechooser-portal/LegacyFileChooserDialog.vala
+@@ -60,7 +60,9 @@ public class Files.LegacyFileChooserDialog : Object {
+         /* If not local only during creation, strange bug occurs on fresh installs */
+         chooser_dialog.local_only = true;
+ 
+-        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
++        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
++        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
++        var chooser_settings = new Settings.full (chooser_schema, null, null);
+ 
+         action_area = (Gtk.ButtonBox) chooser_dialog.get_action_area ();
+ 
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index c990ecb24d6b..6d0b752c1d1d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -25,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-mail";
-  version = "6.0.0";
+  version = "6.1.1";
 
   repoName = "mail";
 
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "07iiipl0nsp63g5bn1y2hg6bmgj6i9cxqcfpd7q3vmldnkijvaxs";
+    sha256 = "15ai0x9236pjx76m0756nyc1by78v0lg1dgdiifk868krdvipzzx";
   };
 
   passthru = {
@@ -42,6 +43,12 @@ stdenv.mkDerivation rec {
     };
   };
 
+  patches = [
+    # The app stuck when loading gravatar, temporarily reverts part
+    # of https://github.com/elementary/mail/pull/600 to fix this
+    ./revert-fix-warning.patch
+  ];
+
   nativeBuildInputs = [
     appstream
     desktop-file-utils
@@ -77,6 +84,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/mail";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers ++ [ maintainers.ethancedwards8 ];
+    maintainers = with maintainers; [ ethancedwards8 ] ++ teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
new file mode 100644
index 000000000000..85534aaf4c60
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch
@@ -0,0 +1,55 @@
+From 9e61e9493e78b83b9599886561ee596c096030ed Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Thu, 29 Jul 2021 13:57:21 +0800
+Subject: [PATCH] Partly revert "Fix Warnings in Vala Code (#600)"
+
+This partly reverts commit 9477c24201d3c9c3c7bcc650e0290daa0ee1ab21.
+---
+ src/MessageList/MessageListItem.vala | 27 ++++++++++++++++++++++++++-
+ 1 file changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/src/MessageList/MessageListItem.vala b/src/MessageList/MessageListItem.vala
+index 96b61027..a7ef8f9e 100644
+--- a/src/MessageList/MessageListItem.vala
++++ b/src/MessageList/MessageListItem.vala
+@@ -290,7 +290,7 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
+         expanded = false;
+         show_all ();
+ 
+-        avatar.set_loadable_icon (new GravatarIcon (parsed_address, get_style_context ().get_scale ()));
++        download_gravatar.begin (parsed_address, avatar.size);
+ 
+         /* Override default handler to stop event propagation. Otherwise clicking the menu will
+            expand or collapse the MessageListItem. */
+@@ -348,6 +348,31 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
+         });
+     }
+ 
++    private async void download_gravatar (string address, int size) {
++        if (avatars[address] == null) {
++            var uri = "https://secure.gravatar.com/avatar/%s?d=404&s=%d".printf (
++                Checksum.compute_for_string (ChecksumType.MD5, address.strip ().down ()),
++                size * get_style_context ().get_scale ()
++            );
++
++            var server_file = File.new_for_uri (uri);
++            var path = Path.build_filename (Environment.get_tmp_dir (), server_file.get_basename ());
++            var local_file = File.new_for_path (path);
++
++            try {
++                yield server_file.copy_async (local_file, FileCopyFlags.OVERWRITE, Priority.DEFAULT, null);
++                avatars[address] = new Gdk.Pixbuf.from_file_at_scale (path, size, size, true);
++            } catch (Error e) {
++                debug ("Unable to fetch gravatar: %s", e.message);
++                return;
++            }
++        }
++
++        avatar.set_image_load_func (() => {
++            return avatars[address];
++        });
++    }
++
+     private void add_inline_composer (ComposerWidget.Type composer_type) {
+         var message_list_box = (MessageListBox) get_parent ();
+         message_list_box.add_inline_composer.begin (composer_type, this);
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index fe6c3f187fe3..300e7919dced 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -31,7 +32,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-music";
-  version = "5.1.0";
+  version = "5.1.1";
 
   repoName = "music";
 
@@ -39,9 +40,18 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "13v7rii9ardyd661s6d4hvvs4ig44v7s3qd1bx7imaigr72gg58b";
+    sha256 = "1wqsn4ss9acg0scaqpg514ll2dj3bl71wly4mm79qkinhy30yv9n";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/music/pull/648
+    (fetchpatch {
+      url = "https://github.com/elementary/music/commit/aea97103d59afd213467403a48788e476e47c4c3.patch";
+      sha256 = "1ayj8l6lb19hhl9bhsdfbq7jgchfmpjx0qkljnld90czcksn95yx";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -84,7 +94,7 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dplugins=lastfm,audioplayer,cdrom,ipod"
+    "-Dplugins=audioplayer,cdrom,ipod"
   ];
 
   postPatch = ''
@@ -95,8 +105,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Music player and library designed for elementary OS";
     homepage = "https://github.com/elementary/music";
-    license = licenses.lgpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index bced420dbc0a..61ec86dec44e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , pkg-config
-, vala
+, vala_0_52
 , desktop-file-utils
 , gtk3
 , libaccounts-glib
@@ -28,14 +28,13 @@
 , webkitgtk
 , libwebp
 , appstream
-, libunity
 , wrapGAppsHook
 , elementary-icon-theme
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-photos";
-  version = "2.7.1";
+  version = "2.7.2";
 
   repoName = "photos";
 
@@ -43,7 +42,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dql14k43rv3in451amiwv4z71hz3ailx67hd8gw1ka3yw12128p";
+    sha256 = "1zq9zfsc987vvrzadw9xqi3rlbi4jv2s82axkgy7ijm3ibi58ddc";
   };
 
   passthru = {
@@ -59,7 +58,9 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     python3
-    vala
+    # Does not build with vala 0.54
+    # https://github.com/elementary/photos/issues/638
+    vala_0_52
     wrapGAppsHook
   ];
 
@@ -84,7 +85,6 @@ stdenv.mkDerivation rec {
     libraw
     librest
     libsoup
-    libunity
     libwebp
     scour
     sqlite
@@ -105,6 +105,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/photos";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
index 048aa4ab129e..4eb574d69f26 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
@@ -11,14 +11,15 @@
 , gtk3
 , granite
 , libgee
+, libhandy
 , libcanberra
 , elementary-icon-theme
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
-  pname = "elementary-screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
-  version = "1.7.1";
+  pname = "elementary-screenshot";
+  version = "6.0.0";
 
   repoName = "screenshot";
 
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
+    sha256 = "1fvsl9zdkv7bgx3jpy7pr9lflm4ckr3swdby379mdxn2x6kxji0x";
   };
 
   passthru = {
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
     gtk3
     libcanberra
     libgee
+    libhandy
   ];
 
   postPatch = ''
@@ -63,6 +65,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/screenshot";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
new file mode 100644
index 000000000000..bec0556a377d
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
@@ -0,0 +1,84 @@
+{ lib, stdenv
+, fetchFromGitHub
+, nix-update-script
+, pantheon
+, appstream
+, desktop-file-utils
+, meson
+, ninja
+, pkg-config
+, python3
+, vala
+, wrapGAppsHook
+, clutter-gtk
+, elementary-icon-theme
+, evolution-data-server
+, granite
+, geoclue2
+, geocode-glib
+, gtk3
+, libchamplain
+, libgdata
+, libgee
+, libhandy
+, libical
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elementary-tasks";
+  version = "6.0.3";
+
+  repoName = "tasks";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = repoName;
+    rev = version;
+    sha256 = "0a6zgf7di4jyl764pn78wbanm0i5vrkk5ks3cfsvi3baprf3j9d5";
+  };
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
+  nativeBuildInputs = [
+    appstream
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    clutter-gtk
+    elementary-icon-theme
+    evolution-data-server
+    granite
+    geoclue2
+    geocode-glib
+    gtk3
+    libchamplain
+    libgdata
+    libgee
+    libhandy
+    libical
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/elementary/tasks";
+    description = "Synced tasks and reminders on elementary OS";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index 6e6beba50cec..cd0e39628023 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -35,6 +35,15 @@ stdenv.mkDerivation rec {
     sha256 = "08akr4sv4jy9kd4s26kib6j7i8hc3vs0sp71fifv7ww4mi9cm6jc";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/terminal/pull/611
+    (fetchpatch {
+      url = "https://github.com/elementary/terminal/commit/4f6f2d9f58642ed904240c247cc0a0846baecb6b.patch";
+      sha256 = "04pbd72migxw8i949v3bmw8kfi5nr02rjcwfrx3b6xkiic9825sv";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -81,6 +90,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/terminal";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 95df9a613a82..0c06e7b24439 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -31,6 +32,15 @@ stdenv.mkDerivation rec {
     sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/videos/pull/233
+    (fetchpatch {
+      url = "https://github.com/elementary/videos/commit/19ba2a9148be09ea521d2e9ac29dede6b9c6fa07.patch";
+      sha256 = "0ffp7ana98846xi7vxrzfg6dbs4yy28x2i4ky85mqs1gj6fjqin5";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -72,6 +82,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/videos";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
index c3ba1717801d..df152afc1a0c 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -10,6 +10,7 @@
 , granite
 , gtk3
 , libgee
+, libhandy
 , meson
 , ninja
 , pantheon
@@ -22,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sideload";
-  version = "1.1.1";
+  version = "6.0.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
+    sha256 = "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9";
   };
 
   passthru = {
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
     libxml2
   ];
 
@@ -69,6 +71,6 @@ stdenv.mkDerivation rec {
     description = "Flatpak installer, designed for elementary OS";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 06f097e81af5..949f1ecc3d0b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv
 , substituteAll
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -11,18 +12,19 @@
 , granite
 , gtk3
 , switchboard
+, wingpanel-indicator-a11y
 , onboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-a11y";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
+    sha256 = "0dc5jv335j443rg08cb7p8wvmcg36wrf1vlcfg9r20cksdis9v4l";
   };
 
   patches = [
@@ -30,6 +32,12 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit onboard;
     })
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-a11y/pull/79
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-a11y/commit/08db4b696128a6bf809da3403a818834fcd62b02.patch";
+      sha256 = "1s13ak23bdxgcb74wdz3ql192bla5qhabdicqyjv1rp32plhkbg5";
+    })
   ];
 
   passthru = {
@@ -50,13 +58,14 @@ stdenv.mkDerivation rec {
     gtk3
     libgee
     switchboard
+    wingpanel-indicator-a11y
   ];
 
   meta = with lib; {
     description = "Switchboard Universal Access Plug";
     homepage = "https://github.com/elementary/switchboard-plug-a11y";
-    license = licenses.lgpl3Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index adba2ec08017..c1144dd4ecd6 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , pantheon
 , substituteAll
@@ -9,22 +8,24 @@
 , pkg-config
 , vala
 , libgee
+, libgtop
+, libhandy
 , granite
 , gtk3
 , switchboard
-, pciutils
-, elementary-feedback
+, fwupd
+, appstream
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
-  version = "2.6.3";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
+    sha256 = "0c075ac7iqz4hqbp2ph0cwyhiq0jn6c1g1jjfhygjbssv3vvd268";
   };
 
   passthru = {
@@ -41,32 +42,20 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    appstream
+    fwupd
     granite
     gtk3
     libgee
+    libgtop
+    libhandy
     switchboard
   ];
 
   patches = [
-    # Get OS Info from GLib.Environment
-    # https://github.com/elementary/switchboard-plug-about/pull/128
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-about/commit/5ed29988e3a895b2df66e5529df0f12a94d5517c.patch";
-      sha256 = "1ipDxnpDZjpSEzZdtOeNe5U+QOXiB5M+hC3yDAsl/rQ=";
-    })
-
-    # Use Pretty Name
-    # https://github.com/elementary/switchboard-plug-about/pull/134
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-about/commit/653d131dc8fac10ae7523f2bf6b179ffffa9c0fd.patch";
-      sha256 = "AsM49Dc9/yn2tG6fqjfedeOlDXUu+iEoyNUmNYLH+zE=";
-    })
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit pciutils;
-      elementary_feedback = elementary-feedback;
-    })
+    # The NixOS logo is not centered in the circular background and path
+    # to the background is hardcoded, we will drop the background.
+    ./remove-logo-background.patch
   ];
 
   meta = with lib; {
@@ -74,7 +63,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-about";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch
deleted file mode 100644
index d458689a3253..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/Plug.vala b/src/Plug.vala
-index c32efcbe..0cdaeaca 100644
---- a/src/Plug.vala
-+++ b/src/Plug.vala
-@@ -178,7 +178,7 @@ public class About.Plug : Switchboard.Plug {
- 
-         var bug_button = new Gtk.Button.with_label (_("Report a Problem"));
-         bug_button.clicked.connect (() => {
--            var appinfo = new GLib.DesktopAppInfo ("io.elementary.feedback.desktop");
-+            var appinfo = new GLib.DesktopAppInfo ("@elementary_feedback@/bin/io.elementary.feedback.desktop");
-             if (appinfo != null) {
-                 try {
-                     appinfo.launch (null, null);
-diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala
-index f8113634..3794bad8 100644
---- a/src/Views/HardwareView.vala
-+++ b/src/Views/HardwareView.vala
-@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid {
- 
-         // Graphics
-         try {
--            Process.spawn_command_line_sync ("lspci", out graphics);
-+            Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics);
- 
-             if ("VGA" in graphics) { //VGA-keyword indicates graphics-line
-                 string[] lines = graphics.split("\n");
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
new file mode 100644
index 000000000000..bc7805a22c47
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch
@@ -0,0 +1,36 @@
+diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
+index fdb92e7..87bb3a4 100644
+--- a/src/Views/OperatingSystemView.vala
++++ b/src/Views/OperatingSystemView.vala
+@@ -39,21 +39,6 @@ public class About.OperatingSystemView : Gtk.Grid {
+             logo_icon_name = "distributor-logo";
+         }
+ 
+-        var logo = new Hdy.Avatar (128, "", false) {
+-            // In case the wallpaper can't be loaded, we don't want an icon or text
+-            icon_name = "invalid-icon-name",
+-            // We need this for the shadow to not get clipped by Gtk.Overlay
+-            margin = 6
+-        };
+-        logo.set_image_load_func ((size) => {
+-            try {
+-                return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
+-            } catch (Error e) {
+-                critical (e.message);
+-            }
+-        });
+-        logo.get_style_context ().add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+-
+         var icon = new Gtk.Image () {
+             icon_name = logo_icon_name + "-symbolic",
+             // 128 minus 3px padding on each side
+@@ -65,8 +50,7 @@ public class About.OperatingSystemView : Gtk.Grid {
+         icon_style_context.add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+ 
+         var logo_overlay = new Gtk.Overlay ();
+-        logo_overlay.add (logo);
+-        logo_overlay.add_overlay (icon);
++        logo_overlay.add (icon);
+ 
+         // Intentionally not using GLib.OsInfoKey.PRETTY_NAME here because we
+         // want more granular control over text formatting
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 66596fa2ff1b..3b3cbf64ef85 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -10,19 +11,29 @@
 , granite
 , gtk3
 , switchboard
+, flatpak
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-applications";
-  version = "2.1.7";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
+    sha256 = "0hgvmrgg6g2sjb3sda7kzfcd3zgngd5w982drl6ll44k1mh16gsj";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-applications/pull/163
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-applications/commit/25db490654ab41694be7b7ba19218376f42fbb8d.patch";
+      sha256 = "16y8zcwnnjsh72ifpyqcdb9f5ajdj0iy8kb5sj6v77c1cxdhrv29";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -37,6 +48,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    flatpak
     granite
     gtk3
     libgee
@@ -46,8 +58,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Applications Plug";
     homepage = "https://github.com/elementary/switchboard-plug-applications";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index dea3c0306a32..2238125fe2f6 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -15,15 +16,24 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-bluetooth";
-  version = "2.3.2";
+  version = "2.3.6";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
+    sha256 = "0n9fhi9g0ww341bjk6lpc5ppnl7qj9b3d63j9a7iqnap57bgks9y";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-bluetooth/pull/182
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-bluetooth/commit/031dd5660b4bcb0bb4e82ebe6d8bcdaa1791c385.patch";
+      sha256 = "1g01ad6md7pqp1fx00avbra8yfnr8ipg8y6zhfg35fgjakj4aags";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -50,7 +60,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-bluetooth";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index 2337ef241198..b4518ea1e440 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -17,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-datetime";
-  version = "2.1.9";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
+    sha256 = "10rqhxsqbl1xnz5n84d7m39c3vb71k153989xvyc55djia1wjx96";
   };
 
   passthru = {
@@ -32,6 +33,19 @@ stdenv.mkDerivation rec {
     };
   };
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      tzdata = tzdata;
+    })
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-datetime/pull/100
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-datetime/commit/a90639ed4f185f50d4ae448cd9503203dc24b3f4.patch";
+      sha256 = "0dz0s02ccnds62dqil44k652pc5icka2rfhcx0a5bj1wi5sifnp7";
+    })
+  ];
+
   nativeBuildInputs = [
     libxml2
     meson
@@ -52,6 +66,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-datetime";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patch
new file mode 100644
index 000000000000..784ea9daa0b7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patch
@@ -0,0 +1,15 @@
+diff --git a/src/Parser.vala b/src/Parser.vala
+index 7c7b82d..2c3a061 100644
+--- a/src/Parser.vala
++++ b/src/Parser.vala
+@@ -28,9 +28,9 @@ public class DateTime.Parser : GLib.Object {
+         return parser;
+     }
+     private Parser () {
+-        var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab");
++        var file = File.new_for_path ("@tzdata@/share/zoneinfo/zone.tab");
+         if (!file.query_exists ()) {
+-            critical ("/usr/share/zoneinfo/zone.tab doesn't exist !");
++            critical ("@tzdata@/share/zoneinfo/zone.tab doesn't exist !");
+             return;
+         }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 055a40989631..0fbb1eb81e7c 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-display";
-  version = "2.2.2";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
+    sha256 = "1dqd34v124y71nnk0l617a53x652m0sb7b58465imr6ppyhx4vsv";
   };
 
   passthru = {
@@ -46,8 +46,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Displays Plug";
     homepage = "https://github.com/elementary/switchboard-plug-display";
-    license = licenses.lgpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
index 42900c380627..550aefbb1f10 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
@@ -1,19 +1,21 @@
-From 4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633 Mon Sep 17 00:00:00 2001
-Message-Id: <4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633.1599180249.git-series.worldofpeace@protonmail.ch>
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Thu,  3 Sep 2020 20:43:25 -0400
+From f23363ad2fa402d59b41ffe2c13a46462c6d2194 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Fri, 16 Jul 2021 23:28:56 +0800
 Subject: [PATCH] Remove Install Unlisted Engines function
 
 https://github.com/elementary/switchboard-plug-keyboard/issues/324
+
+Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
+
 ---
- src/Dialogs/InstallEngineDialog.vala           | 140 +------------------
- src/Dialogs/ProgressDialog.vala                |  82 +----------
- src/InputMethod/Installer/InstallList.vala     |  73 +---------
- src/InputMethod/Installer/UbuntuInstaller.vala | 142 +------------------
- src/InputMethod/Installer/aptd-client.vala     |  93 +------------
- src/Widgets/InputMethod/AddEnginesPopover.vala |  12 +--
- src/Widgets/InputMethod/LanguagesRow.vala      |  43 +-----
- src/meson.build                                |   6 +-
+ src/Dialogs/InstallEngineDialog.vala          | 140 -----------------
+ src/Dialogs/ProgressDialog.vala               |  82 ----------
+ src/InputMethod/Installer/InstallList.vala    |  73 ---------
+ .../Installer/UbuntuInstaller.vala            | 142 ------------------
+ src/InputMethod/Installer/aptd-client.vala    |  93 ------------
+ .../InputMethod/AddEnginesPopover.vala        |  12 --
+ src/Widgets/InputMethod/LanguagesRow.vala     |  43 ------
+ src/meson.build                               |   6 -
  8 files changed, 591 deletions(-)
  delete mode 100644 src/Dialogs/InstallEngineDialog.vala
  delete mode 100644 src/Dialogs/ProgressDialog.vala
@@ -170,7 +172,7 @@ index ffba3a8..0000000
 -}
 diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
 deleted file mode 100644
-index f110aca..0000000
+index 868f167..0000000
 --- a/src/Dialogs/ProgressDialog.vala
 +++ /dev/null
 @@ -1,82 +0,0 @@
@@ -191,7 +193,7 @@ index f110aca..0000000
 -* with this program. If not, see http://www.gnu.org/licenses/.
 -*/
 -
--public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Granite.Dialog {
 -    public int progress {
 -        set {
 -            if (value >= 100) {
@@ -583,10 +585,10 @@ index ee5c3f5..0000000
 -    }
 -}
 diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
-index 46e005d..6b56c6b 100644
+index 110bc1d..8a03ca8 100644
 --- a/src/Widgets/InputMethod/AddEnginesPopover.vala
 +++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
-@@ -49,8 +49,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+@@ -43,8 +43,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
          };
          scrolled.add (listbox);
  
@@ -595,7 +597,7 @@ index 46e005d..6b56c6b 100644
          var cancel_button = new Gtk.Button.with_label (_("Cancel"));
  
          var add_button = new Gtk.Button.with_label (_("Add Engine"));
-@@ -61,10 +59,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+@@ -55,10 +53,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
              margin = 12,
              spacing = 6
          };
@@ -606,7 +608,7 @@ index 46e005d..6b56c6b 100644
  
          var grid = new Gtk.Grid ();
          grid.attach (search_entry, 0, 0);
-@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+@@ -88,14 +84,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
              listbox.invalidate_filter ();
          });
  
@@ -671,20 +673,20 @@ index dc064ae..0000000
 -    }
 -}
 diff --git a/src/meson.build b/src/meson.build
-index 28f07c1..a515419 100644
+index 77a51d0..26711c5 100644
 --- a/src/meson.build
 +++ b/src/meson.build
-@@ -16,7 +16,6 @@ plug_files = files(
-     'Widgets/Shortcuts/CustomTree.vala',
+@@ -17,7 +17,6 @@ plug_files = files(
      'Widgets/Layout/Display.vala',
-     'Widgets/Layout/AddLayoutPopover.vala',
+     'Widgets/Layout/AdvancedSettingsPanel.vala',
+     'Widgets/Layout/AdvancedSettingsGrid.vala',
 -    'Widgets/InputMethod/LanguagesRow.vala',
      'Widgets/InputMethod/EnginesRow.vala',
      'Widgets/InputMethod/AddEnginesPopover.vala',
      'Views/Shortcuts.vala',
-@@ -36,11 +35,6 @@ plug_files = files(
-     'Layout/AdvancedSettingsGrid.vala',
-     'InputMethod/Utils.vala',
+@@ -33,11 +32,6 @@ plug_files = files(
+     'InputSources/SourceSettings.vala',
+     'InputSources/InputSource.vala',
      'InputMethod/AddEnginesList.vala',
 -    'InputMethod/Installer/UbuntuInstaller.vala',
 -    'InputMethod/Installer/InstallList.vala',
@@ -692,9 +694,5 @@ index 28f07c1..a515419 100644
 -    'Dialogs/ProgressDialog.vala',
 -    'Dialogs/InstallEngineDialog.vala',
      'Dialogs/ConflictDialog.vala',
+     'Dialogs/AddLayoutDialog.vala'
  )
- 
-
-base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
--- 
-git-series 0.9.1
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 06bdce19f45c..c3860ba22789 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , nix-update-script
 , pantheon
-, fetchpatch
 , substituteAll
 , meson
 , ninja
@@ -11,27 +10,31 @@
 , libgee
 , granite
 , gtk3
+, libhandy
 , libxml2
 , libgnomekbd
 , libxklavier
-, xorg
 , ibus
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.4.1";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iuv5NZ7v+rXyFsKB/PvGa/7hm9MIV8E6JnTzEGROlhM=";
+    sha256 = "1p1l7dx5v1zzz89hhhkm6n3ls7ig4cf2prh1099f1c054qiy9b0y";
   };
 
   patches = [
     ./0001-Remove-Install-Unlisted-Engines-function.patch
+    (substituteAll {
+      src = ./fix-paths.patch;
+      ibus = ibus;
+    })
   ];
 
   passthru = {
@@ -54,6 +57,7 @@ stdenv.mkDerivation rec {
     ibus
     libgee
     libgnomekbd
+    libhandy
     libxklavier
     switchboard
   ];
@@ -63,6 +67,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-keyboard";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
new file mode 100644
index 000000000000..bb21712a5bc4
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
+index 6d79fdc..de4276e 100644
+--- a/src/Views/InputMethod.vala
++++ b/src/Views/InputMethod.vala
+@@ -325,7 +325,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
+     private void spawn_ibus_daemon () {
+         bool is_spawn_succeeded = false;
+         try {
+-            is_spawn_succeeded = Process.spawn_sync ("/", { "ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
++            is_spawn_succeeded = Process.spawn_sync ("/", { "@ibus@/bin/ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
+         } catch (GLib.SpawnError e) {
+             warning (e.message);
+             set_visible_view (e.message);
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 67eeee584a69..0368314e7b4f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,28 +1,32 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
+, substituteAll
 , pantheon
 , meson
 , ninja
 , pkg-config
 , vala
 , libgee
+, libxml2
 , granite
 , gtk3
 , switchboard
-, elementary-settings-daemon
+, gnome-settings-daemon
 , glib
+, gala # needed for gestures support
+, touchegg
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
-  version = "2.4.2";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
+    sha256 = "0nqgbpk1knvbj5xa078i0ka6lzqmaaa873gwj3mhjr5q2gzkw7y5";
   };
 
   passthru = {
@@ -39,19 +43,29 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gala
     glib
     granite
     gtk3
     libgee
-    elementary-settings-daemon
+    libxml2
+    gnome-settings-daemon
     switchboard
+    touchegg
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      touchegg = touchegg;
+    })
   ];
 
   meta = with lib; {
     description = "Switchboard Mouse & Touchpad Plug";
     homepage = "https://github.com/elementary/switchboard-plug-mouse-touchpad";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patch
new file mode 100644
index 000000000000..e0c63bac8322
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Utils/ToucheggSettings.vala b/src/Utils/ToucheggSettings.vala
+index 1d621b9c..73c89714 100644
+--- a/src/Utils/ToucheggSettings.vala
++++ b/src/Utils/ToucheggSettings.vala
+@@ -36,7 +36,7 @@ public class MouseTouchpad.ToucheggSettings : GLib.Object {
+     private const string MAXIMIZE_4_XPATH = "//application[@name=\"All\"]/gesture[@fingers=\"4\"]/action[@type=\"MAXIMIZE_RESTORE_WINDOW\"]/..";
+ 
+     public ToucheggSettings () {
+-        system_config_path = Path.build_filename (GLib.Path.DIR_SEPARATOR_S, "usr", "share", "touchegg", "touchegg.conf");
++        system_config_path = Path.build_filename ("@touchegg@", "share", "touchegg", "touchegg.conf");
+         user_config_dir_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg");
+         user_config_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg", "touchegg.conf");
+     }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index fce9402e131f..7ccfb265e9e9 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
-  version = "2.3.2";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-PYgewxBblhOfOJQSeRaq8xD7qZ3083EvgUjpi92FqyI=";
+    sha256 = "0nqihsbrpjw4nx1c50g854bqybniw38adi78vzg8nyl6ikj2r0z4";
   };
 
   passthru = {
@@ -60,8 +60,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Networking Plug";
     homepage = "https://github.com/elementary/switchboard-plug-network";
-    license = licenses.lgpl21Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 8c750710aed9..42cddfd2d67f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -16,15 +16,24 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-notifications";
-  version = "2.1.7";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
+    sha256 = "0zzhgs8m1y7ab31hbn7v8g8k7rx51gqajl243zmysn86lfqk8iay";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-notifications/pull/83
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-notifications/commit/2e0320aab62b6932e8ef5f941d02e244de381957.patch";
+      sha256 = "0rcamasq837grck0i2yx6psggzrhv7p7m3mra5l0k9zsjxgar92v";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -51,6 +60,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-notifications";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index ef12cb38e1b9..9aa9d7e6780a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,33 +1,36 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
-, fetchpatch
 , pantheon
 , meson
 , ninja
 , pkg-config
-, vala_0_46
+, vala
 , libgee
 , granite
 , gtk3
 , libaccounts-glib
+, libgdata
+, libhandy
 , libsignon-glib
 , json-glib
 , librest
 , webkitgtk
 , libsoup
+, sqlite
 , switchboard
+, evolution-data-server
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
-  version = "2.0.1";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
+    sha256 = "1lp3i31jzp21n43d1mh4d4i8zgim3q3j4inw4hmyimyql2s83cc3";
   };
 
   passthru = {
@@ -40,47 +43,35 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    vala_0_46
+    vala
   ];
 
   buildInputs = [
+    evolution-data-server
     granite
     gtk3
     json-glib
     libaccounts-glib
+    libgdata
     libgee
+    libhandy
     libsignon-glib
     libsoup
     librest
+    sqlite # needed for camel-1.2
     switchboard
     webkitgtk
   ];
 
-  patches = [
-    # Fix build with latest vala
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/5fa2882f765076d20c6ef4886198a34a05159f8a.patch";
-      sha256 = "1szryyy7shdmbvx9yhpi0bhzaayg7hl6pq2c456j1qf9kfv0m4hf";
-    })
-
-    # fix build with vala 0.48.9
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/b1853b7427102b8dd94774e1e2cc455f50902263.patch";
-      sha256 = "J3C71GyEHEZWSghGXlwXPHFJRhrvx6i0yvi8NIDb4WE=";
-    })
-  ];
-
   PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
   PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
-  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
-
 
   meta = with lib; {
     description = "Switchboard Online Accounts Plug";
     homepage = "https://github.com/elementary/switchboard-plug-onlineaccounts";
-    license = licenses.lgpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index 97668d35471a..69242e8132f1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,18 +1,48 @@
-{ lib, stdenv, fetchFromGitHub, nix-update-script, pantheon, meson, ninja, pkg-config, vala, glib
-, libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
-, gala, wingpanel, elementary-dock, switchboard, gettext, bamf, fetchpatch }:
+{ lib, stdenv
+, fetchFromGitHub
+, fetchpatch
+, nix-update-script
+, pantheon
+, meson
+, ninja
+, pkg-config
+, vala
+, glib
+, libgee
+, granite
+, gexiv2
+, gnome-settings-daemon
+, elementary-settings-daemon
+, gtk3
+, gnome-desktop
+, gala
+, wingpanel
+, elementary-dock
+, switchboard
+, gettext
+, bamf
+}:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
-  version = "2.8.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
+    sha256 = "0349150kxdv14ald79pzn7lasiqipyc37fgchygbc8hsy62d9a32";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-pantheon-shell/pull/286
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/0c3207ffaeaa82ca3c743bc9ec772185fbd7e8cf.patch";
+      sha256 = "11ymzqx6has4zf8y0xy7pfhymcl128hzzjcgp46inshjf99v5kiv";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -31,6 +61,7 @@ stdenv.mkDerivation rec {
     bamf
     elementary-dock
     elementary-settings-daemon
+    gnome-settings-daemon
     gala
     gexiv2
     glib
@@ -47,6 +78,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard-plug-pantheon-shell";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index f0cf47cfdfea..a9c60600f045 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -2,14 +2,13 @@
 , fetchFromGitHub
 , nix-update-script
 , pantheon
-, substituteAll
 , meson
 , ninja
 , pkg-config
 , vala
 , libgee
-, elementary-dpms-helper
 , elementary-settings-daemon
+, gnome-settings-daemon
 , granite
 , gtk3
 , glib
@@ -20,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-power";
-  version = "2.4.2";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
+    sha256 = "006h8mrhmdrbd83vhdyahgrfk9wh6j9kjincpp7dz7sl8fsyhmcr";
   };
 
   passthru = {
@@ -44,8 +43,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     dbus
-    elementary-dpms-helper
     elementary-settings-daemon
+    gnome-settings-daemon
     glib
     granite
     gtk3
@@ -54,18 +53,11 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
-  patches = [
-    (substituteAll {
-      src = ./dpms-helper-exec.patch;
-      elementary_dpms_helper = elementary-dpms-helper;
-    })
-  ];
-
   meta = with lib; {
     description = "Switchboard Power Plug";
     homepage = "https://github.com/elementary/switchboard-plug-power";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch
deleted file mode 100644
index 335d3f296262..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/MainView.vala b/src/MainView.vala
-index 1654e68..175f220 100644
---- a/src/MainView.vala
-+++ b/src/MainView.vala
-@@ -317,7 +317,7 @@ public class Power.MainView : Gtk.Grid {
-
-     private static void run_dpms_helper () {
-         try {
--            string[] argv = { "io.elementary.dpms-helper" };
-+            string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" };
-             Process.spawn_async (null, argv, Environ.get (),
-                 SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL,
-                 null, null);
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 7387ea34e4de..cae5b570547f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -16,20 +16,21 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-printers";
-  version = "2.1.9";
+  version = "2.1.10";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
+    sha256 = "0frvybbx7mcs87kww0if4zn0c6c2gb400cpiqrl8b0294py58xpb";
   };
 
   patches = [
-    # Fix build with latest Vala.
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-printers/pull/153
     (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-printers/commit/5eced5ddda6f229d7265ea0a713f6c1cd181a526.patch";
-      sha256 = "lPTNqka6jjvv1JnAqVzVIQBIdDXlCOQ5ASvgZNuEUC8=";
+      url = "https://github.com/elementary/switchboard-plug-printers/commit/3e2b01378cbb8e666d23daeef7f40fcaa90daa45.patch";
+      sha256 = "0b8pq525xnir06pn65rcz68bcp5xdxl0gpbj7p5x1hs23p5dp04n";
     })
   ];
 
@@ -57,9 +58,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Printers Plug";
     homepage = "https://github.com/elementary/switchboard-plug-printers";
-    license = licenses.lgpl3Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index 26e26de33b12..986aa171e920 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -10,30 +10,31 @@
 , vala
 , libgee
 , granite
+, gala
 , gtk3
 , glib
 , polkit
 , zeitgeist
 , switchboard
-, lightlocker
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
+    sha256 = "1ydr1xpbyxjcnd36c9j7a64srbz6gpbshwhcqj6591kmiqhmvknk";
   };
 
   patches = [
-    # Fix build with latest Vala.
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-security-privacy/pull/130
     (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/c8e422e630bbee0badcf4df26364c9e83e06bad0.patch";
-      sha256 = "5Gm+muZiCraJC5JaGVVo0HDJ7KxjOpclHRW1RKsk3bc=";
+      url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/18fe438baba651670d7f0534856c3b2433e3d75d.patch";
+      sha256 = "19qwm725k6h41kgg4a98i4rxx45s4bb1wxx0fzkh75gz9syfi58w";
     })
   ];
 
@@ -52,13 +53,13 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gala
     glib
     granite
     gtk3
     libgee
     polkit
     switchboard
-    lightlocker
     zeitgeist
   ];
 
@@ -70,9 +71,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Security & Privacy Plug";
     homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
-    license = licenses.lgpl3Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 6baaed293c9f..2eacf5585109 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -15,15 +15,24 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sharing";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
+    sha256 = "00lqrxq1wz3y2s9jiz8rh9d571va2vza2gdwj6c86z3q4c4hmn17";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-sharing/pull/55
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-sharing/commit/5219839738b79e3c5f039a811d96a40eb2644eab.patch";
+      sha256 = "020w746q7gzmic0pdnbxs792sx15wlsqaf2x770r5xwbyfmqr7bs";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -47,8 +56,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Sharing Plug";
     homepage = "https://github.com/elementary/switchboard-plug-sharing";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 10117dd8f957..7719477ce702 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , meson
@@ -10,22 +11,30 @@
 , granite
 , gtk3
 , pulseaudio
-, libcanberra
 , libcanberra-gtk3
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.2.5";
+  version = "2.2.7";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ITgxLZSB4zhSaFKX7Vbf89DGI8ibIcGEQTtLjcGN2tA=";
+    sha256 = "0yjqws7ryfid9lcafgzzbfnjjwccsankscwdwqfw486qid85whzc";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-sound/pull/203
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-sound/commit/1f3b9f001ace4c457ab194158dff04ba5e25d278.patch";
+      sha256 = "1lmf2bbif2wkfv500nxbqxp8jdmnjg8yk8xhx3g2g55d15rc5hk4";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -42,7 +51,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
-    libcanberra
     libcanberra-gtk3
     libgee
     pulseaudio
@@ -52,8 +60,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Switchboard Sound Plug";
     homepage = "https://github.com/elementary/switchboard-plug-sound";
-    license = licenses.lgpl2Plus;
+    license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
new file mode 100644
index 000000000000..9268fa76aefc
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
@@ -0,0 +1,72 @@
+{ lib, stdenv
+, fetchFromGitHub
+, fetchpatch
+, nix-update-script
+, pantheon
+, meson
+, ninja
+, pkg-config
+, vala
+, glib
+, granite
+, gtk3
+, libgee
+, libgudev
+, libwacom
+, switchboard
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "switchboard-plug-wacom";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "1n2yfq4s9xpnfqjikchjp4z2nk8cmfz4g0p18cplzh5w1lvz17lm";
+  };
+
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard-plug-wacom/pull/29
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard-plug-wacom/commit/2a7dee180d73ffb3521d806efb7028f5a71cb511.patch";
+      sha256 = "06ra5c0f14brmj2mmsqscpc4d1114i4qazgnsazzh2hrp04ilnva";
+    })
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    glib
+    granite
+    gtk3
+    libgee
+    libgudev
+    libwacom
+    switchboard
+    xorg.libX11
+    xorg.libXi
+  ];
+
+  meta = with lib; {
+    description = "Switchboard Wacom Plug";
+    homepage = "https://github.com/elementary/switchboard-plug-wacom";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
index d0b56d7456af..bdab9b0d7662 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -9,6 +10,7 @@
 , vala
 , gtk3
 , libgee
+, libhandy
 , granite
 , gettext
 , clutter-gtk
@@ -18,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
-  version = "2.4.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
+    sha256 = "02dfsrfmr297cxpyd5m3746ihcgjyfnb3d42ng9m4ljdvh0dxgim";
   };
 
   passthru = {
@@ -49,10 +51,17 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
   ];
 
   patches = [
     ./plugs-path-env.patch
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/switchboard/pull/214
+    (fetchpatch {
+      url = "https://github.com/elementary/switchboard/commit/8d6b5f4cbbaf134880252afbf1e25d70033e6402.patch";
+      sha256 = "0gwq3wwj45jrnlhsmxfclbjw6xjr8kf6pp3a84vbnrazw76lg5nc";
+    })
   ];
 
   postPatch = ''
@@ -65,6 +74,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/switchboard";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 437f37941220..e0299767ef3f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -5,11 +5,12 @@
 , meson
 , ninja
 , gettext
+, sassc
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-gtk-theme";
-  version = "5.4.2";
+  version = "6.0.0";
 
   repoName = "stylesheet";
 
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-eE0/LLdnpxOpBvdpioGKV/DOQ5lIuQt9dPnhGkQDGCs=";
+    sha256 = "08iga854s6w77xr5rhvr74pgn2lc884aigc7gkn0xjlwysd195fr";
   };
 
   passthru = {
@@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
     gettext
     meson
     ninja
+    sassc
   ];
 
   meta = with lib; {
@@ -37,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/stylesheet";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index bd4845172c52..abaf8d6c31c5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -65,6 +65,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/icons";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
index 6a9d1b0aca36..b9c51f5688c2 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     description = "Font for concealing text";
     homepage = "https://github.com/png2378/redacted-elementary";
     license = licenses.ofl;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index d273f03f4bda..6fe18119b458 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/sound-theme";
     license = licenses.unlicense;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 3e4e64d73012..9fd0a4d1a4e8 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-wallpapers";
-  version = "5.5.0";
+  version = "6.0.0";
 
   repoName = "wallpapers";
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-Q5sYDXqFhiTu8nABmyND3L8bIXd1BJ3GZQ9TL3SzwzA=";
+    sha256 = "1qpf8w7x9sp3sd4zpsrlj5ywpwqkq4ywbagm4sf25cwwn82dl59b";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/wallpapers";
     license = licenses.publicDomain;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
 
diff --git a/nixpkgs/pkgs/desktops/pantheon/default.nix b/nixpkgs/pkgs/desktops/pantheon/default.nix
index dc1245e1b156..b3b5409f6a01 100644
--- a/nixpkgs/pkgs/desktops/pantheon/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/default.nix
@@ -12,25 +12,31 @@ lib.makeScope pkgs.newScope (self: with self; {
     switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell
     switchboard-plug-power switchboard-plug-printers
     switchboard-plug-security-privacy switchboard-plug-sharing
-    switchboard-plug-sound
+    switchboard-plug-sound switchboard-plug-wacom
   ];
 
   wingpanelIndicators = [
-    wingpanel-applications-menu wingpanel-indicator-bluetooth
-    wingpanel-indicator-datetime wingpanel-indicator-keyboard
-    wingpanel-indicator-network wingpanel-indicator-nightlight
-    wingpanel-indicator-notifications wingpanel-indicator-power
-    wingpanel-indicator-session wingpanel-indicator-sound
+    wingpanel-applications-menu wingpanel-indicator-a11y
+    wingpanel-indicator-bluetooth wingpanel-indicator-datetime
+    wingpanel-indicator-keyboard wingpanel-indicator-network
+    wingpanel-indicator-nightlight wingpanel-indicator-notifications
+    wingpanel-indicator-power wingpanel-indicator-session
+    wingpanel-indicator-sound
   ];
 
   maintainers = lib.teams.pantheon.members;
 
-  mutter = pkgs.gnome.mutter334;
+  mutter = pkgs.gnome.mutter338;
+
+  # Using 3.38 to match Mutter used in Pantheon
+  gnome-settings-daemon = pkgs.gnome.gnome-settings-daemon338;
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
   notes-up = pkgs.notes-up.override { withPantheon = true; };
 
+  touchegg = pkgs.touchegg.override { withPantheon = true; };
+
   #### APPS
 
   appcenter = callPackage ./apps/appcenter { };
@@ -55,12 +61,16 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-photos = callPackage ./apps/elementary-photos { };
 
-  elementary-screenshot-tool = callPackage ./apps/elementary-screenshot-tool { };
+  elementary-screenshot = callPackage ./apps/elementary-screenshot { };
+
+  elementary-tasks = callPackage ./apps/elementary-tasks { };
 
   elementary-terminal = callPackage ./apps/elementary-terminal { };
 
   elementary-videos = callPackage ./apps/elementary-videos { };
 
+  epiphany = pkgs.epiphany.override { withPantheon = true; };
+
   sideload = callPackage ./apps/sideload { };
 
   #### DESKTOP
@@ -103,16 +113,9 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { };
 
-  elementary-dpms-helper = callPackage ./services/elementary-dpms-helper { };
-
   elementary-notifications = callPackage ./services/elementary-notifications { };
 
-  # We're using ubuntu and elementary's patchset due to reasons
-  # explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614
-  # Take note of "I am holding off on "fixing" this bug for as long as possible."
-  elementary-settings-daemon = callPackage ./services/elementary-settings-daemon {
-    inherit (gnome) gnome-desktop;
-  };
+  elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { };
 
   pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
 
@@ -122,6 +125,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
 
+  wingpanel-indicator-a11y = callPackage ./desktop/wingpanel-indicators/a11y { };
+
   wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { };
 
   wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { };
@@ -184,6 +189,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { };
 
+  switchboard-plug-wacom = callPackage ./apps/switchboard-plugs/wacom { };
+
   ### ARTWORK
 
   elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { };
@@ -204,4 +211,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   cerbere = throw "Cerbere is now obsolete https://github.com/elementary/cerbere/releases/tag/2.5.1.";
 
+  elementary-screenshot-tool = elementary-screenshot; # added 2021-07-21
+
 })
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
deleted file mode 100644
index 3a0b3812450c..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch
+++ /dev/null
@@ -1,309 +0,0 @@
-From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Sat, 13 Jul 2019 19:06:20 -0400
-Subject: [PATCH 1/2] Build with Meson
-
-Has the following meson build options:
-* default-wallpaper
-* plank-dockitems
-* default-gsettings-overrides
-
-All default to true.
-
-We also split the default-settings gsettings override into another that
-only sets plank's default dockitems. This is installed when plank-dockitems
-is true. We need to have this because those settings are dependent on
-those dockitems actually being installed and we have it optional.
----
- accountsservice/create-symlink.py             |  24 ++++++
- accountsservice/meson.build                   |  25 ++++++
- .../appcenter.blacklist                       |   0
- .../default-testpage.pdf                      | Bin
- settings.ini => gtk/settings.ini              |   0
- .inputrc => inputrc/.inputrc                  |   0
- meson.build                                   |  79 ++++++++++++++++++
- meson/post_install.py                         |  12 +++
- meson_options.txt                             |  14 ++++
- ...e => default-settings.gschema.override.in} |   3 +-
- overrides/meson.build                         |  21 +++++
- overrides/plank-dockitems.gschema.override    |   2 +
- .../sessioninstaller.desktop                  |   0
- 13 files changed, 178 insertions(+), 2 deletions(-)
- create mode 100644 accountsservice/create-symlink.py
- create mode 100644 accountsservice/meson.build
- rename appcenter.blacklist => appcenter/appcenter.blacklist (100%)
- rename default-testpage.pdf => cups/default-testpage.pdf (100%)
- rename settings.ini => gtk/settings.ini (100%)
- rename .inputrc => inputrc/.inputrc (100%)
- create mode 100644 meson.build
- create mode 100755 meson/post_install.py
- create mode 100644 meson_options.txt
- rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%)
- create mode 100644 overrides/meson.build
- create mode 100644 overrides/plank-dockitems.gschema.override
- rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%)
-
-diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py
-new file mode 100644
-index 0000000..e502134
---- /dev/null
-+++ b/accountsservice/create-symlink.py
-@@ -0,0 +1,24 @@
-+#!/usr/bin/env python3
-+
-+import os
-+import sys
-+
-+if len(sys.argv) < 3:
-+    print('Usage: create-symlink.py SOURCE DESTINATION')
-+    sys.exit(1)
-+
-+src = sys.argv[1]
-+dest = sys.argv[2]
-+
-+if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ:
-+    src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src)
-+    dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest)
-+
-+if os.path.isabs(src):
-+    src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest)))
-+
-+if not os.path.exists(dest):
-+    print('Creating symbolic link: ' + dest + ' -> ' + src)
-+    if not os.path.exists(os.path.dirname(dest)):
-+        os.makedirs(os.path.dirname(dest))
-+    os.symlink(src, dest)
-diff --git a/accountsservice/meson.build b/accountsservice/meson.build
-new file mode 100644
-index 0000000..6d18459
---- /dev/null
-+++ b/accountsservice/meson.build
-@@ -0,0 +1,25 @@
-+dbus_dep = dependency('dbus-1')
-+dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir])
-+
-+install_data(
-+    'io.elementary.pantheon.AccountsService.xml',
-+    install_dir: dbus_interfaces_dir
-+)
-+
-+
-+polkit_dep = dependency('polkit-gobject-1')
-+polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix])
-+
-+install_data(
-+    'io.elementary.pantheon.AccountsService.policy',
-+    install_dir: polkit_actiondir
-+)
-+
-+act_dep = dependency('accountsservice')
-+act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir])
-+
-+meson.add_install_script(
-+    'create-symlink.py',
-+    join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'),
-+    join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'),
-+)
-diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist
-similarity index 100%
-rename from appcenter.blacklist
-rename to appcenter/appcenter.blacklist
-diff --git a/default-testpage.pdf b/cups/default-testpage.pdf
-similarity index 100%
-rename from default-testpage.pdf
-rename to cups/default-testpage.pdf
-diff --git a/settings.ini b/gtk/settings.ini
-similarity index 100%
-rename from settings.ini
-rename to gtk/settings.ini
-diff --git a/.inputrc b/inputrc/.inputrc
-similarity index 100%
-rename from .inputrc
-rename to inputrc/.inputrc
-diff --git a/meson.build b/meson.build
-new file mode 100644
-index 0000000..7740a34
---- /dev/null
-+++ b/meson.build
-@@ -0,0 +1,79 @@
-+project(
-+    'elementary-default-settings',
-+    version: '5.1.0',
-+    default_options: 'sysconfdir=/etc',
-+)
-+
-+prefix = get_option('prefix')
-+datadir = join_paths(prefix, get_option('datadir'))
-+sysconfdir = get_option('sysconfdir')
-+
-+meson.add_install_script('meson/post_install.py', datadir)
-+
-+# Planks Default DockItems
-+if get_option('plank-dockitems')
-+    install_subdir(
-+        'plank',
-+        install_dir: join_paths(sysconfdir, 'skel', '.config')
-+    )
-+endif
-+
-+# Setup system wide global environment for applications
-+install_subdir(
-+    'profile.d',
-+    install_dir: join_paths(sysconfdir, 'profile.d'),
-+    strip_directory : true
-+)
-+
-+# elementary Plymouth Theme
-+install_subdir(
-+    'plymouth/elementary',
-+    install_dir: join_paths(datadir, 'plymouth', 'themes')
-+)
-+
-+install_data(
-+    'plymouth/ubuntu-text.plymouth',
-+    install_dir: join_paths(datadir, 'plymouth', 'themes')
-+)
-+
-+# Sudo password feedback in terminals
-+install_data(
-+    'sudoers.d/pwfeedback',
-+    install_dir: join_paths(sysconfdir, 'sudoers.d')
-+)
-+
-+# CUPS Printing testpage
-+install_data(
-+    'cups/default-testpage.pdf',
-+    install_dir: join_paths(datadir, 'cups', 'data')
-+)
-+
-+# GTK3 Settings
-+install_data(
-+    'gtk/settings.ini',
-+    install_dir: join_paths(sysconfdir, 'gtk-3.0')
-+)
-+
-+# So SessionInstaller can have an Icon
-+install_data(
-+    'sessioninstaller/sessioninstaller.desktop',
-+    install_dir: join_paths(datadir, 'applications')
-+)
-+
-+# Default Appcenter Blacklist
-+install_data(
-+    'appcenter/appcenter.blacklist',
-+    install_dir: join_paths(sysconfdir, 'appcenter')
-+)
-+
-+# Configuration file of GNU readline
-+install_data(
-+    'inputrc/.inputrc',
-+    install_dir: join_paths(sysconfdir, 'skel')
-+)
-+
-+# Default gsettings overrides
-+subdir('overrides')
-+
-+# AccountsService extension for Greeter.
-+subdir('accountsservice')
-diff --git a/meson/post_install.py b/meson/post_install.py
-new file mode 100755
-index 0000000..c6b5617
---- /dev/null
-+++ b/meson/post_install.py
-@@ -0,0 +1,12 @@
-+#!/usr/bin/env python3
-+
-+import os
-+import sys
-+import subprocess
-+
-+if 'DESTDIR' not in os.environ:
-+    default_settings_datadir = sys.argv[1]
-+
-+    print('Compiling GSettings schemas...')
-+    subprocess.call(['glib-compile-schemas',
-+                    os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')])
-diff --git a/meson_options.txt b/meson_options.txt
-new file mode 100644
-index 0000000..8fd19ba
---- /dev/null
-+++ b/meson_options.txt
-@@ -0,0 +1,14 @@
-+option('default-wallpaper',
-+       type: 'string',
-+       value: '/usr/share/backgrounds/elementaryos-default',
-+       description: 'Path to default wallpaper to use in Pantheon.')
-+
-+option('plank-dockitems',
-+       type: 'boolean',
-+       value: true,
-+       description: 'Install default Pantheon Plank dockitems')
-+
-+option('default-gsettings-overrides',
-+       type: 'boolean',
-+       value: true,
-+       description: 'Install default Pantheon GSettings Overrides')
-diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in
-similarity index 92%
-rename from overrides/default-settings.gschema.override
-rename to overrides/default-settings.gschema.override.in
-index 1aef29c..69d272b 100644
---- a/overrides/default-settings.gschema.override
-+++ b/overrides/default-settings.gschema.override.in
-@@ -1,5 +1,4 @@
- [net.launchpad.plank.dock.settings]
--dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
- hide-delay=250
- hide-mode='window-dodge'
- show-dock-item=false
-@@ -11,7 +10,7 @@ triggers=['<Control>space']
- [org.gnome.desktop.background]
- draw-background=true
- picture-options='zoom'
--picture-uri='file:///usr/share/backgrounds/elementaryos-default'
-+picture-uri='file://@DEFAULT_WALLPAPER@'
- primary-color='#000000'
- show-desktop-icons=false
- 
-diff --git a/overrides/meson.build b/overrides/meson.build
-new file mode 100644
-index 0000000..ad80644
---- /dev/null
-+++ b/overrides/meson.build
-@@ -0,0 +1,21 @@
-+if get_option('default-gsettings-overrides')
-+    default_wallpaper = get_option('default-wallpaper')
-+
-+    wallpaper_configuration = configuration_data()
-+    wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper)
-+
-+    settings_override = configure_file(
-+        input: 'default-settings.gschema.override.in',
-+        output: '@BASENAME@',
-+        configuration: wallpaper_configuration,
-+        install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
-+    )
-+endif
-+
-+# Install conditionally because it's dependent on our dockitems being installed
-+if get_option('plank-dockitems')
-+    install_data(
-+        'plank-dockitems.gschema.override',
-+        install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
-+    )
-+endif
-diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override
-new file mode 100644
-index 0000000..72b38d4
---- /dev/null
-+++ b/overrides/plank-dockitems.gschema.override
-@@ -0,0 +1,2 @@
-+[net.launchpad.plank.dock.settings]
-+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
-diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop
-similarity index 100%
-rename from sessioninstaller.desktop
-rename to sessioninstaller/sessioninstaller.desktop
--- 
-2.23.0
-
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 982502f51612..1751636da008 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -11,12 +11,11 @@
 , polkit
 , accountsservice
 , python3
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-default-settings";
-  version = "5.1.2";
+  version = "6.0.1";
 
   repoName = "default-settings";
 
@@ -24,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-HKrDs2frEWVPpwyGNP+NikrjyplSXJj1hFMLy6kK4wM=";
+    sha256 = "0gqnrm968j4v699yhhiyw5fqjy4zbvvrjci2v1jrlycn09c2yrwf";
   };
 
   passthru = {
@@ -33,23 +32,6 @@ stdenv.mkDerivation rec {
     };
   };
 
-  patches = [
-    # Use new notifications
-    (fetchpatch {
-      url = "https://github.com/elementary/default-settings/commit/0658bb75b9f49f58b35746d05fb6c4b811f125e9.patch";
-      sha256 = "0wa7iq0vfp2av5v23w94a5844ddj4g48d4wk3yrp745dyrimg739";
-    })
-
-    # Fix media key syntax
-    (fetchpatch {
-      url = "https://github.com/elementary/default-settings/commit/332aefe1883be5dfe90920e165c39e331a53b2ea.patch";
-      sha256 = "0ypcaga55pw58l30srq3ga1mhz2w6hkwanv41jjr6g3ia9jvq69n";
-    })
-
-    # https://github.com/elementary/default-settings/pull/119
-    ./0001-Build-with-Meson.patch
-  ];
-
   nativeBuildInputs = [
     accountsservice
     dbus
@@ -73,9 +55,9 @@ stdenv.mkDerivation rec {
   '';
 
   preInstall = ''
-    # Install our override for plank dockitems.
-    # This is because we don't have Pantheon's mail or Appcenter.
-    # See: https://github.com/NixOS/nixpkgs/issues/58161
+    # Install our override for plank dockitems as Appcenter and Tasks is not ready to be preinstalled.
+    # For Appcenter, see: https://github.com/NixOS/nixpkgs/issues/70214.
+    # For Tasks, see: https://github.com/elementary/tasks/issues/243#issuecomment-846259496
     schema_dir=$out/share/glib-2.0/schemas
     install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
 
@@ -84,7 +66,7 @@ stdenv.mkDerivation rec {
     cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
 
     # Whitelist wingpanel indicators to be used in the greeter
-    # hhttps://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
+    # https://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
     # wingpanel 2.3.2 renamed this to .allowed to .forbidden
     # https://github.com/elementary/wingpanel/pull/326
     install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
@@ -103,6 +85,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/default-settings";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem
new file mode 100644
index 000000000000..e07328c59473
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem
@@ -0,0 +1,2 @@
+[PlankDockItemPreferences]
+Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem
deleted file mode 100644
index 8b04efe417ea..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem
+++ /dev/null
@@ -1,2 +0,0 @@
-[PlankDockItemPreferences]
-Launcher=file:///run/current-system/sw/share/applications/org.gnome.Geary.desktop
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
index 671448745c50..b3ca51853b79 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -1,2 +1,2 @@
 [net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index e80e7d951cd4..e85acf39e722 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -13,11 +13,13 @@
 , gtk3
 , granite
 , libgee
-, elementary-settings-daemon
+, libhandy
+, gnome-settings-daemon
 , mutter
 , elementary-icon-theme
 , wingpanel-with-indicators
 , elementary-gtk-theme
+, elementary-settings-daemon
 , nixos-artwork
 , lightdm
 , gdk-pixbuf
@@ -29,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-greeter";
-  version = "5.0.4";
+  version = "6.0.1";
 
   repoName = "greeter";
 
@@ -37,7 +39,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-Enn+ekALWbk7FVJJuea/rNiwEZDIyb3kyMcZNNraOv8=";
+    sha256 = "1f606ds56sp1c58q8dblfpaq9pwwkqw9i4gkwksw45m2xkwlbflq";
   };
 
   passthru = {
@@ -66,10 +68,12 @@ stdenv.mkDerivation rec {
     elementary-gtk-theme
     elementary-icon-theme
     elementary-settings-daemon
+    gnome-settings-daemon
     gdk-pixbuf
     granite
     gtk3
     libgee
+    libhandy
     lightdm
     mutter
     wingpanel-with-indicators
@@ -80,9 +84,7 @@ stdenv.mkDerivation rec {
     "--sbindir=${placeholder "out"}/bin"
     # baked into the program for discovery of the greeter configuration
     "--sysconfdir=/etc"
-    # We use the patched gnome-settings-daemon
-    "-Dubuntu-patched-gsd=true"
-    "-Dgsd-dir=${elementary-settings-daemon}/libexec/" # trailing slash is needed
+    "-Dgsd-dir=${gnome-settings-daemon}/libexec/" # trailing slash is needed
   ];
 
   patches = [
@@ -125,6 +127,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/greeter";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index bfe95e0be46d..1f8c811d9d10 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -6,7 +6,7 @@
 , glib
 , gala
 , epiphany
-, elementary-settings-daemon
+, gnome-settings-daemon
 , gtk3
 , elementary-dock
 , gsettings-desktop-schemas
@@ -18,7 +18,7 @@ let
 
   gsettingsOverridePackages = [
     elementary-dock
-    elementary-settings-daemon
+    gnome-settings-daemon
     epiphany
     gala
     gsettings-desktop-schemas
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 70da883392a8..e7b0248ad425 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
+, substituteAll
 , pantheon
-, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -17,11 +17,12 @@
 , gettext
 , libhandy
 , wrapGAppsHook
+, appcenter
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-onboarding";
-  version = "1.2.1";
+  version = "6.0.0";
 
   repoName = "onboarding";
 
@@ -29,20 +30,9 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-tLTwXA2miHqYqCUbIiBjb2nQB+uN/WzuE4F9m3fVCbM=";
+    sha256 = "1mpw0j8ymb41py9v9qlk4nwy1lnwj7k388c7gqdv34ynck0ymfi4";
   };
 
-  patches = [
-    # Port to Libhandy-1
-    (fetchpatch {
-      url = "https://github.com/elementary/onboarding/commit/8af6b7d9216f8cbf725f708b36ef4d4f6c400c78.patch";
-      sha256 = "cnSCSSFEQlNd9Ncw5VCJ32stZ8D4vhl3f+derAk/Cas=";
-      excludes = [
-        ".github/workflows/main.yml"
-      ];
-    })
-  ];
-
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -69,6 +59,13 @@ stdenv.mkDerivation rec {
     libhandy
   ];
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      appcenter = appcenter;
+    })
+  ];
+
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
@@ -79,6 +76,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/onboarding";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patch
new file mode 100644
index 000000000000..c98d898bb488
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Views/AppCenterView.vala b/src/Views/AppCenterView.vala
+index 16cd18b..5895897 100644
+--- a/src/Views/AppCenterView.vala
++++ b/src/Views/AppCenterView.vala
+@@ -55,7 +55,7 @@ public class Onboarding.AppCenterView : AbstractOnboardingView {
+         appcenter_button.clicked.connect (() => {
+             try {
+                 var appcenter = AppInfo.create_from_commandline (
+-                    "io.elementary.appcenter",
++                    "@appcenter@/bin/io.elementary.appcenter",
+                     "AppCenter",
+                     AppInfoCreateFlags.SUPPORTS_STARTUP_NOTIFICATION
+                 );
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index 7b821f883ce9..c64cfced0c55 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/print";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 38fcb8d40b41..e3d0cb8c7282 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -11,7 +11,7 @@
 , orca
 , onboard
 , elementary-default-settings
-, elementary-settings-daemon
+, gnome-settings-daemon
 , runtimeShell
 , writeText
 , meson
@@ -89,16 +89,16 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "elementary-session-settings-unstable";
-  version = "2020-07-06";
+  pname = "elementary-session-settings";
+  version = "6.0.0";
 
   repoName = "session-settings";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "fa15cbd83fba0ba30e9a302db880350bff5ace52";
-    hash = "sha256-26H791c7OAjFYtjVChIatICSocMt0uTej1TKBOvw+6w=";
+    rev = version;
+    sha256 = "1faglpa7q3a4335gnd074a3lnsdspyjdnskgy4bfnf6xmwjx7kjx";
   };
 
   nativeBuildInputs = [
@@ -109,8 +109,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    pantheon.elementary-settings-daemon
     gnome-keyring
+    gnome-settings-daemon
     onboard
     orca
   ];
@@ -124,7 +124,6 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # our mimeapps patched from upstream to exclude:
-    # * pantheon-mail -> geary
     # * evince.desktop -> org.gnome.Evince.desktop
     mkdir -p $out/share/applications
     cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
@@ -154,8 +153,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Session settings for elementary";
     homepage = "https://github.com/elementary/session-settings";
-    license = licenses.lgpl3;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list
index 3b5e3b0e77a5..8deb6ae8c1c5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list
@@ -163,6 +163,6 @@ x-content/video-svcd=io.elementary.videos.desktop
 x-content/video-vcd=io.elementary.videos.desktop
 x-scheme-handler/http=org.gnome.Epiphany.desktop
 x-scheme-handler/https=org.gnome.Epiphany.desktop
-x-scheme-handler/mailto=org.gnome.Evolution.desktop
+x-scheme-handler/mailto=io.elementary.mail.desktop
 x-scheme-handler/trash=io.elementary.files.desktop
 
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 314267d86122..3a6fbc194772 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -12,13 +13,14 @@
 , glib
 , granite
 , libgee
+, libhandy
 , elementary-icon-theme
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-shortcut-overlay";
-  version = "1.1.2";
+  version = "1.2.0";
 
   repoName = "shortcut-overlay";
 
@@ -26,9 +28,18 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-TFS29vwDkTtoFcIVAbKskyLemqW9fxE7fQkM61DpDm0=";
+    sha256 = "1zs2fpx4agr00rsfmpi00nhiw92mlypzm4p9x3g851p24m62fn79";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/shortcut-overlay/pull/100
+    (fetchpatch {
+      url = "https://github.com/elementary/shortcut-overlay/commit/f26e3684568e30cb6e151438e2d86c4d392626bf.patch";
+      sha256 = "0zxyqpk9xbxdm8lmgdwbb4yzzwbjlhypsca3xs34a2pl0b9pcdwd";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -51,6 +62,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
   ];
 
   meta = with lib; {
@@ -58,6 +70,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/shortcut-overlay";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
index c4467c53a2bf..665007fcd634 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
 , nix-update-script
-, fetchpatch
 , pantheon
 , pkg-config
 , meson
@@ -23,18 +22,20 @@
 , elementary-dock
 , elementary-icon-theme
 , elementary-settings-daemon
+, gnome-settings-daemon
 , wrapGAppsHook
+, gexiv2
 }:
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "3.3.2";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BOarHUEgWqQM6jmVMauJi0JnsM+jE45MnPNnAqz1qOE=";
+    sha256 = "1yxsfshahaxiqs5waj4v96rhjhdgyd1za4pwlg3vqq51p75k2b1g";
   };
 
   passthru = {
@@ -61,6 +62,8 @@ stdenv.mkDerivation rec {
     elementary-dock
     elementary-icon-theme
     elementary-settings-daemon
+    gnome-settings-daemon
+    gexiv2
     gnome-desktop
     granite
     gtk3
@@ -71,15 +74,12 @@ stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # https://github.com/elementary/gala/pull/869
-    # build failure in vala 0.48.7
-    # https://github.com/elementary/gala/pull/869#issuecomment-657147695
-    (fetchpatch {
-      url = "https://github.com/elementary/gala/commit/85d290c75eaa147b704ad34e6c67498071707ee8.patch";
-      sha256 = "19jkvmxidf453qfrxkvi35igxzfz2cm8srwkabvyn9wyd1yhiw0l";
-    })
     ./plugins-dir.patch
-    ./use-new-notifications-default.patch
+    # https://github.com/elementary/gala/pull/1259
+    # https://github.com/NixOS/nixpkgs/issues/139404
+    # Remove this patch when it is included in a new release
+    # of gala OR when we no longer use mutter 3.38 for pantheon
+    ./fix-session-crash-when-taking-screenshots.patch
   ];
 
   postPatch = ''
@@ -92,6 +92,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/gala";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/fix-session-crash-when-taking-screenshots.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/fix-session-crash-when-taking-screenshots.patch
new file mode 100644
index 000000000000..f2393a804bcf
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/fix-session-crash-when-taking-screenshots.patch
@@ -0,0 +1,50 @@
+From fa3c39331d4ef56a13019f45d811bde1fc755c21 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Sat, 25 Sep 2021 23:21:01 +0800
+Subject: [PATCH] Fix session crash when taking screenshots with mutter 3.38
+
+---
+ src/ScreenshotManager.vala | 5 ++---
+ vapi/mutter-clutter.vapi   | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/ScreenshotManager.vala b/src/ScreenshotManager.vala
+index 3ffb0123..388fee1a 100644
+--- a/src/ScreenshotManager.vala
++++ b/src/ScreenshotManager.vala
+@@ -354,12 +354,11 @@ namespace Gala {
+                 paint_flags |= Clutter.PaintFlag.FORCE_CURSORS;
+             }
+ 
+-            unowned var data = image.get_data ();
+             if (GLib.ByteOrder.HOST == GLib.ByteOrder.LITTLE_ENDIAN) {
+                 wm.stage.paint_to_buffer (
+                     {x, y, width, height},
+                     scale,
+-                    ref data,
++                    image.get_data (),
+                     image.get_stride (),
+                     Cogl.PixelFormat.BGRA_8888_PRE,
+                     paint_flags
+@@ -368,7 +367,7 @@ namespace Gala {
+                 wm.stage.paint_to_buffer (
+                     {x, y, width, height},
+                     scale,
+-                    ref data,
++                    image.get_data (),
+                     image.get_stride (),
+                     Cogl.PixelFormat.ARGB_8888_PRE,
+                     paint_flags
+diff --git a/vapi/mutter-clutter.vapi b/vapi/mutter-clutter.vapi
+index 5b778cb2..95de24be 100644
+--- a/vapi/mutter-clutter.vapi
++++ b/vapi/mutter-clutter.vapi
+@@ -7336,7 +7336,7 @@ namespace Clutter {
+ 		[Version (since = "1.2")]
+ 		public bool get_use_alpha ();
+ #if HAS_MUTTER338
+-		public bool paint_to_buffer (Cairo.RectangleInt rect, float scale, [CCode (array_length = false)] ref unowned uint8[] data, int stride, Cogl.PixelFormat format, Clutter.PaintFlag paint_flags) throws GLib.Error;
++		public bool paint_to_buffer (Cairo.RectangleInt rect, float scale, [CCode (array_length = false, type = "uint8_t*")] uint8[] data, int stride, Cogl.PixelFormat format, Clutter.PaintFlag paint_flags) throws GLib.Error;
+ 		public void paint_to_framebuffer (Cogl.Framebuffer framebuffer, Cairo.RectangleInt rect, float scale, Clutter.PaintFlag paint_flags);
+ #else
+ 		[Version (since = "0.4")]
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
index f08652e9f630..b0e72bbe1ab7 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
@@ -1,16 +1,17 @@
 diff --git a/meson.build b/meson.build
-index 78113d6..926596c 100644
+index d0f00e5..977d2e2 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -24,13 +24,14 @@ vapi_dir = meson.current_source_dir() / 'vapi'
-
+@@ -25,6 +25,7 @@ vapi_dir = meson.current_source_dir() / 'vapi'
+ locale_dir = join_paths(get_option('prefix'), get_option('localedir'))
  data_dir = join_paths(get_option('prefix'), get_option('datadir'))
  plugins_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name(), 'plugins')
 +plugins_dir_for_build = join_paths('/run/current-system/sw/lib/', meson.project_name(), 'plugins')
  pkgdata_dir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
  pkglib_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name())
-
- conf = configuration_data()
+ 
+@@ -33,7 +34,7 @@ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+ conf.set_quoted('LOCALEDIR', locale_dir)
  conf.set_quoted('DATADIR', data_dir)
  conf.set_quoted('PKGDATADIR', pkgdata_dir)
 -conf.set_quoted('PLUGINDIR', plugins_dir)
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patch
deleted file mode 100644
index dc256bcff3aa..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml
-index 8032583..7f4f03c 100644
---- a/data/gala.gschema.xml
-+++ b/data/gala.gschema.xml
-@@ -58,7 +58,7 @@
- 			<description>If enabled, dropping windows on vertical screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Dropping windows on the top screen edge maximizes them completely.</description>
- 		</key>
- 		<key type="b" name="use-new-notifications">
--			<default>false</default>
-+			<default>true</default>
- 			<summary>If new notifications should be used</summary>
- 			<description>If new notifications UI should be used, requires io.elemenetary.notifications to be present and running</description>
- 		</key>
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
new file mode 100644
index 000000000000..7e185ece23ac
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
@@ -0,0 +1,70 @@
+{ lib, stdenv
+, fetchFromGitHub
+, fetchpatch
+, nix-update-script
+, pantheon
+, meson
+, ninja
+, pkg-config
+, python3
+, vala
+, granite
+, gtk3
+, libgee
+, wingpanel
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-a11y";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "1adx1sx9qh02hjgv5h0gwyn116shjl3paxmyaiv4cgh6vq3ndp3c";
+  };
+
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-a11y/pull/48
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-a11y/commit/fb8412d56bc1c42b70e8ee41b837e8024e1297f7.patch";
+      sha256 = "0619npdw9wvaz1zk2lzikczyjdqba8v8c9ry9zizvvl4j1i1ad7k";
+    })
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    vala
+  ];
+
+  buildInputs = [
+    granite
+    gtk3
+    libgee
+    wingpanel
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with lib; {
+    description = "Universal Access Indicator for Wingpanel";
+    homepage = "https://github.com/elementary/wingpanel-indicator-a11y";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 230ae29ffa05..29432bf19656 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , pantheon
 , substituteAll
@@ -19,7 +18,6 @@
 , elementary-dock
 , bamf
 , switchboard-with-plugs
-, libunity
 , libsoup
 , wingpanel
 , zeitgeist
@@ -29,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-applications-menu";
-  version = "2.7.1";
+  version = "2.8.2";
 
   repoName = "applications-menu";
 
@@ -37,7 +35,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-NeazBzkbdQTC6OzPxxyED4OstMkNkUGtCIaZD67fTnM=";
+    sha256 = "1pm3dnq35vbvyxqapmfy4frfwhc1l2zh634annlmbjiyfp5mzk0q";
   };
 
   passthru = {
@@ -59,14 +57,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bamf
     elementary-dock
-    gnome-menus
     granite
     gtk3
     json-glib
     libgee
     libhandy
     libsoup
-    libunity
     switchboard-with-plugs
     wingpanel
     zeitgeist
@@ -83,12 +79,6 @@ stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # Port to Libhandy-1
-    (fetchpatch {
-      url = "https://github.com/elementary/applications-menu/commit/8eb2430e8513e9d37f875c5c9b8b15a968c27127.patch";
-      sha256 = "8Uw9mUw7U5nrAwUDGVpAwoRqb9ah503wQCr9kPbBJIo=";
-    })
-
     (substituteAll {
       src = ./fix-paths.patch;
       bc = "${bc}/bin/bc";
@@ -105,6 +95,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/applications-menu";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
index 25e3891a205a..aea828b36336 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/src/synapse-plugins/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin.vala
-index 18ca3af..f5d1076 100644
+index 886a44cd..a4601da6 100644
 --- a/src/synapse-plugins/calculator-plugin.vala
 +++ b/src/synapse-plugins/calculator-plugin.vala
-@@ -44,9 +44,7 @@ namespace Synapse {
+@@ -50,9 +50,7 @@ namespace Synapse {
                  _("Calculator"),
                  _("Calculate basic expressions."),
                  "accessories-calculator",
@@ -13,10 +13,10 @@ index 18ca3af..f5d1076 100644
              );
          }
  
-@@ -87,7 +85,7 @@ namespace Synapse {
-             if (matched) {
+@@ -94,7 +92,7 @@ namespace Synapse {
                  Pid pid;
                  int read_fd, write_fd;
+                 /* Must include math library to get non-integer results and to access standard math functions */
 -                string[] argv = {"bc", "-l"};
 +                string[] argv = {"@bc@", "-l"};
                  string? solution = null;
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 03500abd6237..a9b13650ddba 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-bluetooth";
-  version = "unstable-2020-10-01";
+  version = "2.1.8";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
-    rev = "2b59d646ea0d66ae45dafc851374f24dcd98c064";
-    sha256 = "sha256-selp70P+7RhbdHF6iiNmcNbMf/c+B9zZ6nlxwRSZGn4=";
+    rev = version;
+    sha256 = "12rasf8wy3cqnfjlm9s2qnx4drzx0w0yviagkng3kspdzm3vzsqy";
   };
 
   passthru = {
@@ -62,6 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/wingpanel-indicator-bluetooth";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 03954fac6448..ad030277463c 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
+, substituteAll
 , pantheon
 , pkg-config
 , meson
@@ -13,6 +15,7 @@
 , evolution-data-server
 , libical
 , libgee
+, libhandy
 , libxml2
 , libsoup
 , libgdata
@@ -21,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
-  version = "2.2.5";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-rZzZIh4bwZfwQFDbfPDKQtfLMJQ2IdykH1yiV6ckqnw=";
+    sha256 = "1mdm0fsnmmyw8c0ik2jmfri3kas9zkz1hskzf8wvbd51vnazfpgw";
   };
 
   passthru = {
@@ -50,12 +53,26 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
     libical
     libsoup
     wingpanel
     libgdata # required by some dependency transitively
   ];
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      elementary_calendar = elementary-calendar;
+    })
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-datetime/pull/269
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/f7befa68a9fd6215297c334a366919d3431cae65.patch";
+      sha256 = "0l997b1pnpjscs886xy28as5yykxamxacvxdv8466zin7zynarfs";
+    })
+  ];
+
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
@@ -64,8 +81,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Date & Time Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch
new file mode 100644
index 000000000000..bec5f43e0d78
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
+index 6e0d530a..2f90f96c 100644
+--- a/src/Widgets/calendar/CalendarView.vala
++++ b/src/Widgets/calendar/CalendarView.vala
+@@ -222,7 +222,7 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
+ 
+     // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
+     public void show_date_in_maya (GLib.DateTime date) {
+-        var command = "io.elementary.calendar --show-day %s".printf (date.format ("%F"));
++        var command = "@elementary_calendar@/bin/io.elementary.calendar --show-day %s".printf (date.format ("%F"));
+ 
+         try {
+             var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 4e2f9455073c..6d5227b7139f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -14,17 +15,18 @@
 , libgee
 , xorg
 , libgnomekbd
+, ibus
 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-keyboard";
-  version = "2.2.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/sTx0qT7gNj1waQg9OKqHY6MtL+p0NljiIAXKA3DYmA=";
+    sha256 = "10zzsil5l6snz47nx887r22sl2n0j6bg4dhxmgk3j3xp3jhgmrgl";
   };
 
   passthru = {
@@ -44,6 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
+    ibus
     libgee
     wingpanel
     xorg.xkeyboardconfig
@@ -54,13 +57,19 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       gkbd_keyboard_display = "${libgnomekbd}/bin/gkbd-keyboard-display";
     })
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-keyboard/pull/110
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-keyboard/commit/ea5df2f62a99a216ee5ed137268e710490a852a4.patch";
+      sha256 = "0fmdz10xgzsryj0f0dnpjrh9yygjkb91a7pxg0rwddxbprhnr7j0";
+    })
   ];
 
   meta = with lib; {
     description = "Keyboard Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-keyboard";
-    license = licenses.lgpl21Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index ab898084c087..92738df7b355 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
+, substituteAll
 , pantheon
 , pkg-config
 , meson
@@ -12,17 +14,18 @@
 , libnma
 , wingpanel
 , libgee
+, elementary-capnet-assist
 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-network";
-  version = "2.2.4";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wVHvHduUT55rIWRfRWg3Z3jL3FdzUJfiqFONRmpCR8k=";
+    sha256 = "0q5ad2sj0nmigrh1rykb2kvik3hzibzyafdvkkmjd6y92145lwl1";
   };
 
   passthru = {
@@ -47,11 +50,24 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      elementary_capnet_assist = elementary-capnet-assist;
+    })
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-network/pull/228
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-network/commit/eacc7d46a94a980005e87e38e6c943143a09692a.patch";
+      sha256 = "1svg07fqmplchp1ass0h8qkr3g24pkw8dcsnd54ddmvnjzwrzz0a";
+    })
+  ];
+
   meta = with lib; {
     description = "Network Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-network";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch
new file mode 100644
index 000000000000..b98c50b3e49a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Indicator.vala b/src/Indicator.vala
+index 83ce932a..f95ed142 100644
+--- a/src/Indicator.vala
++++ b/src/Indicator.vala
+@@ -67,7 +67,7 @@ public class Network.Indicator : Wingpanel.Indicator {
+ 
+             if (network_monitor.get_connectivity () == NetworkConnectivity.FULL || network_monitor.get_connectivity () == NetworkConnectivity.PORTAL) {
+                 try {
+-                    var appinfo = AppInfo.create_from_commandline ("io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
++                    var appinfo = AppInfo.create_from_commandline ("@elementary_capnet_assist@/bin/io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
+                     appinfo.launch (null, null);
+                 } catch (Error e) {
+                     warning ("%s\n", e.message);
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 4481c181f53d..23f9e400c01b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
@@ -15,15 +16,24 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-nightlight";
-  version = "2.0.4";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0f03XO74ezzS/Uy0mXT4raoazETL/SOVh58sAo9bEIA=";
+    sha256 = "1zxjw68byg4sjn8lzsidzmy4ipwxgnv8rm529a7wzlpgj2xq3x4j";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-nightlight/pull/91
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-nightlight/commit/4e15f71ed958df3569b2f1e224b9fb18613281f1.patch";
+      sha256 = "07awmswyy0988pm6ggyz22mllja675cbdzrjdqc1xd4knwcgy77v";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -45,13 +55,11 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
-  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
-
   meta = with lib; {
     description = "Night Light Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-nightlight";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 97ab0cb80ed3..1a101a8a886d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -11,26 +11,27 @@
 , granite
 , wingpanel
 , libgee
+, libhandy
 , elementary-notifications
 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
-  version = "2.1.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tVPSJO/9IXlibLkb6Cv+8azdvuXbcNOI1qYk4VQc4WI=";
+    sha256 = "1pvcpk1d2zh9pvw0clv3bhf2plcww6nbxs6j7xjbvnaqs7d6i1k2";
   };
 
   patches = [
-    # Fix do not disturb on NixOS
-    # https://github.com/elementary/wingpanel-indicator-notifications/pull/110
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-notifications/pull/218
     (fetchpatch {
-      url = "https://github.com/elementary/wingpanel-indicator-notifications/commit/02b1e226c0262c1535fdf2b4f1daba6be9084f67.patch";
-      sha256 = "1a5phygygndr28yx8yp0lyk0wxypc5656dpidw1z8x1yd6xysqhy";
+      url = "https://github.com/elementary/wingpanel-indicator-notifications/commit/c7e73f0683561345935a959dafa2083b7e22fe99.patch";
+      sha256 = "10xiyq42bqfmih1jgqpq64nha3n0y7ra3j7j0q27rn5hhhgbyjs7";
     })
   ];
 
@@ -52,6 +53,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
     wingpanel
   ];
 
@@ -60,6 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/wingpanel-indicator-notifications";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index 69a17b9dd30a..f3d3ac0e46d5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,7 +1,9 @@
 { lib, stdenv
 , fetchFromGitHub
+, substituteAll
 , nix-update-script
 , pantheon
+, gnome
 , pkg-config
 , meson
 , python3
@@ -11,6 +13,7 @@
 , granite
 , bamf
 , libgtop
+, libnotify
 , udev
 , wingpanel
 , libgee
@@ -18,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-power";
-  version = "2.2.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wjYZXFnzvPSukzh1BNvyaFxKpYm+kNNFm5AsthLXGVE=";
+    sha256 = "1zlpnl7983jkpy2nik08ih8lwrqvm456h993ixa6armzlazdvnjk";
   };
 
   passthru = {
@@ -47,10 +50,18 @@ stdenv.mkDerivation rec {
     gtk3
     libgee
     libgtop
+    libnotify
     udev
     wingpanel
   ];
 
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      gnome_power_manager = gnome.gnome-power-manager;
+    })
+  ];
+
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
@@ -59,8 +70,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Power Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-power";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patch
new file mode 100644
index 000000000000..532001eb663b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Widgets/DeviceList.vala b/src/Widgets/DeviceList.vala
+index 0c56f46..33d97b3 100644
+--- a/src/Widgets/DeviceList.vala
++++ b/src/Widgets/DeviceList.vala
+@@ -39,7 +39,7 @@ public class Power.Widgets.DeviceList : Gtk.ListBox {
+             string device_path = path_entries.@get (value);
+             try {
+                 AppInfo statistics_app = AppInfo.create_from_commandline (
+-                    "gnome-power-statistics --device " + device_path,
++                    "@gnome_power_manager@/bin/gnome-power-statistics --device " + device_path,
+                     "",
+                     AppInfoCreateFlags.NONE
+                 );
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index a6c08b613bbd..eaccad35aa0b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -12,19 +12,29 @@
 , wingpanel
 , accountsservice
 , libgee
+, libhandy
 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-session";
-  version = "unstable-2020-09-13";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
-    rev = "e65c95f46adbfd598ad61933394d7bc3c5998278";
-    sha256 = "sha256-QKOfgAc6pDQYpETrFunZB6+rF1P8XIf0pjft/t9aWW0=";
+    rev = version;
+    sha256 = "0hww856qjl4kjmmksd5gp8bc5vj4fhs2s9fmbnpbf88lg5ds0wv0";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-session/pull/162
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-session/commit/e85032da8e923df4589dc75ccded10026b6c1cd7.patch";
+      sha256 = "139b2zbc6qjaw41nwfjkqv4npahkzryv4p5m6v10273clv6l72ng";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -43,6 +53,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
     wingpanel
   ];
 
@@ -51,6 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/wingpanel-indicator-session";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 25707f39e46b..55f27d606467 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,12 +1,13 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , pantheon
 , pkg-config
 , meson
 , python3
 , ninja
-, vala
+, vala_0_52
 , gtk3
 , granite
 , wingpanel
@@ -19,15 +20,24 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-sound";
-  version = "2.1.6";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WGkxLsbdJ7Z7kolymYpggsVy4cN4CicNKdfCbunklSI=";
+    sha256 = "0cv97c0qrhqisyghy9a9qr4ffcx3g4bkswxm6rn4r2wfg4gvljri";
   };
 
+  patches = [
+    # Upstream code not respecting our localedir
+    # https://github.com/elementary/wingpanel-indicator-sound/pull/216
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-sound/commit/df816104c15e4322c1077313b1f43114cdaf710e.patch";
+      sha256 = "029z7l467jz1ymxwrzrf874062r6xmskl7mldpq39jh110fijy5l";
+    })
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -40,7 +50,9 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     python3
-    vala
+    # Does not build with vala 0.54
+    # https://github.com/elementary/wingpanel-indicator-sound/issues/219
+    vala_0_52
   ];
 
   buildInputs = [
@@ -61,8 +73,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Sound Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-sound";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 97c2d0c8845a..1ae9f9f4aaa5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
-  version = "2.3.2";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mXi600gufUK81Uks9p4+al0tCI7H9KpizZGyoomp42s=";
+    sha256 = "0ycys24y1rrz0ydpvs4mc89p4k986q1ziwbvziinxr1wsli9v1dj";
   };
 
   passthru = {
@@ -82,8 +82,8 @@ stdenv.mkDerivation rec {
       including the applications menu.
     '';
     homepage = "https://github.com/elementary/wingpanel";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
index 7f3a6dc0983e..0e6d14d2425a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "6.1.0";
+  version = "6.1.1";
 
   outputs = [ "out" "dev" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02hn4abnsn6fm2m33pjmlnkj8dljsm292z62vn8ccvy7l8f9my6l";
+    sha256 = "13c6xk014psvmll9qybdqviskllw4g150m2k4ikjbv59g0rfp7xq";
   };
 
   passthru = {
@@ -67,6 +67,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/granite";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
index e15480c8cc88..666e17362ac2 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "contractor";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FHLecRxTE8v3M7cV6rkQKNhPhKFhuhvkzB5C+u7Z+Ms=";
+    sha256 = "1sqww7zlzl086pjww3d21ah1g78lfrc9aagrqhmsnnbji9gwb8ab";
   };
 
   passthru = {
@@ -54,6 +54,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/contractor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index d9f224ce45d8..0b904a112177 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -11,6 +11,7 @@
 , gtk3
 , granite
 , libgee
+, libhandy
 , gcr
 , webkitgtk
 , wrapGAppsHook
@@ -18,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-capnet-assist";
-  version = "2.2.5";
+  version = "2.3.0";
 
   repoName = "capnet-assist";
 
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-o6J3vNWvV0zRde8VWWfpb56PQhSck2sJQVLimq0P9CY=";
+    sha256 = "1gma8a04ndivx1fd3ha9f45r642qq2li80wrd6dsrp4v3vqix9bn";
   };
 
   passthru = {
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
     granite
     gtk3
     libgee
+    libhandy
     webkitgtk
   ];
 
@@ -66,8 +68,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A small WebKit app that assists a user with login when a captive portal is detected";
     homepage = "https://github.com/elementary/capnet-assist";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
deleted file mode 100644
index 65995c456599..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, nix-update-script
-, pantheon
-, meson
-, ninja
-, desktop-file-utils
-, glib
-, coreutils
-, elementary-settings-daemon
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "elementary-dpms-helper";
-  version = "1.0";
-
-  repoName = "dpms-helper";
-
-  src = fetchFromGitHub {
-    owner = "elementary";
-    repo = repoName;
-    rev = version;
-    sha256 = "sha256-0KbfAxvZ+aFjq+XEK4uoRHSyKlaky0FlJd2a5TG4bms=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
-  };
-
-  nativeBuildInputs = [
-    desktop-file-utils
-    meson
-    ninja
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    elementary-settings-daemon
-    glib
-  ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ glib.dev coreutils ]}")
-  '';
-
-  postFixup = ''
-    substituteInPlace $out/etc/xdg/autostart/io.elementary.dpms-helper.desktop \
-      --replace "Exec=io.elementary.dpms-helper" "Exec=$out/bin/io.elementary.dpms-helper"
-  '';
-
-  # See: https://github.com/elementary/dpms-helper/pull/10
-  postInstall = ''
-    ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
-  meta = with lib; {
-    description = "Sets DPMS settings found in org.pantheon.dpms";
-    homepage = "https://github.com/elementary/dpms-helper";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index 73cace23cca9..15ae6840e454 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -8,6 +8,7 @@
 , glib
 , granite
 , libgee
+, libhandy
 , libcanberra-gtk3
 , pantheon
 , python3
@@ -16,15 +17,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-notifications";
-  version = "unstable-2020-03-31";
+  version = "6.0.0";
 
   repoName = "notifications";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "db552b0c3466ba1099c7737c353b7225ab1896cc";
-    sha256 = "1fhf4zx73qka935x5afv6zqsm2l37d1mjbhrbzzzz44dqwa2vp16";
+    rev = version;
+    sha256 = "0jfppafbc8jwhhnillylicz4zfds789d8b31ifsx0qijlxa7kji9";
   };
 
   nativeBuildInputs = [
@@ -43,6 +44,7 @@ stdenv.mkDerivation rec {
     gtk3
     libcanberra-gtk3
     libgee
+    libhandy
   ];
 
   postPatch = ''
@@ -54,7 +56,7 @@ stdenv.mkDerivation rec {
     description = "GTK notification server for Pantheon";
     homepage = "https://github.com/elementary/notifications";
     license = licenses.gpl3Plus;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 568414aab35c..d1aaad42e2f3 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -1,166 +1,67 @@
 { lib, stdenv
-, substituteAll
-, fetchurl
-, fetchgit
-, fetchpatch
+, fetchFromGitHub
 , meson
 , ninja
+, pantheon
 , pkg-config
-, gnome
-, perl
-, gettext
-, gtk3
-, glib
-, libnotify
-, libgnomekbd
-, lcms2
-, libpulseaudio
-, alsa-lib
-, libcanberra-gtk3
-, upower
-, colord
-, libgweather
-, polkit
-, gsettings-desktop-schemas
-, geoclue2
-, systemd
-, libgudev
-, libwacom
-, libxslt
-, libxml2
-, modemmanager
-, networkmanager
-, gnome-desktop
-, geocode-glib
-, docbook_xsl
+, python3
+, vala
 , accountsservice
+, dbus
+, desktop-file-utils
+, geoclue2
+, glib
+, gobject-introspection
+, gtk3
+, granite
+, libgee
 , wrapGAppsHook
-, python3
-, tzdata
-, nss
-, gcr
-, pantheon
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-settings-daemon";
-  version = "3.34.1";
+  version = "1.0.0";
 
-  repoName = "gnome-settings-daemon";
+  repoName = "settings-daemon";
 
-  src = fetchgit {
-    url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/${repoName}";
-    rev = "refs/tags/ubuntu/${version}-1ubuntu2";
-    sha256 = "0w0dsbzif7v0gk61rs9g20ldlimbdwb5yvlfdc568yyx5z643jbv";
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = repoName;
+    rev = version;
+    sha256 = "1masvy1f9z2cp8w5ajnhy4k9bzvzgfziqlm59bf146pdd2567hiw";
   };
 
-  # We've omitted the 53_sync_input_sources_to_accountsservice patch because it breaks the build.
-  # See: https://gist.github.com/worldofpeace/2f152a20b7c47895bb93239fce1c9f52
-  #
-  # Also omit ubuntu_calculator_snap.patch as that's obviously not useful here.
-  patches = let patchPath = "${src}/debian/patches"; in [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit tzdata;
-    })
-    ./global-backlight-helper.patch
-    "${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch"
-    #"${patchPath}/53_sync_input_sources_to_accountsservice.patch"
-    "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch"
-    "${patchPath}/correct_logout_action.patch"
-    "${patchPath}/ubuntu-lid-close-suspend.patch"
-    "${patchPath}/revert-gsettings-removals.patch"
-    "${patchPath}/revert-mediakeys-dbus-interface-drop.patch"
-    #"${patchPath}/ubuntu_ibus_configs.patch"
-    # https://github.com/elementary/os-patches/blob/6975d1c254cb6ab913b8e2396877203aea8eaa65/debian/patches/elementary-dpms.patch
-    ./elementary-dpms.patch
-
-    # Query GWeather DB on the fly instead of caching.
-    # Needed for the next patch to apply.
-    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/175
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/df6c69f028d27b53ac86829e11df103b25ed5a74.patch";
-      sha256 = "bKZkPzN64DXMgitjn0vUzUvKl7ldhN/mNVtPKVmHd0Q=";
-    })
-    # Adjust to libgweather changes.
-    # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/217
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
-      sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
-    })
-  ];
-
   nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
     meson
     ninja
     pkg-config
-    perl
-    gettext
-    libxml2
-    libxslt
-    docbook_xsl
-    wrapGAppsHook
     python3
+    vala
+    wrapGAppsHook
   ];
 
   buildInputs = [
     accountsservice
-    alsa-lib
-    colord
-    gcr
+    dbus
     geoclue2
-    geocode-glib
     glib
-    gnome-desktop
-    gsettings-desktop-schemas
     gtk3
-    lcms2
-    libcanberra-gtk3
-    libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
-    libgudev
-    libgweather
-    libnotify
-    libpulseaudio
-    libwacom
-    modemmanager
-    networkmanager
-    nss
-    polkit
-    systemd
-    upower
-  ];
-
-  mesonFlags = [
-    "-Dudev_dir=${placeholder "out"}/lib/udev"
+    granite
+    libgee
   ];
 
-    # Default for release buildtype but passed manually because
-    # we're using plain
-  NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
-
   postPatch = ''
-    for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
-      chmod +x $f
-      patchShebangs $f
-    done
-  '';
-
-  postFixup = ''
-    # So the polkit policy can reference /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
-    mkdir -p $out/bin/elementary-settings-daemon
-    ln -s $out/libexec/gsd-backlight-helper $out/bin/elementary-settings-daemon/gsd-backlight-helper
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
   '';
 
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = repoName;
-      attrPath = "pantheon.${pname}";
-    };
-  };
-
   meta = with lib; {
-    license = licenses.gpl2Plus;
-    maintainers = pantheon.maintainers;
+    description = "Settings daemon for Pantheon";
+    homepage = "https://github.com/elementary/settings-daemon";
+    license = licenses.gpl3Plus;
+    maintainers = teams.pantheon.members;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patch b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patch
deleted file mode 100644
index 14d056ceca27..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
-index ec805d8a..cf0d6793 100644
---- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
-+++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
-@@ -11,6 +11,11 @@
-       <summary>Activation of this plugin</summary>
-       <description>Whether this plugin would be activated by unity-settings-daemon or not</description>
-     </key>
-+    <key name="manage-dpms-defaults" type="b">
-+      <default>false</default>
-+      <summary>Reset X DPMS values</summary>
-+      <description>Whether DPMS values will be adjusted by gnome-settings-daemon</description>
-+    </key>
-     <key name="idle-brightness" type="i">
-       <default>30</default>
-       <summary>The brightness of the screen when idle</summary>
-diff --git a/plugins/power/gpm-common.c b/plugins/power/gpm-common.c
-index a7ca87fb..a56a7cdc 100644
---- a/plugins/power/gpm-common.c
-+++ b/plugins/power/gpm-common.c
-@@ -280,6 +280,18 @@ disable_builtin_screensaver (gpointer unused)
-         return TRUE;
- }
- 
-+gboolean
-+manage_dpms (void)
-+{
-+        GSettings *settings;
-+        gboolean manage_dpms_defaults;
-+
-+        settings = g_settings_new ("org.gnome.settings-daemon.plugins.power");
-+        manage_dpms_defaults = g_settings_get_boolean (settings, "manage-dpms-defaults");
-+        g_object_unref (settings);
-+        return manage_dpms_defaults;
-+}
-+
- guint
- gsd_power_enable_screensaver_watchdog (void)
- {
-@@ -290,7 +302,7 @@ gsd_power_enable_screensaver_watchdog (void)
-          * way. The defaults are now applied in Fedora 20 from
-          * being "0" by default to being "600" by default */
-         gdk_x11_display_error_trap_push (gdk_display_get_default ());
--        if (DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy))
-+        if (manage_dpms () && DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy))
-                 DPMSSetTimeouts (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 0, 0, 0);
-         gdk_x11_display_error_trap_pop_ignored (gdk_display_get_default ());
-         id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
-diff --git a/plugins/power/gpm-common.h b/plugins/power/gpm-common.h
-index 88a8e00e..af106479 100644
---- a/plugins/power/gpm-common.h
-+++ b/plugins/power/gpm-common.h
-@@ -34,6 +34,7 @@ gchar           *gpm_get_timestring                     (guint           time);
- gboolean         gsd_power_is_hardware_a_vm             (void);
- guint            gsd_power_enable_screensaver_watchdog  (void);
- void             reset_idletime                         (void);
-+gboolean         manage_dpms                            (void);
- 
- /* Backlight helpers */
- 
-diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
-index c500fa38..445496ee 100644
---- a/plugins/power/gsd-power-manager.c
-+++ b/plugins/power/gsd-power-manager.c
-@@ -1033,6 +1033,9 @@ backlight_enable (GsdPowerManager *manager)
-         gboolean ret;
-         GError *error = NULL;
- 
-+        if (!(manage_dpms ()))
-+                return;
-+
-         iio_proxy_claim_light (manager, TRUE);
-         ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen,
-                                              GNOME_RR_DPMS_ON,
-@@ -1052,6 +1055,9 @@ backlight_disable (GsdPowerManager *manager)
-         gboolean ret;
-         GError *error = NULL;
- 
-+        if (!(manage_dpms ()))
-+                return;
-+
-         iio_proxy_claim_light (manager, FALSE);
-         ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen,
-                                              GNOME_RR_DPMS_OFF,
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch
deleted file mode 100644
index 2229302cab7c..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/plugins/datetime/tz.h
-+++ b/plugins/datetime/tz.h
-@@ -27,11 +27,7 @@
- 
- #include <glib.h>
- 
--#ifndef __sun
--#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
--#else
--#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
--#endif
-+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
- 
- typedef struct _TzDB TzDB;
- typedef struct _TzLocation TzLocation;
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch b/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
deleted file mode 100644
index dcdc83934ba6..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
-index d7d10fd2..5619d6ad 100644
---- a/plugins/power/gsd-backlight.c
-+++ b/plugins/power/gsd-backlight.c
-@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
-                 proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
-                                          &error,
-                                          "pkexec",
--                                         LIBEXECDIR "/gsd-backlight-helper",
-+                                         "/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper",
-                                          g_udev_device_get_sysfs_path (backlight->udev_device),
-                                          data->value_str, NULL);
-         } else {
-diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-index f16300f8..79d6bd17 100644
---- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-+++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-@@ -25,7 +25,7 @@
-       <allow_inactive>no</allow_inactive>
-       <allow_active>yes</allow_active>
-     </defaults>
--    <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
-+    <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper</annotate>
-   </action>
-
- </policyconfig>
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 70b62e2b9a07..e2053ebf6a31 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-geoclue2";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-LrDu9NczSKN9YLo922MqYbcHG1QAwzXUb7W0Q/g9ftI=";
+    sha256 = "0hx3sky0vd2vshkscy3w5x3s18gd45cfqh510xhbmvc0sa32q9gd";
   };
 
   passthru = {
@@ -56,6 +56,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/pantheon-agent-geoclue2";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 61bbb6ef9a4b..4bef7fd5e08e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YL1LHnPH7pP0EW9IkjdSEX+VuaAF9uNyFbl47vjVps0=";
+    sha256 = "1acqjjarl225yk0f68wkldsamcrzrj0ibpcxma04wq9w7jlmz60c";
   };
 
   passthru = {
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/elementary/pantheon-agent-polkit";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = pantheon.maintainers;
+    maintainers = teams.pantheon.members;
   };
 }