aboutsummaryrefslogtreecommitdiff
path: root/.config/cow/scripts/battery.sh
diff options
context:
space:
mode:
authorJustine Smithies <justine@smithies.me.uk>2026-08-15 09:35:09 +0100
committerJustine Smithies <justine@smithies.me.uk>2026-08-15 09:35:09 +0100
commita61da6f76813790bfaa2a995d9285d616b0b0a86 (patch)
tree2bccdb95cf4c8bd1a67478626e4fbd660209044f /.config/cow/scripts/battery.sh
parente14e6e48a276264397d1cc6feedeab9260e5930a (diff)
Initial commit of very WIP cow scripts
Diffstat (limited to '.config/cow/scripts/battery.sh')
-rwxr-xr-x.config/cow/scripts/battery.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/.config/cow/scripts/battery.sh b/.config/cow/scripts/battery.sh
new file mode 100755
index 0000000..2996547
--- /dev/null
+++ b/.config/cow/scripts/battery.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Send a notification if battery is low, change status in info file accordingly
+notify_low () {
+
+ # Battery isn't much but is charging (don't notify)
+ [ "$status" = "on-line" ] && return
+
+ # Battery critically low
+ if [ "$capacity" -le 10 ] && ! grep -q critically-low "$lowinfo"; then
+ notify-send -i "$HOME/.config/icons/critical-battery.png" -u critical "Battery critically low!"
+ echo critically-low >"$lowinfo"
+
+ # Battery is low
+ elif [ "$capacity" -le 20 ] && ! grep -q low "$lowinfo"; then
+ notify-send -i "$HOME/.config/icons/low-battery.png" -t 5500 "Battery low!"
+ echo low >"$lowinfo"
+ fi
+}
+
+status="$(apm | grep -E "AC Line status:" | sed -n -e 's/^.*AC Line status: //p')"
+capacity="$(apm | grep -E "Remaining battery life:" | head -1 | sed -n -e 's/^.*Remaining battery life: //p' | sed 's/.$//')"
+
+# Get the low battery status from file ~/.cache/battery-low-status
+lowinfo="$HOME/.cache/battery-low-status"
+[ ! -e "$lowinfo" ] && touch "$lowinfo"
+
+
+case $1 in
+ left-click)
+ ;;
+ *)
+ # Set charging icon and capacity icon
+ [ "$status" = "on-line" ] && charging_icon="" || charging_icon=""
+ [ "$capacity" -gt 100 ] && capacity=100
+ if [ "$capacity" -lt 15 ]; then capacity_icon=' '
+ elif [ "$capacity" -lt 40 ]; then capacity_icon=' '
+ elif [ "$capacity" -lt 60 ]; then capacity_icon=' '
+ elif [ "$capacity" -lt 90 ]; then capacity_icon=' '
+ else capacity_icon=' '
+ fi
+
+ # Report low battery
+ [ "$capacity" -le 20 ] && notify_low
+
+ # Reset low battery information in these cases
+ { [ "$capacity" -gt 20 ] || [ "$status" = "Charging" ]; } && [ -n "$(cat "$lowinfo")" ] && echo "" >"$lowinfo"
+
+ echo "$capacity_icon$charging_icon $capacity"
+ ;;
+esac