#!/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