{ pkgs, lib, ... }: let ini = pkgs.formats.ini { }; common-gtk = { gtk-application-prefer-dark-theme = true; }; qtct-config = pkg: name: ini.generate "${name}.conf" { Appearance = { custom_palette = true; color_scheme_path = "${pkg}/share/${name}/colors/darker.conf"; style = "Breeze"; icon_theme = "breeze-dark"; standard_dialogs = "default"; }; }; in { home.sessionVariables.GTK_THEME = "Adwaita:dark"; gtk = { enable = true; gtk3.extraConfig = common-gtk; gtk4.extraConfig = common-gtk; }; dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; qt = { enable = true; platformTheme.name = "qtct"; }; home.packages = with pkgs; [ (lib.lowPrio libsForQt5.breeze-qt5.bin) kdePackages.breeze kdePackages.breeze-icons qt6.qtwayland ]; xdg.configFile = { "qt5ct/qt5ct.conf".source = qtct-config pkgs.libsForQt5.qt5ct "qt5ct"; "qt6ct/qt6ct.conf".source = qtct-config pkgs.kdePackages.qt6ct "qt6ct"; }; }