From de578d91a6db1041eda2530d0fd0afa5832a442e Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Sun, 31 Aug 2025 18:23:37 +0200 Subject: [PATCH 1/2] qt: Remove Plasma 5 and related Qt5 packages Modeled after the changes in Nixpkgs from https://github.com/NixOS/nixpkgs/pull/435823, platform `kde6` is removed and platform `kde` now means Plasma 6. Also fixes evaluation error due to missing attribute `libsForQt5.breeze-qt5` (https://github.com/nix-community/home-manager/issues/7728). --- modules/misc/qt.nix | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/modules/misc/qt.nix b/modules/misc/qt.nix index 1410299e899c..91966d9aa15a 100644 --- a/modules/misc/qt.nix +++ b/modules/misc/qt.nix @@ -23,11 +23,6 @@ let qt6Packages.qt6gtk2 ]; kde = [ - libsForQt5.kio - libsForQt5.plasma-integration - libsForQt5.systemsettings - ]; - kde6 = [ kdePackages.kio kdePackages.plasma-integration kdePackages.systemsettings @@ -46,7 +41,6 @@ let styleNames = { gtk = "gtk2"; qtct = "qt5ct"; - kde6 = "kde"; }; # Maps known lowercase style names to style packages. Non-exhaustive. @@ -79,7 +73,10 @@ let adwaita-qt6 ]; - breeze = libsForQt5.breeze-qt5; + breeze = [ + kdePackages.breeze + kdePackages.breeze.qt5 + ]; kvantum = [ libsForQt5.qtstyleplugin-kvantum @@ -191,10 +188,7 @@ in applications `kde` - : Use Qt settings from Plasma 5 - - `kde6` - : Use Qt settings from Plasma 6 + : Use Qt settings from Plasma ''; }; package = lib.mkOption { @@ -221,7 +215,6 @@ in "lxqt" "qtct" "kde" - "kde6" ]) (lib.types.submodule { options = newOption; }) ); default = null; From bf28e32ec444e4055bee1e3efab2aa504155d737 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 31 Aug 2025 12:49:01 -0500 Subject: [PATCH 2/2] qt: deprecate kde6 Give users a heads up that option is being removed. Signed-off-by: Austin Horstman --- modules/misc/qt.nix | 16 ++++++++++++++-- tests/modules/misc/qt/default.nix | 1 + .../misc/qt/qt-platform-theme-kde6-migration.nix | 16 ++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 tests/modules/misc/qt/qt-platform-theme-kde6-migration.nix diff --git a/modules/misc/qt.nix b/modules/misc/qt.nix index 91966d9aa15a..0fe00d7777bc 100644 --- a/modules/misc/qt.nix +++ b/modules/misc/qt.nix @@ -215,6 +215,7 @@ in "lxqt" "qtct" "kde" + "kde6" ]) (lib.types.submodule { options = newOption; }) ); default = null; @@ -290,11 +291,22 @@ in config = let + deprecateKde6 = + name: optionPath: + if name == "kde6" then + lib.warn '' + The ${optionPath} value "kde6" has been deprecated and renamed to "kde". + Please update your configuration: + ${optionPath} = "kde"; + '' "kde" + else + name; + platformTheme = if (builtins.isString cfg.platformTheme) then { option = "qt.platformTheme"; - name = cfg.platformTheme; + name = deprecateKde6 cfg.platformTheme "qt.platformTheme"; package = null; } else if cfg.platformTheme == null then @@ -306,7 +318,7 @@ in else { option = "qt.platformTheme.name"; - name = cfg.platformTheme.name; + name = deprecateKde6 cfg.platformTheme.name "qt.platformTheme.name"; package = cfg.platformTheme.package; }; diff --git a/tests/modules/misc/qt/default.nix b/tests/modules/misc/qt/default.nix index da27bf31f0a1..88ba03f4352f 100644 --- a/tests/modules/misc/qt/default.nix +++ b/tests/modules/misc/qt/default.nix @@ -3,4 +3,5 @@ qt-platform-theme-gtk = ./qt-platform-theme-gtk.nix; qt-platform-theme-gtk3 = ./qt-platform-theme-gtk3.nix; qt-platform-theme-gnome = ./qt-platform-theme-gnome.nix; + qt-platform-theme-kde6-migration = ./qt-platform-theme-kde6-migration.nix; } diff --git a/tests/modules/misc/qt/qt-platform-theme-kde6-migration.nix b/tests/modules/misc/qt/qt-platform-theme-kde6-migration.nix new file mode 100644 index 000000000000..cdf54bd51c7b --- /dev/null +++ b/tests/modules/misc/qt/qt-platform-theme-kde6-migration.nix @@ -0,0 +1,16 @@ +{ + qt = { + enable = true; + platformTheme.name = "kde6"; # Should trigger warning and convert to "kde" + }; + + nmt.script = '' + # Verify that kde6 gets converted to kde in QT_QPA_PLATFORMTHEME + assertFileRegex home-path/etc/profile.d/hm-session-vars.sh \ + 'QT_QPA_PLATFORMTHEME="kde"' + assertFileRegex home-path/etc/profile.d/hm-session-vars.sh \ + 'QT_PLUGIN_PATH' + assertFileRegex home-path/etc/profile.d/hm-session-vars.sh \ + 'QML2_IMPORT_PATH' + ''; +}