Skip to content

Commit 2fdb92b

Browse files
committed
gtk: replace Bash script with writeText and linkFarm
1 parent 9d767b1 commit 2fdb92b

1 file changed

Lines changed: 66 additions & 68 deletions

File tree

modules/gtk/theme.nix

Lines changed: 66 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -8,77 +8,75 @@
88
{
99
cfg,
1010
colors,
11+
lib,
1112
adw-gtk3,
12-
runCommandLocal,
13+
linkFarm,
14+
writeText,
1315
}:
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 { };
5218

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+
});
5822

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+
});
7431

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+
};
8036

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

Comments
 (0)