theme.nix
1 # modules/common/theme.nix 2 { 3 lib, 4 pkgs, 5 themes, 6 ... 7 }: 8 let 9 inherit (lib) mkValue; 10 in 11 { 12 options.theme = mkValue ( 13 themes.custom { 14 # Required fields for ThemeNix templates 15 name = "Arabia Dark"; 16 author = "ay"; 17 18 # Arabia theme colors (base16 scheme) 19 base00 = "0a0a0a"; # Default background 20 base01 = "1a1a1a"; # Lighter background (status bars) 21 base02 = "2a2a2a"; # Selection background 22 base03 = "4a3c2e"; # Comments, invisibles, line highlighting 23 base04 = "6a5c4e"; # Dark foreground (status bars) 24 base05 = "e6d7c3"; # Default foreground, caret, delimiters, operators 25 base06 = "f0e5d7"; # Light foreground (not often used) 26 base07 = "faf5ef"; # Light background (not often used) 27 base08 = "e5524f"; # Variables, XML tags, markup link text, markup lists, diff deleted 28 base09 = "ff7300"; # Integers, boolean, constants, XML attributes, markup link url 29 base0A = "ffc799"; # Classes, markup bold, search text background 30 base0B = "d4b483"; # Strings, inherited class, markup code, diff inserted 31 base0C = "99ffe4"; # Support, regular expressions, escape characters, markup quotes 32 base0D = "7c89cd"; # Functions, methods, attribute IDs, headings 33 base0E = "ff8080"; # Keywords, storage, selector, markup italic, diff changed 34 base0F = "d9956c"; # Deprecated, opening/closing embedded language tags 35 36 # Theme properties 37 cornerRadius = 4; 38 borderWidth = 2; 39 margin = 0; 40 padding = 8; 41 42 # Font configuration 43 font.size.normal = 16; 44 font.size.big = 20; 45 46 font.sans.name = "Lexend"; 47 font.sans.package = pkgs.lexend; 48 49 font.mono.name = "JetBrainsMono Nerd Font"; 50 font.mono.package = pkgs.nerd-fonts.jetbrains-mono; 51 52 # Icon theme 53 icons.name = "Gruvbox-Plus-Dark"; 54 icons.package = pkgs.gruvbox-plus-icons; 55 } 56 ); 57 }