sb-battery: notification on very low battery level
This commit is contained in:
@@ -28,28 +28,44 @@ do
|
||||
continue
|
||||
fi
|
||||
|
||||
# Critical low-battery notification at the "!" level (<=5% and discharging).
|
||||
# Notify only once per discharge episode: a flag in /tmp suppresses repeats
|
||||
# and is cleared the moment we stop discharging (plug in) or on reboot
|
||||
# (since /tmp is wiped), so the next low event notifies again.
|
||||
lowflag="/tmp/battery_low_notified_${battery##*/}"
|
||||
if grep -q "Discharging" "$battery"/status; then
|
||||
if [ "$capacity" -le 5 ] && [ ! -f "$lowflag" ]; then
|
||||
notify-send -u critical "❗ Battery critically low" \
|
||||
"Battery at ${capacity}%. Plug in the laptop now."
|
||||
touch "$lowflag"
|
||||
fi
|
||||
else
|
||||
# Plugged in (charging / not charging / full): arm for the next episode.
|
||||
rm -f "$lowflag"
|
||||
fi
|
||||
|
||||
unset status
|
||||
status=$(sed "s/Not charging/🛑/" "$battery"/status)
|
||||
# Center picture around the actual capacity.
|
||||
# Displayable capacities: 0, 1/4, 1/2, 3/4, 1 -> intervall of length 25% centered around displaycategory
|
||||
# -> +- 12.5% for every level
|
||||
if grep -qE "(Discharging|Charging)" "$battery"/status; then
|
||||
status=
|
||||
status=" "
|
||||
[ "$capacity" -le 87 ] &&
|
||||
status=""
|
||||
status=" "
|
||||
[ "$capacity" -le 63 ] &&
|
||||
status=""
|
||||
status=" "
|
||||
[ "$capacity" -le 37 ] &&
|
||||
status=""
|
||||
status=" "
|
||||
[ "$capacity" -le 13 ] &&
|
||||
status=""
|
||||
status=" "
|
||||
[ "$capacity" -le 5 ] &&
|
||||
status="❗"
|
||||
status=" ❗"
|
||||
if grep -q "Charging" "$battery"/status; then
|
||||
status="${status}🔌"
|
||||
fi
|
||||
fi
|
||||
printf "%s \n" "$status"
|
||||
printf "%s\n" "$status"
|
||||
else
|
||||
echo "Error. Capacity:$capacity" > /dev/stderr #if battery fails during reading, quit
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user