scripts/waybar/waybar-battery.sh

63 lines
1.1 KiB
Bash
Executable File

#!/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="critical"
STATUS=" "
;;
*)
STATUS="? "
;;
esac
;;
"Not charging")
CLASS="ac"
STATUS=" "
;;
"Full")
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