{ user ? throw "user argument is required", }: { config, lib, pkgs, ... }: let hmConfig = config.home-manager.users.${user.name}; in { home-manager.users.${user.name} = { 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"; }; programs.matugen.settings.templates = { # https://github.com/GabePoel/KvLibadwaita/blob/main/src/KvLibadwaita/KvLibadwaita.kvconfig kvantumConfig = { input_path = ./KvAdwQt/KvAdwQt.kvconfig; output_path = "${hmConfig.xdg.configHome}/Kvantum/KvAdwQt/KvAdwQt.kvconfig"; }; # https://github.com/GabePoel/KvLibadwaita/blob/main/src/KvLibadwaita/KvLibadwaita.svg kvantumSvg = { input_path = ./KvAdwQt/KvAdwQt.svg; output_path = "${hmConfig.xdg.configHome}/Kvantum/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"; }; }; }; }