summaryrefslogtreecommitdiff
path: root/modules/user/aesthetics/targets/qutebrowser.nix
blob: ef7f17df580c4e69bcc0c4d107a8e75c0daab996 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
{
  config,
  lib,
  ...
}: let
  cfg = config.aesthetics.targets.qutebrowser;
  aes = config.aesthetics;
in {
  options.aesthetics.targets.qutebrowser.enable = lib.mkOption {
    type = lib.types.bool;
    default = aes.enableAllTargets && aes.hasGui;
    description = "Whether to enable the aesthetics qutebrowser target.";
  };
  config = lib.mkIf (cfg.enable && config.programs.qutebrowser.enable) {
    programs.qutebrowser.settings = {
      fonts = {
        default_family = aes.font.name;
        default_size = "${aes.font.size.small}pt";
      };
      colors = with aes.scheme; let
        background = "#${base00}";
        secondary-background = "#${base01}";
        selection-background = "#${base03}";
        foreground = "#${base05}";
        inverted-foreground = "#${base00}";
        error = "#${base08}";
        info = "#${base0B}";
        secondary-info = "#${base0C}";
        warning = "#${base0E}";
      in {
        completion = {
          category = {
            bg = background;
            fg = info;
            border = {
              bottom = background;
              top = background;
            };
          };
          even.bg = background;
          fg = foreground;
          item.selected = {
            bg = selection-background;
            border = {
              bottom = selection-background;
              top = selection-background;
            };
            fg = foreground;
          };
          match.fg = info;
          odd.bg = secondary-background;
          scrollbar = {
            bg = background;
            fg = foreground;
          };
        };
        contextmenu = {
          disabled = {
            bg = secondary-background;
            fg = inverted-foreground;
          };
          menu = {
            bg = background;
            fg = foreground;
          };
          selected = {
            bg = selection-background;
            fg = foreground;
          };
        };
        downloads = {
          bar.bg = background;
          error = {
            bg = error;
            fg = inverted-foreground;
          };
          start = {
            bg = info;
            fg = inverted-foreground;
          };
          stop = {
            bg = secondary-info;
            fg = inverted-foreground;
          };
        };
        hints = {
          bg = secondary-background;
          fg = foreground;
          match.fg = info;
        };
        keyhint = {
          bg = background;
          fg = foreground;
          suffix.fg = foreground;
        };
        messages = {
          error = {
            bg = error;
            fg = inverted-foreground;
            border = error;
          };
          info = {
            bg = info;
            fg = inverted-foreground;
            border = info;
          };
          warning = {
            bg = warning;
            fg = inverted-foreground;
            border = warning;
          };
        };
        prompts = {
          bg = background;
          border = background;
          fg = foreground;
          selected.bg = secondary-background;
        };
        statusbar = {
          caret = {
            bg = selection-background;
            fg = foreground;
            selection = {
              bg = selection-background;
              fg = foreground;
            };
          };
          command = {
            bg = background;
            fg = foreground;
            private = {
              bg = secondary-background;
              fg = foreground;
            };
          };
          insert = {
            bg = info;
            fg = inverted-foreground;
          };
          normal = {
            bg = background;
            fg = foreground;
          };
          passthrough = {
            bg = info;
            fg = inverted-foreground;
          };
          private = {
            bg = secondary-background;
            fg = foreground;
          };
          progress.bg = info;
          url = {
            error.fg = error;
            fg = foreground;
            hover.fg = foreground;
            success = {
              http.fg = secondary-info;
              https.fg = info;
            };
            warn.fg = warning;
          };
        };
        tabs = {
          bar.bg = background;
          even = {
            bg = secondary-background;
            fg = foreground;
          };
          indicator = {
            inherit error;
            start = secondary-info;
            stop = info;
          };
          odd = {
            bg = background;
            fg = foreground;
          };
          pinned = {
            even = {
              bg = info;
              fg = inverted-foreground;
            };
            odd = {
              bg = secondary-info;
              fg = inverted-foreground;
            };
            selected = {
              even = {
                bg = selection-background;
                fg = foreground;
              };
              odd = {
                bg = selection-background;
                fg = foreground;
              };
            };
          };
          selected = {
            even = {
              bg = selection-background;
              fg = foreground;
            };
            odd = {
              bg = selection-background;
              fg = foreground;
            };
          };
        };
      };
    };
  };
}