summaryrefslogtreecommitdiffstats
path: root/usecases/desktop/graphical/gtk.nix
diff options
context:
space:
mode:
Diffstat (limited to 'usecases/desktop/graphical/gtk.nix')
-rw-r--r--usecases/desktop/graphical/gtk.nix101
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 @@
1inputs: {
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;
70in {
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}