|
8 | 8 | { |
9 | 9 | cfg, |
10 | 10 | colors, |
| 11 | + lib, |
11 | 12 | adw-gtk3, |
12 | | - runCommandLocal, |
| 13 | + linkFarm, |
| 14 | + writeText, |
13 | 15 | }: |
14 | | -runCommandLocal "stylix-gtk-theme" |
15 | | - { |
16 | | - baseCss = colors { |
17 | | - template = ./gtk.css.mustache; |
18 | | - extension = ".css"; |
19 | | - }; |
20 | | - inherit (cfg) extraCss; |
21 | | - parent = "${adw-gtk3}/share/themes/adw-gtk3"; |
22 | | - } |
23 | | - '' |
24 | | - config="$out/etc/xdg" |
25 | | - theme="$out/share/themes/Stylix" |
26 | | -
|
27 | | - mkdir --parents \ |
28 | | - "$config/gtk-3.0" \ |
29 | | - "$config/gtk-4.0" \ |
30 | | - "$theme/gtk-3.0" \ |
31 | | - "$theme/gtk-4.0" |
32 | | -
|
33 | | - cat >"$config/gtk-3.0/settings.ini" <<EOF |
34 | | - [Settings] |
35 | | - gtk-theme-name=Stylix |
36 | | - EOF |
37 | | -
|
38 | | - cat >"$config/gtk-4.0/settings.ini" <<EOF |
39 | | - [Settings] |
40 | | - gtk-theme-name=Stylix |
41 | | - EOF |
42 | | -
|
43 | | - cat >"$theme/index.theme" <<EOF |
44 | | - [Desktop Entry] |
45 | | - Name=Stylix |
46 | | - Type=X-GNOME-Metatheme |
47 | | - Encoding=UTF-8 |
48 | | -
|
49 | | - [X-GNOME-Metatheme] |
50 | | - GtkTheme=Stylix |
51 | | - EOF |
| 16 | +let |
| 17 | + format = lib.generators.toINI { }; |
52 | 18 |
|
53 | | - cat >"$theme/gtk-3.0/gtk.css" <<EOF |
54 | | - @import url('$parent/gtk-3.0/gtk.css'); |
55 | | - @import url('$baseCss'); |
56 | | - $extraCss |
57 | | - EOF |
| 19 | + settings = writeText "stylix-gtk-settings.ini" (format { |
| 20 | + Settings.gtk-theme-name = "Stylix"; |
| 21 | + }); |
58 | 22 |
|
59 | | - cat >"$theme/gtk-3.0/gtk-dark.css" <<EOF |
60 | | - @import url('$parent/gtk-3.0/gtk-dark.css'); |
61 | | - @import url('$baseCss'); |
62 | | - $extraCss |
63 | | - EOF |
64 | | -
|
65 | | - ln --symbolic \ |
66 | | - "$parent/gtk-3.0/assets" \ |
67 | | - "$theme/gtk-3.0/assets" |
68 | | -
|
69 | | - cat >"$theme/gtk-4.0/gtk.css" <<EOF |
70 | | - @import url('$parent/gtk-4.0/gtk.css'); |
71 | | - @import url('$baseCss'); |
72 | | - $extraCss |
73 | | - EOF |
| 23 | + index = writeText "stylix-gtk-index.theme" (format { |
| 24 | + "Desktop Entry" = { |
| 25 | + Encoding = "UTF-8"; |
| 26 | + Name = "Stylix"; |
| 27 | + Type = "X-GNOME-Metatheme"; |
| 28 | + }; |
| 29 | + X-GNOME-Metatheme.GtkTheme = "Stylix"; |
| 30 | + }); |
74 | 31 |
|
75 | | - cat >"$theme/gtk-4.0/gtk-dark.css" <<EOF |
76 | | - @import url('$parent/gtk-4.0/gtk-dark.css'); |
77 | | - @import url('$baseCss'); |
78 | | - $extraCss |
79 | | - EOF |
| 32 | + baseCss = colors { |
| 33 | + template = ./gtk.css.mustache; |
| 34 | + extension = ".css"; |
| 35 | + }; |
80 | 36 |
|
81 | | - ln --symbolic \ |
82 | | - "$parent/gtk-4.0/assets" \ |
83 | | - "$theme/gtk-4.0/assets" |
84 | | - '' |
| 37 | + css = |
| 38 | + path: |
| 39 | + writeText "stylix-gtk-${path}" '' |
| 40 | + @import url('${adw-gtk3}/share/themes/adw-gtk3/${path}'); |
| 41 | + @import url('${baseCss}'); |
| 42 | + ${cfg.extraCss} |
| 43 | + ''; |
| 44 | +in |
| 45 | +linkFarm "stylix-gtk" [ |
| 46 | + { |
| 47 | + name = "etc/xdg/gtk-3.0/settings.ini"; |
| 48 | + path = settings; |
| 49 | + } |
| 50 | + { |
| 51 | + name = "etc/xdg/gtk-4.0/settings.ini"; |
| 52 | + path = settings; |
| 53 | + } |
| 54 | + { |
| 55 | + name = "share/themes/Stylix/index.theme"; |
| 56 | + path = index; |
| 57 | + } |
| 58 | + { |
| 59 | + name = "share/themes/Stylix/gtk-3.0/assets"; |
| 60 | + path = "${adw-gtk3}/share/themes/adw-gtk3/gtk-3.0/assets"; |
| 61 | + } |
| 62 | + { |
| 63 | + name = "share/themes/Stylix/gtk-3.0/gtk.css"; |
| 64 | + path = css "gtk-3.0/gtk.css"; |
| 65 | + } |
| 66 | + { |
| 67 | + name = "share/themes/Stylix/gtk-3.0/gtk-dark.css"; |
| 68 | + path = css "gtk-3.0/gtk-dark.css"; |
| 69 | + } |
| 70 | + { |
| 71 | + name = "share/themes/Stylix/gtk-4.0/assets"; |
| 72 | + path = "${adw-gtk3}/share/themes/adw-gtk3/gtk-4.0/assets"; |
| 73 | + } |
| 74 | + { |
| 75 | + name = "share/themes/Stylix/gtk-4.0/gtk.css"; |
| 76 | + path = css "gtk-4.0/gtk.css"; |
| 77 | + } |
| 78 | + { |
| 79 | + name = "share/themes/Stylix/gtk-4.0/gtk-dark.css"; |
| 80 | + path = css "gtk-4.0/gtk-dark.css"; |
| 81 | + } |
| 82 | +] |
0 commit comments