Files
taninux/packaging/tanin-libadwaita/tanin-libadwaita
T
karim 10b88a67bc Initial commit — TANINUX (camel): management app + distro packaging
- app: GTK System Settings (tsettings) + Software Hub (thub) + TUI
- distro/: camel.toml manifest + MANIFEST.md (Arch + [tanin] repo model)
- packaging/: taninux, tanin-desktop (niri metapackage), tanin-greet,
  tanin-libadwaita, tanin-setup
- docs/, data/, LICENSE (GPL-3.0-or-later)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 20:18:30 +02:00

63 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# tanin-libadwaita {dark|light|auto|watch}
# Activates the Fuji recolour for BOTH GTK4/libadwaita and GTK3 by symlinking
# the chosen variant into ~/.config/gtk-{4.0,3.0}/gtk.css.
# dark|light set that mode (and the GNOME color-scheme + gtk-theme)
# auto follow the CURRENT color-scheme once (don't change it)
# watch follow color-scheme changes live (daemon) — the appearance
# toggle in settings then drives light/dark automatically
set -euo pipefail
SHARE="${TANIN_LIBADWAITA_DIR:-/usr/share/tanin/libadwaita}"
CFG="${XDG_CONFIG_HOME:-$HOME/.config}"
# Symlink both toolkits' gtk.css to the variant + pick the matching adw-gtk3.
# Does NOT touch color-scheme (so it's safe to call from a color-scheme watcher).
link_variant() {
local mode="$1" gtktheme
case "$mode" in
dark) gtktheme="adw-gtk3-dark" ;;
light) gtktheme="adw-gtk3" ;;
*) return 2 ;;
esac
local v src dst
for v in gtk-4.0 gtk-3.0; do
src="$SHARE/$v/$mode.css"; dst="$CFG/$v/gtk.css"
[ -f "$src" ] || continue
mkdir -p "$CFG/$v"
if [ -e "$dst" ] && [ ! -L "$dst" ] && [ ! -e "$dst.pre-tanin" ]; then
cp -a "$dst" "$dst.pre-tanin" # back up a real file once
fi
ln -sf "$src" "$dst"
done
gsettings set org.gnome.desktop.interface gtk-theme "$gtktheme" 2>/dev/null || true
gsettings set org.gnome.desktop.interface accent-color "purple" 2>/dev/null || true
echo "tanin-libadwaita: $mode"
}
current_mode() {
case "$(gsettings get org.gnome.desktop.interface color-scheme 2>/dev/null)" in
*prefer-light*) echo light ;;
*) echo dark ;;
esac
}
case "${1:-auto}" in
dark|light)
link_variant "$1"
gsettings set org.gnome.desktop.interface color-scheme \
"$([ "$1" = light ] && echo prefer-light || echo prefer-dark)" 2>/dev/null || true
;;
auto)
link_variant "$(current_mode)"
;;
watch)
link_variant "$(current_mode)"
gsettings monitor org.gnome.desktop.interface color-scheme | while read -r _; do
link_variant "$(current_mode)"
done
;;
*)
echo "usage: tanin-libadwaita {dark|light|auto|watch}" >&2; exit 2 ;;
esac