New battery module

I no longer have devices with two batteries, so the old one is overly
complicated.

ACPI provides simpler output and an estimated time remaining!f
This commit is contained in:
John Mertz 2023-09-05 12:34:59 -06:00
parent 7af9d67b29
commit 1247df0cce
Signed by: jpm
GPG Key ID: E9C5EA2D867501AB
1 changed files with 58 additions and 0 deletions

58
waybar/waybar-battery.sh Executable file
View File

@ -0,0 +1,58 @@
#!/bin/bash
ACPI=$(acpi -b)
STATUS=$(echo $ACPI | cut -d':' -f2 | sed 's/^\s\([^,]*\),.*/\1/')
LEVEL=$(echo $ACPI | cut -d',' -f2 | sed 's/\s//g' | sed 's/%$//')
TIME=$(echo $ACPI | cut -d',' -f3 | sed 's/\s//')
CLASS="unknown"
if [[ -z $1 ]]; then
echo "$STATUS $LEVEL ($TIME)"
elif [[ $1 == bar ]]; then
case "$STATUS" in
"Discharging")
CLASS="discharging"
case "$LEVEL" in
[8-9][0-9])
STATUS=" "
;;
[6-7][0-9])
STATUS=" "
;;
[4-5][0-9])
STATUS=" "
;;
[2-3][0-9])
STATUS=" "
;;
1[0-9])
CLASS="low"
STATUS=" "
;;
[1-9])
CLASS="charging"
STATUS=" "
;;
*)
STATUS="? "
;;
esac
;;
"Not charging")
CLASS="ac"
STATUS=" "
;;
"Charging")
CLASS="charging"
STATUS="🗲 "
;;
*)
STATUS="✘ "
;;
esac
printf '{"text":"%b%%","icon":"%b ","percentage":"%b","tooltip":"%b","class":"%b"}' "${STATUS}${LEVEL}" $STATUS $LEVEL "$TIME" $CLASS
exit
elif [[ $1 == 'notify' ]]; then
notify-send Battery "$(echo $ACPI | cut -d':' -f2- | sed 's/\s//')"
else
echo "invalid option $1"
fi