Skip to content

Commit

Permalink
fix(qt): allow theming for apps started by systemd (#4349)
Browse files Browse the repository at this point in the history
  • Loading branch information
Mikilio authored Aug 17, 2023
1 parent 2471d96 commit 6a94c1a
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions modules/misc/qt.nix
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,20 @@ in {
};
};

config = mkIf (cfg.enable && cfg.platformTheme != null) {
config = let

# Necessary because home.sessionVariables doesn't support mkIf
envVars = filterAttrs (n: v: v != null) {
QT_QPA_PLATFORMTHEME = if cfg.platformTheme == "gtk" then
"gtk2"
else if cfg.platformTheme == "qtct" then
"qt5ct"
else
cfg.platformTheme;
QT_STYLE_OVERRIDE = cfg.style.name;
};

in mkIf (cfg.enable && cfg.platformTheme != null) {
assertions = [{
assertion = cfg.platformTheme == "gnome" -> cfg.style.name != null
&& cfg.style.package != null;
Expand All @@ -141,16 +154,10 @@ in {
qt.style.package = mkIf (cfg.style.name != null)
(mkDefault (stylePackages.${toLower cfg.style.name} or null));

# Necessary because home.sessionVariables doesn't support mkIf
home.sessionVariables = filterAttrs (n: v: v != null) {
QT_QPA_PLATFORMTHEME = if cfg.platformTheme == "gtk" then
"gtk2"
else if cfg.platformTheme == "qtct" then
"qt5ct"
else
cfg.platformTheme;
QT_STYLE_OVERRIDE = cfg.style.name;
};
home.sessionVariables = envVars;

# Apply theming also to apps started by systemd.
systemd.user.sessionVariables = envVars;

home.packages = (if cfg.platformTheme == "gnome" then
[ pkgs.qgnomeplatform ]
Expand Down

0 comments on commit 6a94c1a

Please sign in to comment.