Setting `qt.platformTheme.name = "gtk"` silently rewrote the
QT_QPA_PLATFORMTHEME session variable to `gtk2` and pulled in the
qtstyleplugins and qt6gtk2 packages, which is not what users asked for
and relies on unmaintained packages. There is no `gtk` Qt platform
theme, so `gtk` now maps to Qt's built-in `gtk3` platform-theme plugin
and installs no extra packages.
Users who want the previous behavior can set
`qt.platformTheme.name = "gtk2"` explicitly, which keeps
QT_QPA_PLATFORMTHEME=gtk2 and installs qtstyleplugins and qt6gtk2. The
`qt.useGtkTheme` -> `qt.platformTheme` migration now maps the legacy
option to `{ name = "gtk2"; }` so existing configs are unaffected.
Fixes #8663
25 lines
653 B
Nix
25 lines
653 B
Nix
{
|
|
qt = {
|
|
enable = true;
|
|
platformTheme.name = "gtk";
|
|
};
|
|
|
|
i18n.inputMethod = {
|
|
enable = true;
|
|
type = "fcitx5";
|
|
};
|
|
|
|
test.asserts.warnings.expected = [
|
|
"The value `gtk` for option `qt.platformTheme.name` is deprecated. Use `gtk2` to keep the legacy qtstyleplugins or `gtk3` to use the modern native Qt GTK3 plugin."
|
|
];
|
|
|
|
nmt.script = ''
|
|
assertFileRegex home-path/etc/profile.d/hm-session-vars.sh \
|
|
'QT_QPA_PLATFORMTHEME="gtk3"'
|
|
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'
|
|
'';
|
|
}
|