about summary refs log tree commit diff
path: root/pkgs/desktops/pantheon/apps
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/pantheon/apps')
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix9
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-feedback/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch35
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch22
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/sideload/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch700
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix2
35 files changed, 794 insertions, 66 deletions
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index 2432389383864..18ee7bdd844a2 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1bwkjxl4k49hvy88llif82hdancda9692vjwkw4bxy2cbz8444zx";
+    sha256 = "sha256-8r0DlmG8xlCQ1uFHZQjXG2ls4VBrsRzrVY8Ey3/OYAU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 058148e07c822..0695b6e4006ee 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1csxsr2c8qvl97xz9ahwn91z095nzgr0i1mbcb1spljll2sr9lkj";
+    sha256 = "sha256-ctKUtaBU0qvDYquGCPL7tiTwQ7IcqvT7SXRjxETWXbM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index cdb5e860650c2..e8f0e37620e5d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.0.6";
+  version = "5.1.0";
 
   repoName = "calendar";
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0lmadk4yzf1kiiqshwqcxzcyia1haq1avv6pyzvsaywxhqwdsini";
+    sha256 = "sha256-b72BmChl/Ql0ljLRcPMNbJcOV4cVqz5D2j+5BGUi4Go=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 9874d87eae9fa..e7bb60a062d8f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "13jg224h2436swd6kdkfs22icg0ja9lshvxwg5bqnb5fshspkjba";
+    sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 635b5cfc73526..3454ff086c9a8 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "158zrzyyy507rxcbsb5am9768zbakpwrl61ixab57zla7z51l0g0";
+    sha256 = "sha256-4AEayj+K/lOW6jEYmvmdan1kTqqqLL1YzwcU7/3PH5U=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 1e3db99bab52c..7cc34f8c82c98 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , vala
 , atk
 , cairo
@@ -40,6 +41,14 @@ stdenv.mkDerivation rec {
     sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
   };
 
