about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2024-08-25 06:04:18 +0000
committerGitHub <noreply@github.com>2024-08-25 06:04:18 +0000
commita97ed4291e9ab9bae5b53632e196a4c7df545d8a (patch)
treeaad3ea6f207c4eef812a7ecc4820eb18decadee5 /pkgs/desktops
parentc1973d87e6a1e5fcabe5f5e5c8ee060b70f03e67 (diff)
parentba0c72cea47a45556ccd5bc566433bd1242a0f93 (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix37
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix16
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix21
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix16
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix18
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch33
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/hide-install-unlisted-engines-button.patch83
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix12
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix18
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/fix-paths.patch42
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix20
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix33
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix12
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix20
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix29
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/wrapper.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem (renamed from pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem)2
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override2
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix9
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix2
26 files changed, 239 insertions, 296 deletions
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 5aff02f081701..51fbfb7cc3709 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,44 +1,37 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , meson
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
 , libgtop
 , libgudev
-, libhandy
-, granite
-, gtk3
+, granite7
+, gtk4
+, packagekit
+, polkit
 , switchboard
 , udisks2
 , fwupd
 , appstream
+, elementary-settings-daemon
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
-  version = "6.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MJybc2yAchU6qMqkoRz45QdhR7bj/UFk2nyxcBivsHI=";
+    sha256 = "sha256-6b6nuOp4pEufHEmTraSfKpbtPuO3Z9hQJfvKuuyy7as=";
   };
 
-  patches = [
-    # Add support for AppStream 1.0
-    # https://github.com/elementary/switchboard-plug-about/pull/275
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-about/commit/72d7da13da2824812908276751fd3024db2dd0f8.patch";
-      hash = "sha256-R7oW3mL77/JNqxuMiqxtdMlHWMJgGRQBBzVeRiqx8PY=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -48,22 +41,20 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     appstream
+    elementary-settings-daemon # for gsettings schemas
     fwupd
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     libgtop
     libgudev
-    libhandy
+    packagekit
+    polkit
     switchboard
     udisks2
   ];
 
-  mesonFlags = [
-    # Does not play nice with the nix-snowflake logo
-    "-Dwallpaper=false"
-  ];
-
   passthru = {
     updateScript = nix-update-script { };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 79b1548c27f6d..6842a72f87314 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -6,23 +6,23 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, libhandy
-, granite
-, gtk3
+, granite7
+, gtk4
 , switchboard
 , flatpak
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-applications";
-  version = "7.0.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r2JKiTewsLQSZPriC0w72CFevRQXytrFcO2VfA9BKHA=";
+    sha256 = "sha256-dExMuPZJl/l7lRIY8kkmuRcQaPS39VBfE0dRrINLWx8=";
   };
 
   nativeBuildInputs = [
@@ -34,10 +34,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     flatpak
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
-    libhandy
     switchboard
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index e6e33d0494f06..bfe1dd1586c1a 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,15 +1,15 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , meson
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , bluez
 , switchboard
 , wingpanel-indicator-bluetooth
@@ -17,24 +17,15 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-bluetooth";
-  version = "2.3.6";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0n9fhi9g0ww341bjk6lpc5ppnl7qj9b3d63j9a7iqnap57bgks9y";
+    sha256 = "sha256-A55VCyQi+LBe3hxKp/xsVtXyPHuLPaCOi78Zv6MiwIw=";
   };
 
