about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/cinnamon/nemo/default.nix1
-rw-r--r--pkgs/desktops/cinnamon/pix/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/xapp/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/xreader/default.nix4
-rw-r--r--pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix3
-rw-r--r--pkgs/desktops/deepin/core/dde-dock/default.nix1
-rw-r--r--pkgs/desktops/deepin/library/dtk6systemsettings/default.nix1
-rw-r--r--pkgs/desktops/deepin/library/dtkwidget/default.nix1
-rw-r--r--pkgs/desktops/gnome/apps/file-roller/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gdm/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-color-manager/default.nix3
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix32
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix9
-rw-r--r--pkgs/desktops/gnome/extensions/gsconnect/default.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix1
-rw-r--r--pkgs/desktops/gnustep/make/default.nix4
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix142
-rw-r--r--pkgs/desktops/lomiri/default.nix1
-rw-r--r--pkgs/desktops/lomiri/services/biometryd/default.nix1
-rw-r--r--pkgs/desktops/lomiri/services/telephony-service/default.nix2
-rw-r--r--pkgs/desktops/lxqt/default.nix5
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix2
-rw-r--r--pkgs/desktops/lxqt/qtermwidget/default.nix8
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-mail/default.nix11
-rw-r--r--pkgs/desktops/xfce/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix37
29 files changed, 265 insertions, 66 deletions
diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix
index 482c9b6b4193a..fbc12c13dce01 100644
--- a/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/pkgs/desktops/cinnamon/nemo/default.nix
@@ -1,5 +1,4 @@
 { fetchFromGitHub
-, fetchpatch
 , glib
 , gobject-introspection
 , meson
diff --git a/pkgs/desktops/cinnamon/pix/default.nix b/pkgs/desktops/cinnamon/pix/default.nix
index 45b8da1760ba8..a0ef67a9302b1 100644
--- a/pkgs/desktops/cinnamon/pix/default.nix
+++ b/pkgs/desktops/cinnamon/pix/default.nix
@@ -7,6 +7,7 @@
 , exiv2
 , libheif
 , libjpeg
+, libjxl
 , libtiff
 , gst_all_1
 , libraw
@@ -30,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pix";
-  version = "3.2.2";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-tRndJjUw/k5mJPFTBMfW88Mvp2wZtC3RUzyS8bBO1jc=";
+    sha256 = "sha256-XXt5tq+Zfm6fqorsFAWV3guii6gTK5JRgw26GkNkoos=";
   };
 
   nativeBuildInputs = [
@@ -65,6 +66,7 @@ stdenv.mkDerivation rec {
     lcms2
     libheif
     libjpeg
+    libjxl
     libraw
     librsvg
     libsecret
diff --git a/pkgs/desktops/cinnamon/xapp/default.nix b/pkgs/desktops/cinnamon/xapp/default.nix
index 14b706fbd4c37..b55830b56c45b 100644
--- a/pkgs/desktops/cinnamon/xapp/default.nix
+++ b/pkgs/desktops/cinnamon/xapp/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xapp";
-  version = "2.8.2";
+  version = "2.8.3";
 
   outputs = [ "out" "dev" ];
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-n600mc8/4+bYUtYaHUnmr90ThVkngcu8Ft02iuSrWWQ=";
+    hash = "sha256-uWBHCsKcW0vP2HYHQWXPrCSr5NsN2nYWAzBByxJBVrY=";
   };
 
   # Recommended by upstream, which enables the build of xapp-debug.
diff --git a/pkgs/desktops/cinnamon/xreader/default.nix b/pkgs/desktops/cinnamon/xreader/default.nix
index 05a4aedfb6ed6..19e8ced87c90c 100644
--- a/pkgs/desktops/cinnamon/xreader/default.nix
+++ b/pkgs/desktops/cinnamon/xreader/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xreader";
-  version = "4.0.2";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-X5XMkO2JFceLyH7KEp8mnDltdjGpCT4kVGdcpGRpUJI=";
+    sha256 = "sha256-MWSAyXQcE8cDdzJISFV7UHheHX+7zF1Ula+LGicvUPM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
index d9f810c951846..003e46a3817b0 100644
--- a/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
@@ -1,11 +1,9 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , wrapQtAppsHook
-, qtbase
 , qttools
 , qtx11extras
 , qtmultimedia
@@ -30,7 +28,6 @@
 , gst_all_1
 , gtest
 , libpulseaudio
-, runtimeShell
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/desktops/deepin/core/dde-dock/default.nix b/pkgs/desktops/deepin/core/dde-dock/default.nix
index 275d8e5894927..7e05e41315ba5 100644
--- a/pkgs/desktops/deepin/core/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchFromGitHub
 , cmake
 , extra-cmake-modules
diff --git a/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix b/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
index d9f400ce979fb..f6b185582031b 100644
--- a/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6systemsettings/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , doxygen
diff --git a/pkgs/desktops/deepin/library/dtkwidget/default.nix b/pkgs/desktops/deepin/library/dtkwidget/default.nix
index 59c1ae7be8560..51130710af466 100644
--- a/pkgs/desktops/deepin/library/dtkwidget/default.nix
+++ b/pkgs/desktops/deepin/library/dtkwidget/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , qttools
diff --git a/pkgs/desktops/gnome/apps/file-roller/default.nix b/pkgs/desktops/gnome/apps/file-roller/default.nix
index 3c6cb7264dc3a..d1af3b91db88c 100644
--- a/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , desktop-file-utils
 , gettext
 , glibcLocales
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index ab1c4d6b10516..c4edd298aff75 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -34,13 +34,13 @@
 , pantheon
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "epiphany";
-  version = "46.0";
+  version = "46.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-9DSPLPUcB8DBBtEwFy1NI/LNQGh3Hh3gB7dYyireVmA=";
+    url = "mirror://gnome/sources/epiphany/${lib.versions.major finalAttrs.version}/epiphany-${finalAttrs.version}.tar.xz";
+    hash = "sha256-Jg+BRp7WR0bCsRQ/Lzi+3NloR3hlZ7CX2fcv072dsUI=";
   };
 
   nativeBuildInputs = [
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "epiphany";
     };
   };
 
