aboutsummaryrefslogtreecommitdiff
path: root/river/theme_helper
blob: 870f3513e0dba579915788159c7a53f44e019ff7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/sh
set -ex
# exec >/tmp/theme.log 2>&1
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
conf="$XDG_CONFIG_HOME/river/theme_conf"

gnomeSet() {
	gsettings set org.gnome.desktop.interface color-scheme "$1" || echo "color-scheme failed"
}

kickWaybar() {
		sh -c 'if pgrep waybar; then pkill waybar ; exec waybar ; fi' &
}

kickMako() {
		sh -c 'if pgrep mako; then pkill mako ; exec mako ; fi' &
}

bgcolor_dark=0x282828
bgcolor_light=0xfbf1c7

if ! [ -e "$conf" ] ; then
cat > "$conf" <<EOF
mode=light
EOF
fi

. "$conf"

case $mode in
	light)
		mode=dark
		gnomeSet 'prefer-dark'
		# Because GTK is an absolute disaster...
		gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark || echo "gtk-theme failed..."
		pkill -SIGUSR1 foot
		riverctl background-color "$bgcolor_dark"
		echo '@import url("style-dark.css");' > "$XDG_CONFIG_HOME"/waybar/style.css
		kickWaybar
		ln -sf dark "$XDG_CONFIG_HOME"/mako/config
		kickMako
	;;
	dark)
		mode=light
		gnomeSet 'prefer-light'
		gsettings set org.gnome.desktop.interface gtk-theme Adwaita || echo "gtk-theme failed..."
		pkill -SIGUSR2 foot
		riverctl background-color "$bgcolor_light"
		echo '@import url("style-light.css");' > "$XDG_CONFIG_HOME"/waybar/style.css
		kickWaybar
		ln -sf light "$XDG_CONFIG_HOME"/mako/config
		kickMako
	;;
esac

cat > "$conf" <<EOF
mode=$mode
EOF