-  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";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -44,8 +35,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bluez
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     switchboard
     wingpanel-indicator-bluetooth # settings schema
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index abb6cfdfe62e7..5b874aca3d86c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,16 +1,16 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , meson
 , ninja
 , substituteAll
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , libxml2
 , switchboard
 , tzdata
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-datetime";
-  version = "2.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "10rqhxsqbl1xnz5n84d7m39c3vb71k153989xvyc55djia1wjx96";
+    sha256 = "sha256-PE1ig8p9H4MfipIpN3ubXAJNzLwGVW89adn+SF3rEuQ=";
   };
 
   patches = [
@@ -32,12 +32,6 @@ stdenv.mkDerivation rec {
       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 = [
@@ -49,8 +43,9 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 8f592b17f54ea..266e992806d49 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -6,22 +6,22 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, libhandy
-, granite
-, gtk3
+, granite7
+, gtk4
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-display";
-  version = "7.0.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-NgTpV/hbPttAsDY8Y9AsqdpjRlZqTy2rTu3v1jQZjBo=";
+    sha256 = "sha256-XeBctwLCeDM4AoHbqk6olc6rosBQDQ4uFm1Vv0stFVA=";
   };
 
   nativeBuildInputs = [
@@ -32,10 +32,10 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
-    libhandy
     switchboard
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index f6512a8a8d74d..e30a7faf726ca 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -7,12 +7,12 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
 , gnome-settings-daemon
-, granite
+, granite7
 , gsettings-desktop-schemas
-, gtk3
-, libhandy
+, gtk4
 , libxml2
 , libgnomekbd
 , libxklavier
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "3.2.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4LfS2F8pLbZw+HhnEVmZqbEaNCM96q+lqnf4sUBDVJI=";
+    sha256 = "sha256-jOUrotgtSRmSVsxOXEbQfIi92BlpIPye7maCsa+ssT8=";
   };
 
   patches = [
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit ibus onboard libgnomekbd;
+      inherit onboard libgnomekbd;
     })
   ];
 
@@ -53,12 +53,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gnome-settings-daemon # media-keys
-    granite
+    granite7
     gsettings-desktop-schemas
-    gtk3
+    gtk4
     ibus
+    libadwaita
     libgee
