From d2b62c9d6f30a0ea88b2a235cde120cd10ba332b Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Sat, 11 Jul 2026 22:14:43 -0400 Subject: Sketchybar now, got tired of the battery issue --- .../sketchybar/bar-config/plugins/battery.sh | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 users/ryan/modules/sketchybar/bar-config/plugins/battery.sh (limited to 'users/ryan/modules/sketchybar/bar-config/plugins/battery.sh') diff --git a/users/ryan/modules/sketchybar/bar-config/plugins/battery.sh b/users/ryan/modules/sketchybar/bar-config/plugins/battery.sh new file mode 100755 index 0000000..3d01d63 --- /dev/null +++ b/users/ryan/modules/sketchybar/bar-config/plugins/battery.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +source "$CONFIG_DIR/colors.sh" +source "$CONFIG_DIR/icons.sh" + +CACHE="/tmp/sketchybar_${NAME}.txt" +case "$SENDER" in + mouse.entered) + [ -f "$CACHE" ] && sketchybar --set "$NAME.details" label="$(cat "$CACHE")" + sketchybar --set "$NAME" popup.drawing=on; exit 0 ;; + mouse.exited) + sketchybar --set "$NAME" popup.drawing=off; exit 0 ;; +esac + +RAW="$(pmset -g batt)" +PCT="$(printf '%s' "$RAW" | grep -Eo '[0-9]+%' | head -1 | tr -d '%')" +CHARGING="$(printf '%s' "$RAW" | grep -c 'AC Power')" +[ -z "$PCT" ] && exit 0 + +if [ "$PCT" -ge 80 ]; then ICON=$BAT_4 +elif [ "$PCT" -ge 60 ]; then ICON=$BAT_3 +elif [ "$PCT" -ge 40 ]; then ICON=$BAT_2 +elif [ "$PCT" -ge 20 ]; then ICON=$BAT_1 +else ICON=$BAT_0 +fi + +COLOR=$TEXT +if [ "$CHARGING" -ge 1 ]; then ICON=$BAT_CHARGING; COLOR=$TEXT +elif [ "$PCT" -le 10 ]; then COLOR=$RED +elif [ "$PCT" -le 25 ]; then COLOR=$YELLOW +fi + +sketchybar --set "$NAME" label="${PCT}% ${ICON}" label.color=$COLOR + +# popup: state + time remaining (Waybar battery format-alt "{time}") +STATE="$(printf '%s' "$RAW" | grep -Eo 'discharging|charging|charged|AC attached|finishing charge' | head -1)" +TIME="$(printf '%s' "$RAW" | grep -Eo '[0-9]+:[0-9]+' | head -1)" +LINE="${PCT}%" +[ -n "$STATE" ] && LINE="$LINE · $STATE" +if [ -n "$TIME" ] && [ "$TIME" != "0:00" ]; then + if [ "$CHARGING" -ge 1 ]; then LINE="$LINE · $TIME to full"; else LINE="$LINE · $TIME remaining"; fi +fi +printf '%s' "$LINE" > "$CACHE" -- cgit v1.3