# GTK and cursor theme, as nwg-look had set them on CachyOS (settings.ini, # .gtkrc-2.0, GSettings), and Qt's: qt6ct with the Kvantum style. # # These files are now written by Nix, so change the theme here rather than in # nwg-look or qt6ct (they can still preview themes, but can't save over these # files). { config, pkgs, ... }: let inherit (config.lib.dot) link; in { home.pointerCursor = { enable = true; name = "BreezeX-Black"; package = pkgs.breezex-cursor; size = 28; gtk.enable = true; x11.enable = true; }; gtk = { enable = true; theme = { name = "Adwaita-dark"; package = pkgs.gnome-themes-extra; }; iconTheme = { name = "breeze-dark"; package = pkgs.kdePackages.breeze-icons; }; font = { name = "Adwaita Sans"; size = 11; package = pkgs.adwaita-fonts; }; gtk2.extraConfig = '' gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=0 gtk-menu-images=0 gtk-enable-event-sounds=1 gtk-enable-input-feedback-sounds=0 gtk-xft-antialias=1 gtk-xft-hinting=1 gtk-xft-hintstyle="hintslight" gtk-xft-rgba="rgb" ''; gtk3.extraConfig = { gtk-toolbar-style = "GTK_TOOLBAR_BOTH_HORIZ"; gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; gtk-button-images = 0; gtk-menu-images = 0; gtk-enable-event-sounds = 1; gtk-enable-input-feedback-sounds = 0; gtk-xft-antialias = 1; gtk-xft-hinting = 1; gtk-xft-hintstyle = "hintslight"; gtk-xft-rgba = "rgb"; gtk-application-prefer-dark-theme = 1; }; gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; }; dconf.settings."org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; gtk-theme = "Adwaita-dark"; icon-theme = "breeze-dark"; cursor-theme = "BreezeX-Black"; cursor-size = 28; font-name = "Adwaita Sans 11"; }; # QT_QPA_PLATFORMTHEME=qt6ct and QT_STYLE_OVERRIDE=kvantum for the session # (Hyprland's env also passes the first on, desktop.nix). qt6ct and Kvantum # themselves are installed system-wide (modules/nixos/desktop.nix). qt = { enable = true; platformTheme.name = "qt6ct"; style.name = "kvantum"; qt6ctSettings = { Appearance = { custom_palette = false; icon_theme = "Papirus-Dark"; standard_dialogs = "default"; style = "kvantum"; }; Fonts = { fixed = ''"JetBrainsMono Nerd Font,10,-1,5,50,0,0,0,0,0"''; general = ''"Noto Sans,10,-1,5,50,0,0,0,0,0"''; }; Interface = { activate_item_on_single_click = 1; buttonbox_layout = 0; cursor_flash_time = 1000; dialog_buttons_have_icons = 1; double_click_interval = 400; gui_effects = "@Invalid()"; keyboard_scheme = 2; menus_have_icons = true; show_shortcuts_in_context_menus = true; stylesheets = "@Invalid()"; toolbutton_style = 4; underline_shortcut = 1; wheel_scroll_lines = 3; }; }; # The active theme is KvArcDark# (your customised copy of KvArcDark, made # with Kvantum Manager; it uses the stock theme's artwork). RiceDark is the # tweaked theme from the old repo, with the stock KvArcDark artwork copied in # under its name, as kvantum/install.sh did. Both stay linked to the # checkout. kvantum = { enable = true; settings.General.theme = "KvArcDark#"; }; # KDE apps (Dolphin, Ark) read the style and icons from kdeglobals. Set with # kwriteconfig6, so the apps can still save their own settings there. kde.settings.kdeglobals = { General.widgetStyle = "kvantum"; Icons.Theme = config.qt.qt6ctSettings.Appearance.icon_theme; KDE.widgetStyle = "kvantum"; }; }; xdg.configFile = { "Kvantum/KvArcDark#/KvArcDark#.kvconfig".source = link "kvantum/KvArcDark#.kvconfig"; "Kvantum/RiceDark/RiceDark.kvconfig".source = link "kvantum/RiceDark.kvconfig"; "Kvantum/RiceDark/RiceDark.svg".source = "${pkgs.kdePackages.qtstyleplugin-kvantum}/share/Kvantum/KvArcDark/KvArcDark.svg"; }; }