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)
|
2021-07-16 18:56:20 +02:00
|
|
|
if [ -n "$capacity" ]; then
|
|
|
|
#do not print misreads
|
|
|
|
[ "$capacity" -gt 100 ] &&
|
|
|
|
echo "Error. Capacity:$capacity" > /dev/stderr &&
|
|
|
|
continue
|
|
|
|
# do not display full batteries (nice to unclutter status bars for laptops mostly used stationiary)
|
|
|
|
[ "$capacity" -eq 100 ] &&
|
|
|
|
printf '\n' &&
|
|
|
|
continue
|
|
|
|
|
2023-10-13 13:08:07 +02:00
|
|
|
status=$(sed "s/Discharging//;s/Not charging/🛑/;s/Charging/🔌/;s/Unknown/🔋/;s/Full/⚡/" "$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 [ "$status" = "" ]; then
|
|
|
|
[ "$capacity" -le 13 ] &&
|
|
|
|
status=""
|
|
|
|
[ "$capacity" -le 37 ] &&
|
|
|
|
status=""
|
|
|
|
[ "$capacity" -le 63 ] &&
|
|
|
|
status=""
|
|
|
|
[ "$capacity" -le 87 ] &&
|
|
|
|
status=""
|
|
|
|
fi
|
|
|
|
printf "%s\n" "$status"
|
2021-07-16 18:56:20 +02:00
|
|
|
else
|
|
|
|
echo "Error. Capacity:$capacity" > /dev/stderr #if battery fails during reading, quit
|
|
|
|
fi
|
2020-07-04 14:23:27 +02:00
|
|
|
done | sed 's/ *$//'
|