summaryrefslogtreecommitdiff
path: root/common/modules/matugen/templates/matugen-gtk.nix
blob: 7351398a1379240b2d06019c7f6bade4764f96a9 (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
{
  config,
  lib,
  ...
}:
{
  config =
    lib.mkIf (config.gtk.theme.name == "adw-gtk3" && config.beeMods.windowManagers.beeConfig.enable)
      {
        xdg.configFile."matugen/templates/gtk.css" = {
          text = ''
            /*
             * GTK Colors
             * Generated with Matugen
             */

            /* via thairanaru on GitHub: */

            /* Destructive colors are basically error colors */
            @define-color destructive_bg_color {{colors.error.default.hex}};
            @define-color destructive_fg_color {{colors.on_error.default.hex}};
            /* Follow material spec */
            @define-color error_bg_color {{colors.error.default.hex}};
            @define-color error_fg_color {{colors.on_error.default.hex}};
            /* Follow material spec (also I think looks nicer) */
            @define-color accent_fg_color {{colors.on_primary.default.hex}};
            @define-color accent_bg_color {{colors.primary.default.hex}};
            /* Use surface instead of background */
            @define-color window_bg_color {{colors.surface.default.hex}};
            @define-color window_fg_color {{colors.on_surface.default.hex}};
            /* Make it more similar to Adwaita */
            @define-color view_bg_color {{colors.surface.default.hex}};
            @define-color view_fg_color {{colors.on_surface.default.hex}};
            @define-color headerbar_bg_color {{colors.surface.default.hex}};
            @define-color headerbar_fg_color {{colors.on_surface.default.hex}};
            @define-color sidebar_bg_color {{colors.surface_container.default.hex}};
            @define-color sidebar_fg_color {{colors.on_surface.default.hex}};
            /* There is only like one application I know that uses this, and there isn't a good way to get
            a color between surface and surface container so I think just giving this surface is a good enough fallback*/
            @define-color secondary_sidebar_bg_color {{colors.surface.default.hex}};
            @define-color secondary_sidebar_fg_color {{colors.on_surface.default.hex}};
            @define-color card_bg_color {{colors.surface_container.default.hex}};
            @define-color card_fg_color {{colors.on_surface.default.hex}};
            @define-color overview_bg_color {{colors.surface_container.default.hex}};
            @define-color overview_fg_color {{colors.on_surface.default.hex}};
            @define-color popover_bg_color {{colors.surface_container.default.hex}};
            @define-color popover_fg_color {{colors.on_surface.default.hex}};
            @define-color dialog_bg_color {{colors.surface.default.hex}};
            @define-color dialog_fg_color {{colors.on_surface.default.hex}};

            /* Backdrop/unfocused states - prevents white flash on window unfocus */
            @define-color headerbar_backdrop_color @window_bg_color;
            @define-color sidebar_backdrop_color @sidebar_bg_color;
            @define-color theme_unfocused_fg_color @window_fg_color;
            @define-color theme_unfocused_text_color @view_fg_color;
            @define-color theme_unfocused_bg_color @window_bg_color;
            @define-color theme_unfocused_base_color @window_bg_color;
            @define-color theme_unfocused_selected_bg_color @accent_bg_color;
            @define-color theme_unfocused_selected_fg_color @accent_fg_color;
          '';
        };
      };
}