battery.sh (1139B)
1 #!/bin/sh 2 3 # Prints all batteries, their percentage remaining and an emoji corresponding 4 # to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.). 5 6 case $BLOCK_BUTTON in 7 3) notify-send "🔋 Battery module" "🔋: discharging 8 🛑: not charging 9 ♻: stagnant charge 10 🔌: charging 11 ⚡: charged 12 ❗: battery very low!" ;; 13 6) "$TERMINAL" -e "$EDITOR" "$0" ;; 14 esac 15 16 # acpi alternative 17 # acpi | sed "s/Battery [0-9]: //;s/[Dd]ischarging, /🔋/;s/[Nn]ot charging, /🛑/;s/[Cc]harging, /🔌/;s/[Uu]nknown, /♻️/;s/[Ff]ull, /⚡/;s/ (remaining|until charged)//"; exit 18 19 # Loop through all attached batteries. 20 for battery in /sys/class/power_supply/BAT? 21 do 22 # Get its remaining capacity and charge status. 23 capacity=$(cat "$battery"/capacity) || break 24 status=$(sed "s/[Dd]ischarging/🔋/;s/[Nn]ot charging/🛑/;s/[Cc]harging/🔌/;s/[Uu]nknown/♻️/;s/[Ff]ull/⚡/" "$battery"/status) 25 26 # If it is discharging and 25% or less, we will add a ❗ as a warning. 27 [ "$capacity" -le 25 ] && [ "$status" = "🔋" ] && warn="❗" 28 29 printf "%s%s %s%% " "$status" "$warn" "$capacity" 30 unset warn 31 done | sed 's/ *$//'