@@ -106,4 +106,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gdm/default.nix b/pkgs/desktops/gnome/core/gdm/default.nix
index bbbe4fbb25b31..c0e7a35d4ed96 100644
--- a/pkgs/desktops/gnome/core/gdm/default.nix
+++ b/pkgs/desktops/gnome/core/gdm/default.nix
@@ -43,13 +43,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gdm";
-  version = "46.0";
+  version = "46.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdm/${lib.versions.major finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-jWy1IXbspItrvxz+L9rgjZZ3taDyvKYA3uRgTeDdHvw=";
+    hash = "sha256-TuNFQioWU3FQzYQkUM2lKyyoaYS8Ue4gzcAl3PS9Jos=";
   };
 
   mesonFlags = [
diff --git a/pkgs/desktops/gnome/core/gnome-color-manager/default.nix b/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
index 786e19277e8de..c00d2b97cdb6c 100644
--- a/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-color-manager/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     gettext
+    glib
     itstool
     desktop-file-utils
   ];
@@ -54,6 +55,8 @@ stdenv.mkDerivation rec {
     exiv2
   ];
 
+  strictDeps = true;
+
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 338fa59a2a80d..6602a3795834c 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -73,11 +73,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-control-center";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-control-center/${lib.versions.major finalAttrs.version}/gnome-control-center-${finalAttrs.version}.tar.xz";
-    hash = "sha256-gXkkIwGd7aHSoHTB7Pan5u8xcsCcvm9NeZWktd6igxI=";
+    hash = "sha256-YzXGy4Fk5XTbUh//Yc+j36pV8dtmrjvKAnUKGT4cTz0=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 9887f7f11c522..cb5feb26e4080 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, stdenv
-, fetchurl
-, meson
-, ninja
-, gettext
-, pkg-config
-, glib
-, gnome
-, gnome-menus
-, substituteAll
+{
+  lib,
+  stdenv,
+  fetchurl,
+  meson,
+  ninja,
+  gettext,
+  pkg-config,
+  libgtop,
+  glib,
+  gnome,
+  gnome-menus,
+  substituteAll,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -25,6 +27,10 @@ stdenv.mkDerivation (finalAttrs: {
       src = ./fix_gmenu.patch;
       gmenu_path = "${gnome-menus}/lib/girepository-1.0";
     })
+    (substituteAll {
+      src = ./fix_gtop.patch;
+      gtop_path = "${libgtop}/lib/girepository-1.0";
+    })
   ];
 
   nativeBuildInputs = [
@@ -35,9 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
     glib
   ];
 
