aboutsummaryrefslogtreecommitdiff
path: root/river/theme_helper
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2025-11-27 01:08:37 -0500
committerMitchell Riedstra <mitch@riedstra.dev>2025-11-27 01:08:37 -0500
commit488dec64b403ae4aba65cad0e46b4d2767f0b2dd (patch)
treea12d6319d4706fdfb25b5938fe76d1c2a9711482 /river/theme_helper
parenta9f6e9b1f1c0e4f0a628954e3427bf5020d486c0 (diff)
downloadrivercfg-488dec64b403ae4aba65cad0e46b4d2767f0b2dd.tar.gz
rivercfg-488dec64b403ae4aba65cad0e46b4d2767f0b2dd.tar.xz
Automatic light/dark mode switching. What a pain.
Diffstat (limited to 'river/theme_helper')
-rwxr-xr-xriver/theme_helper43
1 files changed, 43 insertions, 0 deletions
diff --git a/river/theme_helper b/river/theme_helper
new file mode 100755
index 0000000..398910d
--- /dev/null
+++ b/river/theme_helper
@@ -0,0 +1,43 @@
+#!/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"
+}
+
+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
+ pkill -SIGUSR1 foot
+ riverctl background-color "$bgcolor_dark"
+ ;;
+ dark)
+ mode=light
+ gnomeSet 'prefer-light'
+ gsettings set org.gnome.desktop.interface gtk-theme Adwaita
+ pkill -SIGUSR2 foot
+ riverctl background-color "$bgcolor_light"
+ ;;
+esac
+
+cat > "$conf" <<EOF
+mode=$mode
+EOF
+