diff options
author | Minijackson <minijackson@riseup.net> | 2022-12-15 19:53:52 +0100 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2022-12-15 19:53:52 +0100 |
commit | 8259bc0e1636e01222a5727bb73417c01534ea54 (patch) | |
tree | 4dd8528e1a26ff16deb023176f928179bf7d934a /usecases | |
parent | e2ac73a604671f073a97a3953ceb59792202fa0b (diff) | |
download | nixos-config-reborn-8259bc0e1636e01222a5727bb73417c01534ea54.tar.gz nixos-config-reborn-8259bc0e1636e01222a5727bb73417c01534ea54.zip |
graphical/gtk: move from graphical.nix, set colors for GTK4
Diffstat (limited to 'usecases')
-rw-r--r-- | usecases/desktop/graphical.nix | 62 | ||||
-rw-r--r-- | usecases/desktop/graphical/gtk.nix | 101 |
2 files changed, 105 insertions, 58 deletions
diff --git a/usecases/desktop/graphical.nix b/usecases/desktop/graphical.nix index 8251a50..cee9186 100644 --- a/usecases/desktop/graphical.nix +++ b/usecases/desktop/graphical.nix | |||
@@ -7,6 +7,7 @@ inputs: { | |||
7 | imports = [ | 7 | imports = [ |
8 | (import ./graphical/alacritty.nix inputs) | 8 | (import ./graphical/alacritty.nix inputs) |
9 | (import ./graphical/firefox.nix inputs) | 9 | (import ./graphical/firefox.nix inputs) |
10 | (import ./graphical/gtk.nix inputs) | ||
10 | (import ./graphical/mpv.nix inputs) | 11 | (import ./graphical/mpv.nix inputs) |
11 | (import ./graphical/rofi.nix inputs) | 12 | (import ./graphical/rofi.nix inputs) |
12 | (import ./graphical/sway.nix inputs) | 13 | (import ./graphical/sway.nix inputs) |
@@ -105,63 +106,8 @@ inputs: { | |||
105 | } | 106 | } |
106 | ]; | 107 | ]; |
107 | 108 | ||
108 | home-manager.users.minijackson = let | 109 | home-manager.users.minijackson.services.kdeconnect = { |
109 | color = | 110 | enable = true; |
110 | if config.theme.colors.dominantName == "cyan" | 111 | indicator = true; |
111 | then "teal" | ||
112 | else config.theme.colors.dominantName; | ||
113 | in { | ||
114 | gtk = { | ||
115 | enable = true; | ||
116 | iconTheme = { | ||
117 | # TODO: properly modify the colors | ||
118 | package = pkgs.unstable.tela-circle-icon-theme.override { | ||
119 | colorVariants = ["brown"]; | ||
120 | }; | ||
121 | name = "Tela-circle-brown-dark"; | ||
122 | }; | ||
123 | |||
124 | theme = { | ||
125 | package = pkgs.gnome.gnome-themes-extra; | ||
126 | name = "Adwaita-dark"; | ||
127 | }; | ||
128 | |||
129 | # theme = { | ||
130 | # package = | ||
131 | # (pkgs.unstable.graphite-gtk-theme.overrideAttrs (_old: { | ||
132 | # src = pkgs.fetchFromGitHub { | ||
133 | # owner = "vinceliuice"; | ||
134 | # repo = "graphite-gtk-theme"; | ||
135 | # rev = "a65fbec34f1ba1e9c7f7a86afc7c02d2210a11a4"; | ||
136 | # hash = "sha256-aJMSLWVDqsAx+3QYAAhGKddEaformlK28M7YSJ/v7sU="; | ||
137 | # }; | ||
138 | # })) | ||
139 | # .override { | ||
140 | # themeVariants = [color]; | ||
141 | # sizeVariants = ["compact"]; | ||
142 | # tweaks = ["normal" "rimless"]; | ||
143 | # }; | ||
144 | # name = "Graphite-${color}-Dark-compact"; | ||
145 | # }; | ||
146 | |||
147 | # gtk4.extraConfig = { | ||
148 | # gtk-application-prefer-dark-theme = true; | ||
149 | # }; | ||
150 | |||
151 | gtk3.extraConfig.gtk-application-prefer-dark-theme = true; | ||
152 | }; | ||
153 | |||
154 | dconf.settings = { | ||
155 | "org/gnome/desktop/interface" = { | ||
156 | color-scheme = "prefer-dark"; | ||
157 | }; | ||
158 | }; | ||
159 | |||
160 | # home.sessionVariables.GTK_THEME = "Graphite-${color}-Dark-compact"; | ||
161 | |||
162 | services.kdeconnect = { | ||
163 | enable = true; | ||
164 | indicator = true; | ||
165 | }; | ||
166 | }; | 112 | }; |
167 | } | 113 | } |
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 | } | ||