-  mesonFlags = [
-    "-Dextension_set=all"
-  ];
+  mesonFlags = [ "-Dextension_set=all" ];
 
   preFixup = ''
     # Since we do not install the schemas to central location,
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch b/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch
new file mode 100644
index 0000000000000..61c90f184d1ec
--- /dev/null
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/fix_gtop.patch
@@ -0,0 +1,25 @@
+diff --git a/extensions/system-monitor/extension.js b/extensions/system-monitor/extension.js
+index 37d2eb1..232d0d5 100644
+--- a/extensions/system-monitor/extension.js
++++ b/extensions/system-monitor/extension.js
+@@ -6,9 +6,9 @@
+ 
+ import Clutter from 'gi://Clutter';
+ import Gio from 'gi://Gio';
++import GIRepository from "gi://GIRepository";
+ import GLib from 'gi://GLib';
+ import GObject from 'gi://GObject';
+-import GTop from 'gi://GTop';
+ import Pango from 'gi://Pango';
+ import Shell from 'gi://Shell';
+ import St from 'gi://St';
+@@ -19,6 +19,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+ 
+ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+ 
++GIRepository.Repository.prepend_search_path('@gtop_path@');
++const GTop = (await import("gi://GTop")).default;
++
+ const THRESHOLD_HIGH = 0.80;
+ 
+ // adapted from load-graph.cpp in gnome-system-monitor
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 28e451e47eb26..52b038ccda919 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -54,10 +54,17 @@ super: lib.trivial.pipe super [
   }))
 
   (patchExtension "display-brightness-ddcutil@themightydeity.github.com" (old: {
+    # Make glib-compile-schemas available
+    nativeBuildInputs = [ glib ];
     # Has a hard-coded path to a run-time dependency
     # https://github.com/NixOS/nixpkgs/issues/136111
     postPatch = ''
-      substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
+      substituteInPlace "schemas/org.gnome.shell.extensions.display-brightness-ddcutil.gschema.xml" \
+        --replace-fail "/usr/bin/ddcutil" ${lib.getExe ddcutil}
+    '';
+    postFixup = ''
+      rm "$out/share/gnome-shell/extensions/display-brightness-ddcutil@themightydeity.github.com/schemas/gschemas.compiled"
+      glib-compile-schemas "$out/share/gnome-shell/extensions/display-brightness-ddcutil@themightydeity.github.com/schemas"
     '';
   }))
 
diff --git a/pkgs/desktops/gnome/extensions/gsconnect/default.nix b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
index 3401db037edaa..ca5c939de2638 100644
--- a/pkgs/desktops/gnome/extensions/gsconnect/default.nix
+++ b/pkgs/desktops/gnome/extensions/gsconnect/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , substituteAll
 , openssl
 , gsound
diff --git a/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix b/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
index 71deb73c2990b..4ec00ee9f149e 100644
--- a/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
+++ b/pkgs/desktops/gnome/extensions/sound-output-device-chooser/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
 , substituteAll
 , fetchFromGitHub
-, fetchpatch
 , libpulseaudio
 , python3
 }:
diff --git a/pkgs/desktops/gnustep/make/default.nix b/pkgs/desktops/gnustep/make/default.nix
index 290e3004497fd..a4c8d2db82c1b 100644
--- a/pkgs/desktops/gnustep/make/default.nix
+++ b/pkgs/desktops/gnustep/make/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-make";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchurl {
     url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc=";
