dotfiles/.local/bin/statusbar/battery

29 lines
1006 B
Plaintext
Raw Normal View History

2020-07-04 14:23:27 +02:00
#!/bin/sh
# Prints all batteries, their percentage remaining and an emoji corresponding
# to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.).
case $BLOCK_BUTTON in
3) notify-send "🔋 Battery module" "🔋: discharging
🛑: not charging
2020-11-07 19:07:02 +01:00
🔄;: stagnant charge
2020-07-04 14:23:27 +02:00
🔌: charging
⚡: charged
❗: battery very low!" ;;
esac
# Loop through all attached batteries.
for battery in /sys/class/power_supply/BAT?
do
# Get its remaining capacity and charge status.
2020-11-07 19:07:02 +01:00
capacity=$(cat "$battery"/capacity 2>/dev/null)
2020-11-07 23:52:40 +01:00
[ "$capacity" -gt 100 ] && exit #do not print misreads
[ -z "$capacity" ] && exit #if battery fails during reading, quit
2020-11-07 19:07:02 +01:00
status=$(sed "s/Discharging/🔋/;s/Not charging/🛑/;s/Charging/🔌/;s/Unknown/🔋/;s/Full/⚡/" "$battery"/status)
2020-07-04 14:23:27 +02:00
# If it is discharging and 25% or less, we will add a ❗ as a warning.
2020-11-07 23:52:40 +01:00
[ "$capacity" -le 25 ] && [ "$status" = "🔋" ] && warn="❗"
2020-11-07 19:07:02 +01:00
printf "%s%s%s%%\n" "$status" "$warn" "$capacity"
2020-07-04 14:23:27 +02:00
unset warn
done | sed 's/ *$//'