Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 18 additions & 13 deletions modules/misc/qt.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@ let
qt6Packages.qt6gtk2
];
kde = [
libsForQt5.kio
libsForQt5.plasma-integration
libsForQt5.systemsettings
];
kde6 = [
kdePackages.kio
kdePackages.plasma-integration
kdePackages.systemsettings
Expand All @@ -46,7 +41,6 @@ let
styleNames = {
gtk = "gtk2";
qtct = "qt5ct";
kde6 = "kde";
};

# Maps known lowercase style names to style packages. Non-exhaustive.
Expand Down Expand Up @@ -79,7 +73,10 @@ let
adwaita-qt6
];

breeze = libsForQt5.breeze-qt5;
breeze = [
kdePackages.breeze
kdePackages.breeze.qt5
];

kvantum = [
libsForQt5.qtstyleplugin-kvantum
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -297,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
Expand All @@ -313,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;
};

Expand Down
1 change: 1 addition & 0 deletions tests/modules/misc/qt/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
16 changes: 16 additions & 0 deletions tests/modules/misc/qt/qt-platform-theme-kde6-migration.nix
Original file line number Diff line number Diff line change
@@ -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'
'';
}
Loading