+    sha256 = "sha256-9UDfnw4drrPSOwjhSyBLKkbx0KQAXLFxyVMjQTgG5OE=";
   };
 
   configureFlags = [
diff --git a/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix
new file mode 100644
index 0000000000000..fa91e1531bf21
--- /dev/null
+++ b/pkgs/desktops/lomiri/applications/lomiri-filemanager-app/default.nix
@@ -0,0 +1,142 @@
+{
+  stdenv,
+  lib,
+  fetchFromGitLab,
+  fetchpatch,
+  gitUpdater,
+  nixosTests,
+  biometryd,
+  cmake,
+  content-hub,
+  gettext,
+  lomiri-thumbnailer,
+  lomiri-ui-extras,
+  lomiri-ui-toolkit,
+  pkg-config,
+  python3,
+  qtbase,
+  qtdeclarative,
+  samba,
+  wrapQtAppsHook,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lomiri-filemanager-app";
+  version = "1.0.4";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/apps/lomiri-filemanager-app";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-vjGCTfXoqul1S7KUJXG6JwgZOc2etXWsdKbyQ/V3abA=";
+  };
+
+  patches = [
+    # This sets the *wrong* domain, but at least it sets *some* domain.
+    # Remove when version > 1.0.4
+    (fetchpatch {
+      name = "0001-lomiri-filemanager-app-Set-a-gettext-domain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/b310434d2c25a3b446d3d975f3755eb473a833e8.patch";
+      hash = "sha256-gzFFzZCIxedMGW4fp6sonnHj/HmwqdqU5fvGhXUsSOI=";
+    })
+
+    # Set the *correct* domain.
+    # Remove when version > 1.0.4
+    (fetchpatch {
+      name = "0002-lomiri-filemanager-app-Fix-gettext-domain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/2bb19aeef2baba8d12df1e4976becc08d7cf341d.patch";
+      hash = "sha256-wreOMMvBjf316N/XJv3VfI5f5N/VFiEraeadtgRStjA=";
+    })
+
+    # Bind domain to locale dir
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/112 merged & in release
+    (fetchpatch {
+      name = "0003-lomiri-filemanager-app-Call-i18n.bindtextdomain.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/ac0ab681c52c691d464cf94707b013b39675ad2d.patch";
+      hash = "sha256-mwpcHwMT2FcNC6KIZNuSWU/bA8XP8rEQKHn7t5m6npM=";
+    })
+
+    # Stop using deprecated qt5_use_modules
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/113 merged & in release
+    (fetchpatch {
+      name = "0004-lomiri-filemanager-app-Stop-using-qt5_use_modules.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/c2bfe927b16e660bf4730371b1e61e442e034780.patch";
+      hash = "sha256-wPOZP2FOaacEGj4SMS5Q/TO+/L11Qz7NTux4kA86Bcs=";
+    })
+
+    # Use pkg-config for smbclient flags
+    # Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/115 merged & in release
+    (fetchpatch {
+      name = "0005-lomiri-filemanager-app-Get-smbclient-flags-via-pkg-config.patch";
+      url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/aa791da5999719724e0b0592765e8fa2962305c6.patch";
+      hash = "sha256-fFAYKBR28ym/n7fhP9O6VE2owarLxK8cN9QeExHFbtU=";
+    })
+  ];
+
+  postPatch = ''
+    # Use correct QML install path, don't pull in autopilot test code (we can't run that system)
+    # Remove absolute paths from desktop file, https://github.com/NixOS/nixpkgs/issues/308324
+    substituteInPlace CMakeLists.txt \
+      --replace-fail 'qmake -query QT_INSTALL_QML' 'echo ${placeholder "out"}/${qtbase.qtQmlPrefix}' \
+      --replace-fail 'add_subdirectory(tests)' '#add_subdirectory(tests)' \
+      --replace-fail 'ICON ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${ICON_FILE}' 'ICON lomiri-filemanager-app' \
+      --replace-fail 'SPLASH ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg'
+
+    # In case this ever gets run, at least point it to a correct-ish path
+    substituteInPlace tests/autopilot/CMakeLists.txt \
+      --replace-fail 'python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"' 'echo "${placeholder "out"}/${python3.sitePackages}/lomiri_filemanager_app"'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtdeclarative
+    samba
+
+    # QML
+    biometryd
+    content-hub
+    lomiri-thumbnailer
+    lomiri-ui-extras
+    lomiri-ui-toolkit
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INSTALL_TESTS" false)
+    (lib.cmakeBool "CLICK_MODE" false)
+  ];
+
+  # No tests we can actually run (just autopilot)
+  doCheck = false;
+
+  postInstall = ''
+    # Some misc files don't get installed to the correct paths for us
+    mkdir -p $out/share/{content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash}
+    ln -s $out/share/lomiri-filemanager-app/content-hub.json $out/share/content-hub/peers/lomiri-filemanager-app
+    ln -s $out/share/lomiri-filemanager-app/filemanager.svg $out/share/icons/hicolor/scalable/apps/lomiri-filemanager-app.svg
+    ln -s $out/share/lomiri-filemanager-app/splash.svg $out/share/lomiri-app-launch/splash/lomiri-filemanager-app.svg
+  '';
+
+  passthru = {
+    tests.vm = nixosTests.lomiri-filemanager-app;
+    updateScript = gitUpdater { rev-prefix = "v"; };
+  };
+
+  meta = {
+    description = "File Manager application for Ubuntu Touch devices";
+    homepage = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app";
+    changelog = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/blob/v${finalAttrs.version}/ChangeLog";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "lomiri-filemanager-app";
+    maintainers = lib.teams.lomiri.members;
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix
index 76e0351e5a07a..03d8e9451bbb0 100644
--- a/pkgs/desktops/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/default.nix
@@ -9,6 +9,7 @@ let
   in {
     #### Core Apps
     lomiri = callPackage ./applications/lomiri { };
+    lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
     lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
     lomiri-system-settings-security-privacy = callPackage ./applications/lomiri-system-settings/plugins/lomiri-system-settings-security-privacy.nix { };
     lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
diff --git a/pkgs/desktops/lomiri/services/biometryd/default.nix b/pkgs/desktops/lomiri/services/biometryd/default.nix
index d06ecf16942ef..6ae46fbc158bf 100644
--- a/pkgs/desktops/lomiri/services/biometryd/default.nix
+++ b/pkgs/desktops/lomiri/services/biometryd/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gitUpdater
 , testers
 , boost
diff --git a/pkgs/desktops/lomiri/services/telephony-service/default.nix b/pkgs/desktops/lomiri/services/telephony-service/default.nix
index f07d8b2baa998..15f6ab1679722 100644
--- a/pkgs/desktops/lomiri/services/telephony-service/default.nix
+++ b/pkgs/desktops/lomiri/services/telephony-service/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchFromGitLab
 , fetchpatch
-, fetchpatch2
 , gitUpdater
 , nixosTests
 , ayatana-indicator-messages
@@ -20,7 +19,6 @@
 , libphonenumber
 , libpulseaudio
 , libusermetrics
-, lomiri-ui-toolkit
 , lomiri-url-dispatcher
 , makeWrapper
 , pkg-config
diff --git a/pkgs/desktops/lxqt/default.nix b/pkgs/desktops/lxqt/default.nix
index 8418652dbc38a..3efd526cb6bd0 100644
--- a/pkgs/desktops/lxqt/default.nix
+++ b/pkgs/desktops/lxqt/default.nix
@@ -75,6 +75,11 @@ let
       libfm-qt = libfm-qt_1_4;
       inherit (pkgs.libsForQt5) qtbase qtsvg qttools libdbusmenu;
     };
+    qtermwidget_1_4 = callPackage ./qtermwidget {
+      version = "1.4.0";
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qttools;
+    };
 
     preRequisitePackages = [
       kdePackages.kwindowsystem # provides some QT plugins needed by lxqt-panel
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index bb019eeae7e41..065cc79359180 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -6,6 +6,7 @@
 , qtbase
 , qtermwidget
 , qttools
+, qtwayland
 , wrapQtAppsHook
 , gitUpdater
 , nixosTests
@@ -32,6 +33,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     qtbase
     qtermwidget
+    qtwayland
   ];
 
   passthru.updateScript = gitUpdater { };
diff --git a/pkgs/desktops/lxqt/qtermwidget/default.nix b/pkgs/desktops/lxqt/qtermwidget/default.nix
index 35c5b2c3f6415..fb0c63460df12 100644
--- a/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/pkgs/desktops/lxqt/qtermwidget/default.nix
@@ -7,17 +7,21 @@
 , lxqt-build-tools
 , wrapQtAppsHook
 , gitUpdater
+, version ? "2.0.0"
 }:
 
 stdenv.mkDerivation rec {
   pname = "qtermwidget";
-  version = "2.0.0";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    hash = "sha256-kZS6D/wSJFRt/+Afq0zCCmNnJPpFT+1hd4zVPc+rJsE=";
+    hash = {
+      "1.4.0" = "sha256-wYUOqAiBjnupX1ITbFMw7sAk42V37yDz9SrjVhE4FgU=";
+      "2.0.0" = "sha256-kZS6D/wSJFRt/+Afq0zCCmNnJPpFT+1hd4zVPc+rJsE=";
+    }."${version}";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index 8f7a89ea23feb..ee4d259d18e1b 100644
--- a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -5,7 +5,6 @@
 , pkg-config
 , meson
 , ninja
-, python3
 , vala
 , gtk3
 , libxml2
@@ -24,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-mail";
-  version = "7.2.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "mail";
     rev = version;
-    sha256 = "sha256-hBOogZ9ZNS9KnuNn+jNhTtlupBxZL2DG/CiuBR1kFu0=";
+    sha256 = "sha256-6T/OTiuDVAPBqp8BPawf/MVEuWTPrLa3/N1Blvt/7Q8=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +37,6 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    python3
     vala
     wrapGAppsHook3
   ];
