summaryrefslogtreecommitdiff
path: root/home/gtk/default.nix
blob: b7ce33b379489f2314a14b1593efa0f3077efb05 (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
{
  config,
  lib,
  pkgs,
  ...
}: let
  baseCss = ''
    @define-color text #${config.theme.colors.text};
    @define-color subtext #${config.theme.colors.subtext};

    @define-color base #${config.theme.colors.base};
    @define-color surface #${config.theme.colors.surface};
    @define-color overlay #${config.theme.colors.overlay};

    @define-color primary #${config.theme.colors.primary};
    @define-color success #${config.theme.colors.success};
    @define-color warning #${config.theme.colors.warning};
    @define-color error #${config.theme.colors.error};

    @define-color black #${config.theme.colors.bright.black};
    @define-color red #${config.theme.colors.bright.red};
    @define-color green #${config.theme.colors.bright.green};
    @define-color yellow #${config.theme.colors.bright.yellow};
    @define-color blue #${config.theme.colors.bright.blue};
    @define-color magenta #${config.theme.colors.bright.magenta};
    @define-color cyan #${config.theme.colors.bright.cyan};
    @define-color white #${config.theme.colors.bright.white};
    @define-color pink #${config.theme.colors.bright.pink};
    @define-color orange #${config.theme.colors.bright.orange};
  '';
  finalCss = pkgs.runCommandLocal "gtk.css" {} ''
    echo ${lib.escapeShellArg baseCss} >>$out
    cat ${./gtk.css} >>$out
  '';
in {
  gtk = {
    enable = true;
    theme = {
      package = pkgs.adw-gtk3;
      name = "adw-gtk3";
    };
    gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
  };

  xdg.configFile = {
    "gtk-3.0/gtk.css".source = finalCss;
    "gtk-4.0/gtk.css".source = finalCss;
  };
}