63 lines
1.1 KiB
Bash
Executable File
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
|