catppuccin / nix

❄️ Soothing pastel theme for Nix
https://nix.catppuccin.com/
MIT License
422 stars 54 forks source link

bug: `ctp.kvantum` does not allow `qt.platformTheme.name = qtct` #275

Open zspher opened 5 months ago

zspher commented 5 months ago

ctp.kvantum does not allow qt.platformTheme.name = qtct. I use qtct to set icon theme and fonts while using kvantum.

 { lib, ...}: let
  data = {
    Appearance = {
      custom_palette = false;
      icon_theme = "Papirus-Dark";
      standard_dialogs = "default";
      style = "kvantum-dark";
    };

    Fonts = {
      fixed = "\"CaskaydiaMono Nerd Font Mono,10,-1,5,50,0,0,0,0,0,Regular\"";
      general = "\"Sans Serif,10,-1,5,50,0,0,0,0,0,Regular\"";
    };
  };
in {
  qt = {
    enable = true;
    style.name = "kvantum";
    platformTheme.name = "qtct";
    # platformTheme.name = "kvantum";
  };
  xdg.configFile."qt5ct/qt5ct.conf".text = lib.generators.toINI {} data;
  xdg.configFile."qt6ct/qt6ct.conf".text = lib.generators.toINI {} data;
}

So if possible can qtct be made an exception in https://github.com/catppuccin/nix/blob/9345073d27d91ab66c1b6ab65df322906992aa59/modules/home-manager/kvantum.nix#L43

heitorPB commented 4 months ago

Did you find a solution/workaround to this?

zspher commented 4 months ago

Did you find a solution/workaround to this?

nope, just didn't use catppuccin/nix for kvantum, configured it in home-manager manually

heitorPB commented 4 months ago

Would you be so kind to share your configuration? I've been trying to get Qt themed but only frustrations so far.

zspher commented 4 months ago

sure,

  qt = let
    upperFirst = str:
    (lib.toUpper (builtins.substring 0 1 str))
    + (builtins.substring 1 (builtins.stringLength str) str);
    flavorCapitalized = upperFirst config.catppuccin.flavor;
    accentCapitalized = upperFirst config.catppuccin.accent;
  in {
    enable = true;
    platformTheme.name = "qtct";
    style.name = "kvantum";
    kde.settings."Kvantum/kvantum.kvconfig".General.theme = "Catppuccin-${flavorCapitalized}-${accentCapitalized}";
  };

ref:

heitorPB commented 4 months ago

Thank you!

getchoo commented 2 months ago

Sorry for the long wait here, I've been a bit busy with things IRL and honestly I'm not very familiar with Qt/KDE/Kvantum theming

As of https://github.com/catppuccin/nix/pull/244, I was under the impression that this was required alongside qt.style.name for the theme to apply most of the time. If this isn't the case, I'm happy to revert it; but some clarity here would be nice as it seems the Qt theming are a bit messy in general

CC @olifloof as author of that PR

olifloof commented 2 months ago

i've somewhat recently switched to using the qtct port as the kvantum theme (by my experience) has had some issues with apps using qml

other than that, i'm also not very experienced with qt theming

zspher commented 2 months ago

i think this might clarify some things the ff. must be done to set the qt theme

  1. setting QT_QPA_PLATFORMTHEME (with i.e kvantum, qtct)
  2. setting the style theme either through the platform theme (qtct) or directly QT_STYLE_OVERRIDE
  3. (optional) setting the kde themes via kdeglobals (for i.e kdeconnect)

for nixos this means

  1. qt.platformTheme.name for QT_QPA_PLATFORMTHEME and installing the platformTheme package
  2. qt.style.package to install the style package
  3. qt.style.name or use qtct to apply the style
  4. (optional) apply kde theme by reading ${pkgs.catppuccin-kde}/share/color-schemes/Catppuccin${flavor}${accent}.colors (ini to json) to kde.settings.kdeglobals

to apply the theme for qtct or kvantum config automatically use kde.settings. or xdg.configFile

sources: https://github.com/nix-community/home-manager/blob/master/modules/misc/qt.nix, https://github.com/nix-community/home-manager/blob/master/modules/misc/qt/kconfig.nix

for reference, my config: https://gist.github.com/zspher/e832aa4fd66f53a5fccac518b52eec19