From d171b19c1c76c32f9c8303a43d0176257aa25034 Mon Sep 17 00:00:00 2001 From: Kilian Mio <86004375+Mikilio@users.noreply.github.com> Date: Tue, 18 Feb 2025 12:35:43 +0100 Subject: [PATCH] qt: add temporary warnings for plasma6 (#845) This adds temporary warnings when plasma6 is enabled and will be replaced with actual handling of plasma6 when styling solutions are added upstream. Currently, this requires a manual work around that is only reasonable on home-manager and not on NixOS. Users will be deferred to find workarounds in the issue when they encounter this warning. Relates to #835 Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com> --- modules/qt/nixos.nix | 56 +++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/modules/qt/nixos.nix b/modules/qt/nixos.nix index 834743fc..f596f114 100644 --- a/modules/qt/nixos.nix +++ b/modules/qt/nixos.nix @@ -27,25 +27,39 @@ in }; }; - config = lib.mkIf (config.stylix.enable && config.stylix.targets.qt.enable) { - stylix.targets.qt.platform = - with config.services.xserver.desktopManager; - if gnome.enable && !(plasma5.enable || lxqt.enable) then - lib.mkDefault "gnome" - else if plasma5.enable && !(gnome.enable || lxqt.enable) then - lib.mkDefault "kde" - else if lxqt.enable && !(gnome.enable || plasma5.enable) then - lib.mkDefault "lxqt" - else - lib.mkDefault "qtct"; - qt = { - enable = true; - style = recommendedStyle."${config.qt.platformTheme}" or null; - platformTheme = - if config.stylix.targets.qt.platform == "qtct" then - "qt5ct" - else - config.stylix.targets.qt.platform; - }; - }; + config = + let + broken = config.services.desktopManager.plasma6.enable; + warning = { + warnings = [ + "stylix: qt: Plasma6 is currently unsupported: https://github.com/nix-community/home-manager/issues/5098" + ]; + }; + default = lib.mkIf (config.stylix.enable && config.stylix.targets.qt.enable) { + + stylix.targets.qt.platform = + with config.services.xserver.desktopManager; + if gnome.enable && !(plasma5.enable || lxqt.enable) then + "gnome" + else if plasma5.enable && !(gnome.enable || lxqt.enable) then + "kde" + else if lxqt.enable && !(gnome.enable || plasma5.enable) then + "lxqt" + else + "qtct"; + qt = { + enable = true; + style = recommendedStyle."${config.qt.platformTheme}" or null; + platformTheme = + if config.stylix.targets.qt.platform == "qtct" then + "qt5ct" + else + config.stylix.targets.qt.platform; + }; + }; + in + lib.mkMerge [ + (lib.mkIf broken warning) + (lib.mkIf (!broken) default) + ]; }