{ username ? throw "username argument is required", }: { config, lib, pkgs, ... }: let hmConfig = config.home-manager.users.${username}; in { home-manager.users.${username} = { qt = { enable = true; platformTheme.name = "qtct"; style.package = with pkgs; [ libsForQt5.qtstyleplugin-kvantum qt6Packages.qtstyleplugin-kvantum ]; }; home.sessionVariables = { QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt5ct"; }; theme.templates = { # https://github.com/GabePoel/KvLibadwaita/blob/main/src/KvLibadwaita/KvLibadwaita.kvconfig "${hmConfig.xdg.configHome}/Kvantum/KvAdwQt/KvAdwQt.kvconfig".source = ./KvAdwQt/KvAdwQt.kvconfig; # https://github.com/GabePoel/KvLibadwaita/blob/main/src/KvLibadwaita/KvLibadwaita.svg "${hmConfig.xdg.configHome}/Kvantum/KvAdwQt/KvAdwQt.svg".source = ./KvAdwQt/KvAdwQt.svg; }; xdg.configFile = let qtConfig = (pkgs.formats.ini { }).generate "qt5ct.conf" { Appearance.style = "kvantum"; }; in { "qt5ct/qt5ct.conf".source = qtConfig; "qt6ct/qt6ct.conf".source = qtConfig; "Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini { }).generate "kvantum.kvconfig" { General.theme = "KvAdwQt"; }; }; }; }