+  patches = [
+    # Fix double includedir path in plank.pc
+    (fetchpatch {
+      url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
+      sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index 3b257b0812f00..29b897012e7d6 100644
--- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rc4ifs4hd4cj0v028bzc45v64pwx21xylwrhb20jpw61ainfi8s";
+    sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
new file mode 100644
index 0000000000000..9bcedac3f035f
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
@@ -0,0 +1,35 @@
+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/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index f6215e5025b2a..9433edc9ce5f4 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -17,7 +17,7 @@
 , libnotify
 , libunity
 , pango
-, plank
+, elementary-dock
 , bamf
 , sqlite
 , libdbusmenu-gtk3
@@ -31,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.4.4";
+  version = "4.5.0";
 
   repoName = "files";
 
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1hsh9kg30l90r2aqrrap1nfmgjf0la8mfd8h4xm6d7acailcnhmb";
+    sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
   };
 
   passthru = {
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-icon-theme
     granite
     gtk3
@@ -75,13 +76,12 @@ stdenv.mkDerivation rec {
     libnotify
     libunity
     pango
-    plank
     sqlite
     zeitgeist
   ];
 
   patches = [
-    ./hardcode-gsettings.patch
+    ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
deleted file mode 100644
index 3191f4e3cb2bf..0000000000000
--- a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
-index cb7c3c49..8b1899d1 100644
---- a/filechooser-module/FileChooserDialog.vala
-+++ b/filechooser-module/FileChooserDialog.vala
-@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object {
-         chooser_dialog.deletable = false;
-         chooser_dialog.local_only = false;
- 
--        var settings = 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 settings = new Settings.full (preferences_schema, null, null);
-+
-         is_single_click = settings.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 ();
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 8849965eddecb..0e34b29f1de0f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0cb0mwsp5w2bmjq8ap9mi0jvaqr9fgq00gfrkj0mzb5x5c26hrnw";
+    sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 252791df1d5f8..d3d931e44fccb 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09jjic165rmprc2cszsgj2m3j3f5p8v9pxx5mj66a0gj3ar3hfbd";
+    sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 611e683491fc8..da67ac0aed841 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "179ib2ldvhdx3hks5lqyx2cvlkk3j1qccvlfwh2yd2bl79zpk3ma";
+    sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index c7c1c8780ed6c..ddd5c0a0eac3b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "119iwmzbpkj4nmxinqfsh73lx23g8gbl6ha6wc4mc4fq9hpnc9c2";
+    sha256 = "sha256-giVmL0zYEVYJ40ZBQ9dDb4hOx4HaYRt7tUTOu37lMYU=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index 03b730cecac59..f51c6c0090d3e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "07dwhshdc78wia0fsbzz6iv651znzzasfil91w60v29kgc4s2b1i";
+    sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix
index 05f0f40db4a74..2fc5d560da0f6 100644
--- a/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq";
+    sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index d7a50fc7e5cc8..9937edc22b5ba 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0g8lhdwv9g16kjn7yxnl6x4rscjl2206ljfnghpxc4b5lwhqxxnw";
+    sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 3c810a5f4f321..86db11a3dc312 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1zs2qmglh85ami07dnlq3lfwl5ikc4abvz94a35k6fhfs703lay2";
+    sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index e5f423bea8a7b..b5a8cc7665161 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wzm390g8di4ks3w637a0wl4j7g89j321xkz5msd9058gksvaaxs";
+    sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 425d278587836..ab1e0b5280a81 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ksxx45mm0cvnb5jphyxsf843rn2rgb0yxv9j0ydh2xp4qgvvyva";
+    sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index ee714e1962e53..95a454b36f435 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kkd75kp24zq84wfmc00brqxximfsi4sqyx8a7rbl7zaspf182xa";
+    sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 568d9bd24c8db..490c8c57a67c9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ijzm91gycx8iaf3sd8i07b5899gbryxd6klzjh122d952wsyfcs";
+    sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
new file mode 100644
index 0000000000000..42900c3806277
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
@@ -0,0 +1,700 @@
+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
+Subject: [PATCH] Remove Install Unlisted Engines function
+
+https://github.com/elementary/switchboard-plug-keyboard/issues/324
+---
+ 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 +-
+ 8 files changed, 591 deletions(-)
+ delete mode 100644 src/Dialogs/InstallEngineDialog.vala
+ delete mode 100644 src/Dialogs/ProgressDialog.vala
+ delete mode 100644 src/InputMethod/Installer/InstallList.vala
+ delete mode 100644 src/InputMethod/Installer/UbuntuInstaller.vala
+ delete mode 100644 src/InputMethod/Installer/aptd-client.vala
+ delete mode 100644 src/Widgets/InputMethod/LanguagesRow.vala
+
+diff --git a/src/Dialogs/InstallEngineDialog.vala b/src/Dialogs/InstallEngineDialog.vala
+deleted file mode 100644
+index ffba3a8..0000000
+--- a/src/Dialogs/InstallEngineDialog.vala
++++ /dev/null
+@@ -1,140 +0,0 @@
+-/*
+-* Copyright 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.InstallEngineDialog : Granite.MessageDialog {
+-    private InstallList? engines_filter;
+-
+-    public InstallEngineDialog (Gtk.Window parent) {
+-        Object (
+-            primary_text: _("Choose an engine to install"),
+-            secondary_text: _("Select an engine from the list to install and use."),
+-            image_icon: new ThemedIcon ("extension"),
+-            transient_for: parent,
+-            buttons: Gtk.ButtonsType.CANCEL
+-        );
+-    }
+-
+-    construct {
+-        var languages_list = new Gtk.ListBox () {
+-            activate_on_single_click = true,
+-            expand = true,
+-            selection_mode = Gtk.SelectionMode.NONE
+-        };
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            var lang = new LanguagesRow (language);
+-            languages_list.add (lang);
+-        }
+-
+-        var back_button = new Gtk.Button.with_label (_("Languages")) {
+-            halign = Gtk.Align.START,
+-            margin = 6
+-        };
+-        back_button.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON);
+-
+-        var language_title = new Gtk.Label ("");
+-
+-        var language_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+-        language_header.pack_start (back_button);
+-        language_header.set_center_widget (language_title);
+-
+-        var listbox = new Gtk.ListBox () {
+-            expand = true
+-        };
+-        listbox.set_filter_func (filter_function);
+-        listbox.set_sort_func (sort_function);
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            foreach (var engine in language.get_components ()) {
+-                listbox.add (new EnginesRow (engine));
+-            }
+-        }
+-
+-        var scrolled = new Gtk.ScrolledWindow (null, null);
+-        scrolled.add (listbox);
+-
+-        var engine_list_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        engine_list_grid.get_style_context ().add_class (Gtk.STYLE_CLASS_VIEW);
+-        engine_list_grid.add (language_header);
+-        engine_list_grid.add (new Gtk.Separator (Gtk.Orientation.HORIZONTAL));
+-        engine_list_grid.add (scrolled);
+-
+-        var stack = new Gtk.Stack () {
+-            height_request = 200,
+-            width_request = 300,
+-            transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
+-        };
+-        stack.add (languages_list);
+-        stack.add (engine_list_grid);
+-
+-        var frame = new Gtk.Frame (null);
+-        frame.add (stack);
+-
+-        custom_bin.add (frame);
+-        custom_bin.show_all ();
+-
+-        var install_button = add_button (_("Install"), Gtk.ResponseType.OK);
+-        install_button.sensitive = false;
+-        install_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
+-
+-        languages_list.row_activated.connect ((row) => {
+-            stack.visible_child = engine_list_grid;
+-            language_title.label = ((LanguagesRow) row).language.get_name ();
+-            engines_filter = ((LanguagesRow) row).language;
+-            listbox.invalidate_filter ();
+-            var adjustment = scrolled.get_vadjustment ();
+-            adjustment.set_value (adjustment.lower);
+-        });
+-
+-        back_button.clicked.connect (() => {
+-            stack.visible_child = languages_list;
+-            install_button.sensitive = false;
+-        });
+-
+-        listbox.selected_rows_changed.connect (() => {
+-            foreach (var engines_row in listbox.get_children ()) {
+-                ((EnginesRow) engines_row).selected = false;
+-            }
+-
+-            ((EnginesRow) listbox.get_selected_row ()).selected = true;
+-            install_button.sensitive = true;
+-        });
+-
+-        response.connect ((response_id) => {
+-            if (response_id == Gtk.ResponseType.OK) {
+-                string engine_to_install = ((EnginesRow) listbox.get_selected_row ()).engine_name;
+-                UbuntuInstaller.get_default ().install (engine_to_install);
+-            }
+-        });
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private bool filter_function (Gtk.ListBoxRow row) {
+-        if (InstallList.get_language_from_engine_name (((EnginesRow) row).engine_name) == engines_filter) {
+-            return true;
+-        }
+-
+-        return false;
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) {
+-        return ((EnginesRow) row1).engine_name.collate (((EnginesRow) row1).engine_name);
+-    }
+-}
+diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
+deleted file mode 100644
+index f110aca..0000000
+--- a/src/Dialogs/ProgressDialog.vala
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
+-    public int progress {
+-        set {
+-            if (value >= 100) {
+-                destroy ();
+-            }
+-
+-            progress_bar.fraction = value / 100.0;
+-        }
+-    }
+-
+-    private Gtk.ProgressBar progress_bar;
+-
+-    construct {
+-        var image = new Gtk.Image.from_icon_name ("preferences-desktop-locale", Gtk.IconSize.DIALOG) {
+-            valign = Gtk.Align.START
+-        };
+-
+-        var primary_label = new Gtk.Label (null) {
+-            max_width_chars = 50,
+-            wrap = true,
+-            xalign = 0
+-        };
+-        primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL);
+-
+-        unowned UbuntuInstaller installer = UbuntuInstaller.get_default ();
+-        switch (installer.transaction_mode) {
+-            case UbuntuInstaller.TransactionMode.INSTALL:
+-                primary_label.label = _("Installing %s").printf (installer.engine_to_address);
+-                break;
+-            case UbuntuInstaller.TransactionMode.REMOVE:
+-                primary_label.label = _("Removing %s").printf (installer.engine_to_address);
+-                break;
+-        }
+-
+-        progress_bar = new Gtk.ProgressBar () {
+-            hexpand = true,
+-            valign = Gtk.Align.START,
+-            width_request = 300
+-        };
+-
+-        var cancel_button = (Gtk.Button) add_button (_("Cancel"), 0);
+-
+-        installer.bind_property ("install-cancellable", cancel_button, "sensitive");
+-
+-        var grid = new Gtk.Grid () {
+-            column_spacing = 12,
+-            margin = 6,
+-            row_spacing = 6
+-        };
+-        grid.attach (image, 0, 0, 1, 2);
+-        grid.attach (primary_label, 1, 0);
+-        grid.attach (progress_bar, 1, 1);
+-        grid.show_all ();
+-
+-        border_width = 6;
+-        deletable = false;
+-        get_content_area ().add (grid);
+-
+-        cancel_button.clicked.connect (() => {
+-            installer.cancel_install ();
+-            destroy ();
+-        });
+-    }
+-}
+diff --git a/src/InputMethod/Installer/InstallList.vala b/src/InputMethod/Installer/InstallList.vala
+deleted file mode 100644
+index 275c302..0000000
+--- a/src/InputMethod/Installer/InstallList.vala
++++ /dev/null
+@@ -1,73 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public enum Pantheon.Keyboard.InputMethodPage.InstallList {
+-    JA,
+-    KO,
+-    ZH;
+-
+-    public string get_name () {
+-        switch (this) {
+-            case JA:
+-                return _("Japanese");
+-            case KO:
+-                return _("Korean");
+-            case ZH:
+-                return _("Chinese");
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public string[] get_components () {
+-        switch (this) {
+-            case JA:
+-                return { "ibus-anthy", "ibus-mozc", "ibus-skk" };
+-            case KO:
+-                return { "ibus-hangul" };
+-            case ZH:
+-                return { "ibus-cangjie", "ibus-chewing", "ibus-pinyin" };
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList get_language_from_engine_name (string engine_name) {
+-        switch (engine_name) {
+-            case "ibus-anthy":
+-                return JA;
+-            case "ibus-mozc":
+-                return JA;
+-            case "ibus-skk":
+-                return JA;
+-            case "ibus-hangul":
+-                return KO;
+-            case "ibus-cangjie":
+-                return ZH;
+-            case "ibus-chewing":
+-                return ZH;
+-            case "ibus-pinyin":
+-                return ZH;
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList[] get_all () {
+-        return { JA, KO, ZH };
+-    }
+-}
+diff --git a/src/InputMethod/Installer/UbuntuInstaller.vala b/src/InputMethod/Installer/UbuntuInstaller.vala
+deleted file mode 100644
+index b65aa1f..0000000
+--- a/src/InputMethod/Installer/UbuntuInstaller.vala
++++ /dev/null
+@@ -1,142 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.UbuntuInstaller : Object {
+-    private AptdProxy aptd;
+-    private AptdTransactionProxy proxy;
+-
+-    public bool install_cancellable { get; private set; }
+-    public TransactionMode transaction_mode { get; private set; }
+-    public string engine_to_address { get; private set; }
+-
+-    public signal void install_finished (string langcode);
+-    public signal void install_failed ();
+-    public signal void remove_finished (string langcode);
+-    public signal void progress_changed (int progress);
+-
+-    public enum TransactionMode {
+-        INSTALL,
+-        REMOVE,
+-        INSTALL_MISSING,
+-    }
+-
+-    Gee.HashMap<string, string> transactions;
+-
+-    private static GLib.Once<UbuntuInstaller> instance;
+-    public static unowned UbuntuInstaller get_default () {
+-        return instance.once (() => {
+-            return new UbuntuInstaller ();
+-        });
+-    }
+-
+-    private UbuntuInstaller () {}
+-
+-    construct {
+-        transactions = new Gee.HashMap<string, string> ();
+-        aptd = new AptdProxy ();
+-
+-        try {
+-            aptd.connect_to_aptd ();
+-        } catch (Error e) {
+-            warning ("Could not connect to APT daemon");
+-        }
+-    }
+-
+-    public void install (string engine_name) {
+-        transaction_mode = TransactionMode.INSTALL;
+-        engine_to_address = engine_name;
+-        string[] packages = {};
+-        packages += engine_to_address;
+-
+-        foreach (var packet in packages) {
+-            message ("Packet: %s", packet);
+-        }
+-
+-        aptd.install_packages.begin (packages, (obj, res) => {
+-            try {
+-                var transaction_id = aptd.install_packages.end (res);
+-                transactions.@set (transaction_id, "i-" + engine_name);
+-                run_transaction (transaction_id);
+-            } catch (Error e) {
+-                warning ("Could not queue downloads: %s", e.message);
+-            }
+-        });
+-    }
+-
+-    public void cancel_install () {
+-        if (install_cancellable) {
+-            warning ("cancel_install");
+-            try {
+-                proxy.cancel ();
+-            } catch (Error e) {
+-                warning ("cannot cancel installation:%s", e.message);
+-            }
+-        }
+-    }
+-
+-    private void run_transaction (string transaction_id) {
+-        proxy = new AptdTransactionProxy ();
+-        proxy.finished.connect (() => {
+-            on_apt_finshed (transaction_id, true);
+-        });
+-
+-        proxy.property_changed.connect ((prop, val) => {
+-            if (prop == "Progress") {
+-                progress_changed ((int) val.get_int32 ());
+-            }
+-
+-            if (prop == "Cancellable") {
+-                install_cancellable = val.get_boolean ();
+-            }
+-        });
+-
+-        try {
+-            proxy.connect_to_aptd (transaction_id);
+-            proxy.simulate ();
+-
+-            proxy.run ();
+-        } catch (Error e) {
+-            on_apt_finshed (transaction_id, false);
+-            warning ("Could no run transaction: %s", e.message);
+-        }
+-    }
+-
+-    private void on_apt_finshed (string id, bool success) {
+-        if (!success) {
+-            install_failed ();
+-            transactions.unset (id);
+-            return;
+-        }
+-
+-        if (!transactions.has_key (id)) { //transaction already removed
+-            return;
+-        }
+-
+-        var action = transactions.get (id);
+-        var lang = action[2:action.length];
+-
+-        message ("ID %s -> %s", id, success ? "success" : "failed");
+-
+-        if (action[0:1] == "i") { // install
+-            install_finished (lang);
+-        } else {
+-            remove_finished (lang);
+-        }
+-
+-        transactions.unset (id);
+-    }
+-}
+diff --git a/src/InputMethod/Installer/aptd-client.vala b/src/InputMethod/Installer/aptd-client.vala
+deleted file mode 100644
+index ee5c3f5..0000000
+--- a/src/InputMethod/Installer/aptd-client.vala
++++ /dev/null
+@@ -1,93 +0,0 @@
+-/*
+- * Copyright (C) 2012 Canonical Ltd
+- *
+- * This program is free software: you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 3 as
+- * published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by Pawel Stolowski <pawel.stolowski@canonical.com>
+- */
+-
+-namespace Pantheon.Keyboard.InputMethodPage {
+-    private const string APTD_DBUS_NAME = "org.debian.apt";
+-    private const string APTD_DBUS_PATH = "/org/debian/apt";
+-
+-    /**
+-    * Expose a subset of org.debian.apt interfaces -- only what's needed by applications lens.
+-    */
+-    [DBus (name = "org.debian.apt")]
+-    public interface AptdService : GLib.Object {
+-        public abstract async string install_packages (string[] packages) throws GLib.Error;
+-        public abstract async string remove_packages (string[] packages) throws GLib.Error;
+-        public abstract async void quit () throws GLib.Error;
+-    }
+-
+-    [DBus (name = "org.debian.apt.transaction")]
+-    public interface AptdTransactionService : GLib.Object {
+-        public abstract void run () throws GLib.Error;
+-        public abstract void simulate () throws GLib.Error;
+-        public abstract void cancel () throws GLib.Error;
+-        public signal void finished (string exit_state);
+-        public signal void property_changed (string property, Variant val);
+-    }
+-
+-    public class AptdProxy : GLib.Object {
+-        private AptdService _aptd_service;
+-
+-        public void connect_to_aptd () throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, APTD_DBUS_PATH);
+-        }
+-
+-        public async string install_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.install_packages (packages);
+-            return res;
+-        }
+-
+-        public async string remove_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.remove_packages (packages);
+-            return res;
+-        }
+-
+-        public async void quit () throws GLib.Error {
+-            yield _aptd_service.quit ();
+-        }
+-    }
+-
+-    public class AptdTransactionProxy : GLib.Object {
+-        public signal void finished (string transaction_id);
+-        public signal void property_changed (string property, Variant variant);
+-
+-        private AptdTransactionService _aptd_service;
+-
+-        public void connect_to_aptd (string transaction_id) throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, transaction_id);
+-            _aptd_service.finished.connect ((exit_state) => {
+-                debug ("aptd transaction finished: %s\n", exit_state);
+-                finished (transaction_id);
+-            });
+-            _aptd_service.property_changed.connect ((prop, variant) => {
+-                property_changed (prop, variant);
+-            });
+-        }
+-
+-        public void simulate () throws GLib.Error {
+-            _aptd_service.simulate ();
+-        }
+-
+-        public void run () throws GLib.Error {
+-            _aptd_service.run ();
+-        }
+-
+-        public void cancel () throws GLib.Error {
+-            _aptd_service.cancel ();
+-        }
+-    }
+-}
+diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
+index 46e005d..6b56c6b 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 {
+         };
+         scrolled.add (listbox);
+ 
+-        var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
+-
+         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 {
+             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);
+@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             listbox.invalidate_filter ();
+         });
+ 
+-        install_button.clicked.connect (() => {
+-            popdown ();
+-
+-            var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
+-            install_dialog.run ();
+-            install_dialog.destroy ();
+-        });
+-
+         cancel_button.clicked.connect (() => {
+             popdown ();
+         });
+diff --git a/src/Widgets/InputMethod/LanguagesRow.vala b/src/Widgets/InputMethod/LanguagesRow.vala
+deleted file mode 100644
+index dc064ae..0000000
+--- a/src/Widgets/InputMethod/LanguagesRow.vala
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.LanguagesRow : Gtk.ListBoxRow {
+-    public InstallList language { get; construct; }
+-
+-    public LanguagesRow (InstallList language) {
+-        Object (language: language);
+-    }
+-
+-    construct {
+-        var label = new Gtk.Label (language.get_name ()) {
+-            halign = Gtk.Align.START,
+-            hexpand = true
+-        };
+-
+-        var caret = new Gtk.Image.from_icon_name ("pan-end-symbolic", Gtk.IconSize.MENU);
+-
+-        var grid = new Gtk.Grid () {
+-            margin = 3,
+-            margin_start = 6,
+-            margin_end = 6
+-        };
+-        grid.add (label);
+-        grid.add (caret);
+-
+-        add (grid);
+-    }
+-}
+diff --git a/src/meson.build b/src/meson.build
+index 28f07c1..a515419 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -16,7 +16,6 @@ plug_files = files(
+     'Widgets/Shortcuts/CustomTree.vala',
+     'Widgets/Layout/Display.vala',
+     'Widgets/Layout/AddLayoutPopover.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',
+     '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',
+ )
+ 
+
+base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
+-- 
+git-series 0.9.1
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 5f55edb77c7dc..d1180f37ed066 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -15,20 +15,25 @@
 , libgnomekbd
 , libxklavier
 , xorg