-    libhandy
     libxklavier
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
index 37f202e98b2ae..47f29161c4721 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
@@ -1,21 +1,8 @@
-diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
-index ba12d6db..b9263c1d 100644
---- a/src/Views/InputMethod.vala
-+++ b/src/Views/InputMethod.vala
-@@ -338,7 +338,7 @@ public class 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/src/Views/Behavior.vala b/src/Views/Behavior.vala
-index 8a89a0a4..a4f98668 100644
---- a/src/Views/Behavior.vala
-+++ b/src/Views/Behavior.vala
-@@ -270,7 +270,7 @@ public class Keyboard.Behaviour.Page : Gtk.Box {
+diff --git a/src/Behavior/Behavior.vala b/src/Behavior/Behavior.vala
+index bd461685..b6371096 100644
+--- a/src/Behavior/Behavior.vala
++++ b/src/Behavior/Behavior.vala
+@@ -252,7 +252,7 @@ public class Keyboard.Behaviour.Page : Gtk.Box {
  
          onscreen_keyboard_settings.clicked.connect (() => {
              try {
@@ -24,11 +11,11 @@ index 8a89a0a4..a4f98668 100644
                  appinfo.launch (null, null);
              } catch (Error e) {
                  critical ("Unable to launch onboard-settings: %s", e.message);
-diff --git a/src/Dialogs/AddLayoutDialog.vala b/src/Dialogs/AddLayoutDialog.vala
-index aa084295..a486b52a 100644
---- a/src/Dialogs/AddLayoutDialog.vala
-+++ b/src/Dialogs/AddLayoutDialog.vala
-@@ -197,7 +197,7 @@ public class Keyboard.LayoutPage.AddLayoutDialog : Granite.Dialog {
+diff --git a/src/Layout/Widgets/AddLayoutDialog.vala b/src/Layout/Widgets/AddLayoutDialog.vala
+index 25cc0fe9..b3e350bb 100644
+--- a/src/Layout/Widgets/AddLayoutDialog.vala
++++ b/src/Layout/Widgets/AddLayoutDialog.vala
+@@ -206,7 +206,7 @@ public class Keyboard.LayoutPage.AddLayoutDialog : Granite.Dialog {
          });
  
          keyboard_map_button.clicked.connect (() => {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/hide-install-unlisted-engines-button.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/hide-install-unlisted-engines-button.patch
index 6313dc30f6d0c..10510965de68a 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/hide-install-unlisted-engines-button.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/hide-install-unlisted-engines-button.patch
@@ -1,78 +1,13 @@
-diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
-index 478e6b02..5b25f2e9 100644
---- a/src/Widgets/InputMethod/AddEnginesPopover.vala
-+++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
-@@ -43,7 +43,6 @@ public class Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
-         };
-         scrolled.add (listbox);
+diff --git a/src/InputMethod/Widgets/AddEngineDialog.vala b/src/InputMethod/Widgets/AddEngineDialog.vala
+index 0a7f6013..a16904eb 100644
+--- a/src/InputMethod/Widgets/AddEngineDialog.vala
++++ b/src/InputMethod/Widgets/AddEngineDialog.vala
+@@ -70,8 +70,6 @@ public class Keyboard.InputMethodPage.AddEngineDialog : Granite.Dialog {
  
--        var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
+         get_content_area ().append (frame);
  
-         var cancel_button = new Gtk.Button.with_label (_("Cancel"));
- 
-@@ -55,10 +54,8 @@ public class Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
-             margin = 12,
-             spacing = 6
-         };
--        button_box.add (install_button);
-         button_box.add (cancel_button);
-         button_box.add (add_button);
--        button_box.set_child_secondary (install_button, true);
- 
-         var grid = new Gtk.Grid ();
-         grid.attach (search_entry, 0, 0);
-@@ -88,30 +85,6 @@ public class Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
-             listbox.invalidate_filter ();
-         });
- 
--        install_button.clicked.connect (() => {
--            popdown ();
--
--            var installer = UbuntuInstaller.get_default ();
--            var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
--            install_dialog.response.connect ((response_id) => {
--                if (response_id == Gtk.ResponseType.OK) {
--                    string engine_to_install = install_dialog.get_selected_engine_name ();
--                    install_dialog.destroy ();
--                    installer.install (engine_to_install);
+-        var install_button = add_button (_("Install Unlisted Engines…"), Gtk.ResponseType.OK);
 -
--                    var progress_dialog = new ProgressDialog () {
--                        transient_for = (Gtk.Window) get_toplevel ()
--                    };
--                    installer.progress_changed.connect ((p) => {
--                        progress_dialog.progress = p;
--                    });
--                    progress_dialog.run ();
--                } else {
--                    install_dialog.destroy ();
--                }
--            });
--            install_dialog.run ();
--        });
+         var cancel_button = add_button (_("Cancel"), Gtk.ResponseType.CANCEL);
  
-         cancel_button.clicked.connect (() => {
-             popdown ();
-diff --git a/src/meson.build b/src/meson.build
-index 83cde9f6..63d6a88a 100644
---- a/src/meson.build
-+++ b/src/meson.build
-@@ -19,7 +19,6 @@ plug_files = files(
-     'Widgets/Layout/Display.vala',
-     'Widgets/Layout/AdvancedSettingsPanel.vala',
-     'Widgets/Layout/AdvancedSettingsGrid.vala',
--    'Widgets/InputMethod/LanguagesRow.vala',
-     'Widgets/InputMethod/EnginesRow.vala',
-     'Widgets/InputMethod/AddEnginesPopover.vala',
-     'Views/Shortcuts.vala',
-@@ -35,11 +34,6 @@ plug_files = files(
-     'InputSources/SourceSettings.vala',
-     'InputSources/InputSource.vala',
-     'InputMethod/AddEnginesList.vala',
--    'InputMethod/Installer/UbuntuInstaller.vala',
--    'InputMethod/Installer/InstallList.vala',
--    'InputMethod/Installer/aptd-client.vala',
--    'Dialogs/ProgressDialog.vala',
--    'Dialogs/InstallEngineDialog.vala',
-     'Dialogs/ConflictDialog.vala',
-     'Dialogs/AddLayoutDialog.vala'
- )
+         var add_button = add_button (_("Add Engine"), Gtk.ResponseType.ACCEPT);
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 160319f0e1606..360e175e6b1b3 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -9,8 +9,8 @@
 , vala
 , libgee
 , libxml2
-, granite
-, gtk3
+, granite7
+, gtk4
 , switchboard
 , gnome-settings-daemon
 , glib
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
-  version = "7.0.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iXkNdUMHa0IF2FLn34/6G4w3m53GRZun8yzc8dxAg20=";
+    sha256 = "sha256-OXaCftfPPAIxDGOBKM4S7Bv//j0sWy/CsbqvugxSZ70=";
   };
 
   patches = [
@@ -46,8 +46,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gala
     glib
-    granite
-    gtk3
+    granite7
+    gtk4
     libgee
     libxml2
     gnome-settings-daemon
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 4561bcbc0696f..88fcef2ddef43 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -7,24 +7,25 @@
 , pkg-config
 , substituteAll
 , vala
+, libadwaita
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , networkmanager
 , networkmanagerapplet
-, libnma
+, libnma-gtk4
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
-  version = "2.5.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    hash = "sha256-Dd7sZ66iyfuoHeQYrhlx9G9g4ylGq1IBlkTF5zFlVBQ=";
+    hash = "sha256-N/S4oO7wwOMJZhQeqAeLBOMEsJtoKItxmGhsLHMuOoM=";
   };
 
   patches = [
@@ -42,11 +43,12 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     networkmanager
-    libnma
+    libnma-gtk4
     switchboard
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/fix-paths.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/fix-paths.patch
index b99f59fb2684a..48458ca226bb0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/fix-paths.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/fix-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/src/Views/VPNPage.vala b/src/Views/VPNPage.vala
-index ba9dc22..a12871a 100644
+index 21488d1e..f9915e5d 100644
 --- a/src/Views/VPNPage.vala
 +++ b/src/Views/VPNPage.vala
-@@ -264,7 +264,7 @@ public class Network.VPNPage : Network.Widgets.Page {
+@@ -279,7 +279,7 @@ public class Network.VPNPage : Network.Widgets.Page {
      private void try_connection_editor (string args) {
          try {
              var appinfo = AppInfo.create_from_commandline (
@@ -11,16 +11,38 @@ index ba9dc22..a12871a 100644
                  null,
                  GLib.AppInfoCreateFlags.NONE
              );
-diff --git a/src/Widgets/SettingsButton.vala b/src/Widgets/SettingsButton.vala
-index 5849b69..7bbd172 100644
---- a/src/Widgets/SettingsButton.vala
-+++ b/src/Widgets/SettingsButton.vala
-@@ -55,7 +55,7 @@ public class Network.Widgets.SettingsButton : Gtk.Button {
-         clicked.connect (() => {
+diff --git a/src/Widgets/Page.vala b/src/Widgets/Page.vala
+index cbcc8357..c6276d5a 100644
+--- a/src/Widgets/Page.vala
++++ b/src/Widgets/Page.vala
+@@ -189,7 +189,7 @@ namespace Network.Widgets {
+         protected void edit_connections () {
              try {
                  var appinfo = AppInfo.create_from_commandline (
--                    "nm-connection-editor %s".printf (args), null, AppInfoCreateFlags.NONE
-+                    "@networkmanagerapplet@/bin/nm-connection-editor %s".printf (args), null, AppInfoCreateFlags.NONE
+-                    "nm-connection-editor", null, AppInfoCreateFlags.NONE
++                    "@networkmanagerapplet@/bin/nm-connection-editor", null, AppInfoCreateFlags.NONE
+                 );
+                 appinfo.launch (null, null);
+             } catch (Error e) {
+@@ -200,7 +200,7 @@ namespace Network.Widgets {
+         protected void open_advanced_settings () {
+             try {
+                 var appinfo = AppInfo.create_from_commandline (
+-                    "nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
++                    "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
                  );
  
                  appinfo.launch (null, null);
+diff --git a/src/Widgets/VPN/VPNInfoDialog.vala b/src/Widgets/VPN/VPNInfoDialog.vala
+index e647c43b..44ce61c6 100644
+--- a/src/Widgets/VPN/VPNInfoDialog.vala
++++ b/src/Widgets/VPN/VPNInfoDialog.vala
+@@ -70,7 +70,7 @@ public class Network.Widgets.VPNInfoDialog : Granite.MessageDialog {
+             if (response == 1) {
+                 try {
+                     var appinfo = AppInfo.create_from_commandline (
+-                        "nm-connection-editor --edit=%s".printf (connection.get_uuid ()),
++                        "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (connection.get_uuid ()),
+                         null,
+                         GLib.AppInfoCreateFlags.NONE
+                     );
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 261b4cab164d9..c244592fd1cc4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -2,38 +2,29 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, fetchpatch
 , meson
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , switchboard
 , elementary-notifications
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-notifications";
-  version = "2.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0zzhgs8m1y7ab31hbn7v8g8k7rx51gqajl243zmysn86lfqk8iay";
+    sha256 = "sha256-53rpnp1RWdPofY00XWKiz8WDPC7RNMaGQFHBDzjsIt4=";
   };
 
-  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";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -43,8 +34,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     elementary-notifications
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 3514091f1ed98..eafe43e45b396 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -6,23 +6,23 @@
 , ninja
 , pkg-config
 , vala
-, evolution-data-server
+, evolution-data-server-gtk4
 , glib
-, granite
-, gtk3
-, libhandy
+, granite7
+, gtk4
+, libadwaita
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
-  version = "6.5.3";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qERXF7aymI2xbyqrD6rwUBiFNRnIiVllavSPgW0F8yk=";
+    sha256 = "sha256-OlivtKz3kE81CZ6KJgvVvqf0BSVJbh6C0F7O+/+4xZU=";
   };
 
   nativeBuildInputs = [
@@ -33,11 +33,11 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    evolution-data-server
+    evolution-data-server-gtk4
     glib
-    granite
-    gtk3
-    libhandy
+    granite7
+    gtk4
+    libadwaita
     switchboard
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index c8dd5428ed13f..b0ac3670ffc6c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -7,31 +7,30 @@
 , pkg-config
 , vala
 , glib
+, libadwaita
 , libgee
-, libhandy
-, granite
+, granite7
 , gexiv2
 , gnome-settings-daemon
 , elementary-settings-daemon
-, gtk3
-, gnome-desktop
+, gtk4
 , gala
 , wingpanel
-, elementary-dock
+, wingpanel-indicator-keyboard
+, wingpanel-quick-settings
 , switchboard
 , gettext
-, bamf
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
-  version = "6.5.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iq1QXC6eQ2w5j9RCxhTc0dApMfiDGcVuj8nocEFLFNk=";
+    sha256 = "sha256-Cv1Ldvk0+VzNsKnDFwDtLZ5ixUOGV+PWYAqN9KV9g/s=";
   };
 
   nativeBuildInputs = [
@@ -43,22 +42,28 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    bamf
-    elementary-dock
     elementary-settings-daemon
     gnome-settings-daemon
     gala
     gexiv2
     glib
-    gnome-desktop
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
-    libhandy
     switchboard
     wingpanel
+    wingpanel-indicator-keyboard # gsettings schemas
+    wingpanel-quick-settings # gsettings schemas
   ];
 
+  postPatch = ''
+    # Hide these before we land the new dock
+    substituteInPlace src/Views/Dock.vala \
+      --replace-fail "box.append (icon_box);" "" \
+      --replace-fail "box.append (hide_box);" ""
+  '';
+
   passthru = {
     updateScript = nix-update-script { };
   };
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 00b5b0db1ac3c..db147f7ff9da4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -6,10 +6,11 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
 , gnome-settings-daemon
-, granite
-, gtk3
+, granite7
+, gtk4
 , glib
 , dbus
 , polkit
@@ -19,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-power";
-  version = "2.7.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8Hu2RIgA0gSc+tLNjDqGS+b/HpbsOdR4otpY4UqNzKs=";
+    sha256 = "sha256-TNwq3APXXnKlYuJ8K/5KRREbGWTC25r1i+vqPJzf0v8=";
   };
 
   nativeBuildInputs = [
@@ -39,8 +40,9 @@ stdenv.mkDerivation rec {
     dbus
     gnome-settings-daemon
     glib
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     polkit
     switchboard
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 039d8e86b9772..85b6667990cfb 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -6,22 +6,23 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , cups
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-printers";
-  version = "2.2.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-RJYyCKTcTiHNhwZBrgyMacoKREg5+sfZ0oB4H+lL76Y=";
+    sha256 = "sha256-cPoqpx9G/wwzr4LbCg7+Law4Z1od2+R+uyCT5Jsnqs4=";
   };
 
   nativeBuildInputs = [
@@ -33,8 +34,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cups
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index cf53888edd50f..f407e720ff2c3 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -8,10 +8,10 @@
 , vala
 , elementary-settings-daemon
 , libgee
-, granite
+, granite7
 , gsettings-desktop-schemas
 , gala
-, gtk3
+, gtk4
 , glib
 , polkit
 , zeitgeist
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
-  version = "7.1.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2eQ89FpEMF85UmqVu9FJUvSlaVGmsrRBnhAW7oUiUqg=";
+    sha256 = "sha256-cL0kjG7IOlMOvqZj1Yx8E3xHWATnuDm08onpz091wmo=";
   };
 
   nativeBuildInputs = [
@@ -40,9 +40,9 @@ stdenv.mkDerivation rec {
     elementary-settings-daemon # settings schema
     gala
     glib
-    granite
+    granite7
     gsettings-desktop-schemas
-    gtk3
+    gtk4
     libgee
     polkit
     switchboard
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index ebac90995756b..0992ded96ad54 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -6,21 +6,22 @@
 , ninja
 , pkg-config
 , vala
+, elementary-bluetooth-daemon
 , libgee
-, granite
-, gtk3
+, granite7
+, gtk4
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sharing";
-  version = "2.1.6";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-izo30JjPkZtR6A/bfvZNmIE4Hq5hofWmxdUwBJYoSm8=";
+    sha256 = "sha256-0XfXxN1hI1Qak0J43lnNA/D0suqeKbYLjo+a+Peu6Us=";
   };
 
   nativeBuildInputs = [
@@ -31,8 +32,9 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    elementary-bluetooth-daemon
+    granite7
+    gtk4
     libgee
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index c5b221e82ebb7..423102152da47 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -6,24 +6,24 @@
 , ninja
 , pkg-config
 , vala
+, libadwaita
+, libcanberra
 , libgee
-, libhandy
-, granite
-, gtk3
+, granite7
+, gtk4
 , pulseaudio
-, libcanberra-gtk3
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.3.3";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-JXt/S+vNzuRaRC0DMX13Lxv+OoAPRQmSLv9fsvnkWY4=";
+    sha256 = "sha256-e7XjiqOxa0UtqUOfbsUiF497sOPgQd+lc93ARearXTw=";
   };
 
   nativeBuildInputs = [
@@ -34,11 +34,11 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    granite
-    gtk3
-    libcanberra-gtk3
+    granite7
+    gtk4
+    libadwaita
+    libcanberra
     libgee
-    libhandy
     pulseaudio
     switchboard
   ];
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
index 92befc5913fa7..67088c38635c9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
@@ -7,8 +7,9 @@
 , pkg-config
 , vala
 , glib
-, granite
-, gtk3
+, granite7
+, gtk4
+, libadwaita
 , libgee
 , libgudev
 , libwacom
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-wacom";
-  version = "1.0.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+E+MTIi2Dvv7TvzYEzudeIqlDcP8VP61eBh/PQz9SWI=";
+    sha256 = "sha256-Ct+1n/GmrS9xi8QIJDWKfwNL1kvNz3o+0tsxLZtwjmI=";
   };
 
   nativeBuildInputs = [
@@ -36,8 +37,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    granite
-    gtk3
+    granite7
+    gtk4
+    libadwaita
     libgee
     libgudev
     libwacom
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index a8a0c34853dca..28881c12d63ba 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -6,23 +6,25 @@
 , meson
 , python3
 , ninja
+, sassc
 , vala
-, gtk3
+, glib
+, gtk4
+, libadwaita
 , libgee
-, libhandy
-, granite
-, wrapGAppsHook3
+, granite7
+, wrapGAppsHook4
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
-  version = "6.0.2";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2c+anQ17lrdFy+cbjoYY94EFxYUcS+4mZrwbrLohfUg=";
+    sha256 = "sha256-qSqZQcE/g9oOHI8OAxMACSIFXrJMgSFLraAbTHjggLY=";
   };
 
   nativeBuildInputs = [
@@ -30,15 +32,18 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     python3
+    sassc
     vala
-    wrapGAppsHook3
+    wrapGAppsHook4
   ];
 
-  buildInputs = [
-    granite
-    gtk3
+  propagatedBuildInputs = [
+    # Required by switchboard-3.pc.
+    glib
+    granite7
+    gtk4
+    libadwaita
     libgee
-    libhandy
   ];
 
   patches = [
@@ -60,6 +65,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
-    mainProgram = "io.elementary.switchboard";
+    mainProgram = "io.elementary.settings";
   };
 }
diff --git a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
index 2702b438f0ec2..b27f813540970 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
@@ -1,4 +1,4 @@
-{ wrapGAppsHook3
+{ wrapGAppsHook4
 , glib
 , lib
 , stdenv
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     glib
-    wrapGAppsHook3
+    wrapGAppsHook4
   ];
 
   buildInputs = lib.forEach selectedPlugs (x: x.buildInputs)
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      --set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard"
+      --set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard-3"
     )
   '';
 
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem
index 312c35d9bf00f..470360a9f0bab 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.settings.dockitem
@@ -1,2 +1,2 @@
 [PlankDockItemPreferences]
-Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop
+Launcher=file:///run/current-system/sw/share/applications/io.elementary.settings.desktop
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
index 8f2ba70ffb2a3..cc3e5c66958b1 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override
@@ -1,2 +1,2 @@
 [net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','io.elementary.files.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+dock-items=['gala-multitaskingview.dockitem','io.elementary.files.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.settings.dockitem','io.elementary.appcenter.dockitem']
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index 2a13ff787c613..9da4e8c2927aa 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , substituteAll
 , meson
@@ -40,6 +41,14 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       bc = "${bc}/bin/bc";
     })
+
+    # Build against switchboard-3
+    # https://github.com/elementary/applications-menu/pull/580
+    (fetchpatch {
+      url = "https://github.com/elementary/applications-menu/commit/9191ee5a2ee33477515d331b96945d51a13074a9.patch";
+      excludes = [ ".github/workflows/githubci.yml" ];
+      hash = "sha256-/LOIEOg9fVfKv/BWFsP1VyuUOIFYem9Gk+3e49M2b9E=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
index da6d61cd1337f..1642bffb44baa 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(
       --set WINGPANEL_INDICATORS_PATH "$out/lib/wingpanel"
-      --set SWITCHBOARD_PLUGS_PATH "${switchboard-with-plugs}/lib/switchboard"
+      --set SWITCHBOARD_PLUGS_PATH "${switchboard-with-plugs}/lib/switchboard-3"
     )
   '';