Personal Nix setup
at main 2.1 kB view raw
1{ lib, config, pkgs, ... } @ inputs: 2 3with lib; 4let 5 inherit (import ../../lib/theme.nix inputs) cursorTheme defaultFont iconTheme gtkTheme kvantumTheme; 6 cfg = config.modules.desktop; 7in { 8 options.modules.desktop.theme = { 9 enable = mkOption { 10 default = cfg.enable; 11 example = true; 12 description = "Whether to enable theming configuration."; 13 type = types.bool; 14 }; 15 }; 16 17 config = mkIf cfg.theme.enable { 18 home.pointerCursor = { 19 inherit (cursorTheme) package name; 20 gtk.enable = true; 21 hyprcursor.enable = true; 22 x11.enable = true; 23 size = 24; 24 }; 25 26 home.packages = with pkgs; [ 27 libsForQt5.qtstyleplugin-kvantum 28 libsForQt5.qt5ct 29 ]; 30 31 qt = { 32 enable = true; 33 platformTheme.name = "gtk"; 34 style.name = "kvantum"; 35 }; 36 37 xdg.configFile = { 38 "Kvantum/${kvantumTheme.name}".source = "${kvantumTheme.package}/share/Kvantum/${kvantumTheme.name}"; 39 "Kvantum/kvantum.kvconfig".text = '' 40 [General] 41 theme=${kvantumTheme.name} 42 ''; 43 "qt5ct/qt5ct.conf".text = '' 44 [Appearance] 45 icon_theme=${iconTheme.name} 46 ''; 47 "qt6ct/qt6ct.conf".text = '' 48 [Appearance] 49 icon_theme=${iconTheme.name} 50 ''; 51 }; 52 53 gtk = { 54 enable = true; 55 inherit iconTheme; 56 theme = gtkTheme; 57 font = defaultFont; 58 gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; 59 gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; 60 gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; 61 }; 62 63 dconf = { 64 enable = true; 65 settings = { 66 "org/gnome/desktop/interface".color-scheme = "prefer-dark"; 67 }; 68 }; 69 70 fonts.fontconfig = { 71 enable = true; 72 defaultFonts = { 73 serif = [ "New York" "Noto Serif" "Noto Color Emoji" ]; 74 sansSerif = [ "SF Pro Display" "Inter" "Noto Color Emoji" ]; 75 monospace = [ "Dank Mono" "SF Mono" "Noto Color Emoji" ]; 76 emoji = [ "Noto Color Emoji" ]; 77 }; 78 }; 79 }; 80}