+, ibus
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.3.6";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "08zpw7ygrqmwwznvxkf4xbrgwbjkbwc95sw1ikikg3143ql9qclp";
+    sha256 = "sha256-iuv5NZ7v+rXyFsKB/PvGa/7hm9MIV8E6JnTzEGROlhM=";
   };
 
+  patches = [
+    ./0001-Remove-Install-Unlisted-Engines-function.patch
+  ];
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
@@ -46,6 +51,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
+    ibus
     libgee
     libgnomekbd
     libxklavier
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 27c7db368da06..78a74c59e9ed9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0jfykvdpjlymnks8mhlv9957ybq7srqqq23isjvh0jvc2r3cd7sq";
+    sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index f6a22af75d7f3..2ce9aad5666e0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1k7925qrgjvh1x8ijhkh3p0z4ypgmx3lg21ygr8qhlp7xr3zm8d5";
+    sha256 = "sha256-PYgewxBblhOfOJQSeRaq8xD7qZ3083EvgUjpi92FqyI=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 09c61e1625da8..37f69a3cc1410 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02amm2j6blpfc16p5rm64p8shnppzsg49hz4v196mli5xr1r441h";
+    sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index cbe65e68a6110..16e8c7e66c177 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9";
+    sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
   };
 
   passthru = {
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 af65327fb82a2..d877d43d1378d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, nix-update-script, pantheon, meson, ninja, pkgconfig, vala, glib
 , libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
-, gala, wingpanel, plank, switchboard, gettext, bamf, fetchpatch }:
+, gala, wingpanel, elementary-dock, switchboard, gettext, bamf, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1nnsv745inbdqk3xnbcaqmj87vr3kzh5hazbh8v3ib33cpi7wy88";
+    sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
   };
 
   passthru = {
@@ -29,17 +29,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-settings-daemon
+    gala
     gexiv2
     glib
     gnome-desktop
     granite
     gtk3
     libgee
-    gala
-    wingpanel
-    plank
     switchboard
+    wingpanel
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 1405fb698d130..0549a797dbcb1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0zbqv3bnwxapp9b442fjg9fizxmndva8vby5qicx0yy7l68in1xk";
+    sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index fcb1f26eb9666..2e8f05d8416d4 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jxpq4rvkrii85imnipbw44zjinq1sc0cq39lssprzfd4g5hjw5n";
+    sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
   };
 
   passthru = {
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 df62a0b34b6ab..fd2a24db3e8a1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0177lsly8qpqsfas3qc263as77h2k35avhw9708h1v8bllb3l2sb";
+    sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 515660739d393..47c4928c08b56 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1awkz16nydlgi8a2dd6agfnd3qwl2qsvv6wnn8bhaz1kbv1v9kpw";
+    sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 6f89331593c33..cab47c94cb997 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kwd3cj6kk5dnmhcrmf13adqrhhjv2j6j2i78cpqbi9yv2h7sv9y";
+    sha256 = "sha256-ITgxLZSB4zhSaFKX7Vbf89DGI8ibIcGEQTtLjcGN2tA=";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 9901879005354..1327c4739eb79 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "12xir2gssr0x21sgm5m620bvd6b6y8dcm26cj4s1wsn8qb59jx9p";
+    sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
   };
 
   passthru = {