@@ -56,11 +54,6 @@ stdenv.mkDerivation rec {
     webkitgtk_4_1
   ];
 
-  postPatch = ''
-    chmod +x meson/post_install.py
-    patchShebangs meson/post_install.py
-  '';
-
   preFixup = ''
     gappsWrapperArgs+=(
       # The GTK theme is hardcoded.
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 77d783cd9039d..c739ac6ea04a9 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -1,5 +1,6 @@
 { config
 , lib
+, linuxPackages
 , pkgs
 , generateSplicesForMkScope
 , makeScopeWithSplicing'
@@ -140,7 +141,9 @@ makeScopeWithSplicing' {
 
       xfce4-mpc-plugin = callPackage ./panel-plugins/xfce4-mpc-plugin { };
 
-      xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin { };
+      xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin {
+        libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
+      };
 
       xfce4-systemload-plugin = callPackage ./panel-plugins/xfce4-systemload-plugin { };
 
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index 4a3148962efde..07445ffb1c992 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -1,5 +1,20 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gtk3, libxfce4ui,
-  libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, gitUpdater
+{
+  stdenv,
+  lib,
+  fetchurl,
+  pkg-config,
+  intltool,
+  gtk3,
+  libxfce4ui,
+  libxfce4util,
+  xfce4-panel,
+  libnotify,
+  lm_sensors,
+  hddtemp,
+  netcat-gnu,
+  nvidiaSupport ? true,
+  libXNVCtrl,
+  gitUpdater,
 }:
 
 let
@@ -7,7 +22,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname  = "xfce4-sensors-plugin";
+  pname = "xfce4-sensors-plugin";
   version = "1.4.4";
 
   src = fetchurl {
@@ -29,14 +44,20 @@ stdenv.mkDerivation rec {
     lm_sensors
     hddtemp
     netcat-gnu
-   ];
+  ] ++ lib.optionals nvidiaSupport [ libXNVCtrl ];
 
   enableParallelBuilding = true;
 
-  configureFlags = [
-    "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
-    "--with-pathnetcat=${netcat-gnu}/bin/netcat"
-  ];
+  configureFlags =
+    [
+      "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
+      "--with-pathnetcat=${netcat-gnu}/bin/netcat"
+    ]
+    ++ lib.optionals nvidiaSupport [
+      # Have to be explicitly enabled since this tries to figure out the default
+      # based on the existence of a hardcoded `/usr/include/NVCtrl` path.
+      "--enable-xnvctrl"
+    ];
 
   passthru.updateScript = gitUpdater {
     url = "https://gitlab.xfce.org/panel-plugins/${pname}";