diff options
Diffstat (limited to 'usecases/desktop/graphical/gtk.nix')
-rw-r--r-- | usecases/desktop/graphical/gtk.nix | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/usecases/desktop/graphical/gtk.nix b/usecases/desktop/graphical/gtk.nix new file mode 100644 index 0000000..4a9f501 --- /dev/null +++ b/usecases/desktop/graphical/gtk.nix | |||
@@ -0,0 +1,101 @@ | |||
1 | inputs: { | ||
2 | config, | ||
3 | lib, | ||
4 | pkgs, | ||
5 | ... | ||
6 | }: let | ||
7 | gtk4NamedColors = with config.theme.colors; { | ||
8 | # From the main CSS | ||
9 | # ----------------- | ||
10 | |||
11 | # TODO: 2 and 4 | ||
12 | |||
13 | blue_1 = fadedBlue; | ||
14 | blue_3 = neutralBlue; | ||
15 | blue_5 = brightBlue; | ||
16 | |||
17 | green_1 = fadedGreen; | ||
18 | green_3 = neutralGreen; | ||
19 | green_5 = brightGreen; | ||
20 | |||
21 | yellow_1 = fadedYellow; | ||
22 | yellow_3 = neutralYellow; | ||
23 | yellow_5 = brightYellow; | ||
24 | |||
25 | orange_1 = fadedOrange; | ||
26 | orange_3 = neutralOrange; | ||
27 | orange_5 = brightOrange; | ||
28 | |||
29 | red_1 = fadedRed; | ||
30 | red_3 = neutralRed; | ||
31 | red_5 = brightRed; | ||
32 | |||
33 | purple_1 = fadedMagenta; | ||
34 | purple_3 = neutralMagenta; | ||
35 | purple_5 = brightMagenta; | ||
36 | |||
37 | # TODO: brown | ||
38 | |||
39 | # From the dark theme CSS | ||
40 | # ----------------------- | ||
41 | |||
42 | # TODO: bright dominant | ||
43 | accent_color = "#8ec07c"; | ||
44 | destructive_color = neutralOrange; | ||
45 | error_color = neutralOrange; | ||
46 | |||
47 | warning_bg_color = neutralYellow; | ||
48 | |||
49 | view_bg_color = background0; | ||
50 | view_fg_color = foreground; | ||
51 | |||
52 | window_bg_color = background1; | ||
53 | window_fg_color = foreground; | ||
54 | |||
55 | headerbar_bg_color = softBackground; | ||
56 | headerbar_fg_color = foreground; | ||
57 | |||
58 | dialog_bg_color = background2; | ||
59 | dialog_fg_color = foreground; | ||
60 | |||
61 | popover_bg_color = background2; | ||
62 | popover_fg_color = foreground; | ||
63 | }; | ||
64 | |||
65 | gtk4Css = lib.concatStringsSep "\n" (lib.mapAttrsToList | ||
66 | (name: value: "@define-color ${name} ${value};") | ||
67 | gtk4NamedColors); | ||
68 | |||
69 | gtk4CssFile = pkgs.writeText "gtk4.css" gtk4Css; | ||
70 | in { | ||
71 | home-manager.users.minijackson = { | ||
72 | gtk = { | ||
73 | enable = true; | ||
74 | iconTheme = { | ||
75 | # TODO: properly modify the colors | ||
76 | package = pkgs.unstable.tela-circle-icon-theme.override { | ||
77 | colorVariants = ["brown"]; | ||
78 | }; | ||
79 | name = "Tela-circle-brown-dark"; | ||
80 | }; | ||
81 | |||
82 | theme = { | ||
83 | package = pkgs.gnome.gnome-themes-extra; | ||
84 | name = "Adwaita-dark"; | ||
85 | }; | ||
86 | |||
87 | gtk3.extraConfig.gtk-application-prefer-dark-theme = true; | ||
88 | }; | ||
89 | |||
90 | dconf.settings = { | ||
91 | "org/gnome/desktop/interface" = { | ||
92 | color-scheme = "prefer-dark"; | ||
93 | }; | ||
94 | }; | ||
95 | |||
96 | xdg.configFile = { | ||
97 | # "gtk-3.0/gtk.css".source = gtkCssFile; | ||
98 | "gtk-4.0/gtk.css".source = gtk4CssFile; | ||
99 | }; | ||
100 | }; | ||
101 | } | ||