aboutsummaryrefslogtreecommitdiff
path: root/modules/options.nix
blob: 65de32ee8291c05b4f4bb5a515d05c1751facafd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{
  lib,
  config,
  ...
}: let
  inherit (lib) mkOption types;
in {
  options = {
    collinux.theme = mkOption {
      type = types.enum ["catppuccin" "adwaita" "kanagawa"];
    };

    collinux.palette = let
      colorOption = lib.mkOption {
        type = lib.types.strMatching "^([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$";
      };
    in
      lib.mkOption {
        type = lib.types.submodule {
          options = {
            base00 = colorOption;
            base01 = colorOption;
            base02 = colorOption;
            base03 = colorOption;
            base04 = colorOption;
            base05 = colorOption;
            base06 = colorOption;
            base07 = colorOption;
            base08 = colorOption;
            base09 = colorOption;
            base10 = colorOption;
            base11 = colorOption;
            base12 = colorOption;
            base13 = colorOption;
            base14 = colorOption;
            base15 = colorOption;
          };
        };
        default =
          if (config.collinux.theme == "catppuccin")
          then {
            base00 = "1E1E2E";
            base01 = "181825";
            base02 = "313244";
            base03 = "45475A";
            base04 = "585B70";
            base05 = "CDD6F4";
            base06 = "F5E0DC";
            base07 = "B4BEFE";
            base08 = "F38BA8";
            base09 = "FAB387";
            base10 = "F9E2AF";
            base11 = "A6E3A1";
            base12 = "94E2D5";
            base13 = "89B4FA";
            base14 = "CBA6F7";
            base15 = "F2CDCD";
          }
          else if (config.collinux.theme == "adwaita")
          then {
            base00 = "1D1D1D";
            base01 = "303030";
            base02 = "3D3846";
            base03 = "77767B";
            base04 = "B0AFAC";
            base05 = "DEDDDA";
            base06 = "F6F5F4";
            base07 = "FCFCFC";
            base08 = "E01B24";
            base09 = "FF7800";
            base10 = "F5C211";
            base11 = "33D17A";
            base12 = "33B2A4";
            base13 = "3584E4";
            base14 = "9141AC";
            base15 = "986A44";
          }
          else if (config.collinux.theme == "kanagawa")
          then {
            base00 = "1F1F28";
            base01 = "16161D";
            base02 = "223249";
            base03 = "54546D";
            base04 = "727169";
            base05 = "DCD7BA";
            base06 = "C8C093";
            base07 = "717C7C";
            base08 = "C34043";
            base09 = "FFA066";
            base10 = "C0A36E";
            base11 = "76946A";
            base12 = "6A9589";
            base13 = "7E9CD8";
            base14 = "957FB8";
            base15 = "D27E99";
          }
          else {};
      };
  };
}