#! /usr/bin/zsh # # Prepare a "battery level" gauge ready to be used in prompt. # battery_level() { local online remaining bstatus gauge gcolor online=0 acpi -a 2> /dev/null | grep -q "on-line" && online=1 bstatus="$(acpi -b 2> /dev/null)" remaining="$(echo ${bstatus[(w)4]} | sed -r 's/(^[0-9]+)%.*/\1/')" if [[ -z "$remaining" ]]; then psvar[2]="" return elif [[ "$remaining" -eq "100" && "$online" -eq "1" ]]; then psvar[2]="" return #elif [[ "$remaining" -gt "95" ]]; then # export BATT_GAUGE="" # return elif [[ "$remaining" -lt "10" ]]; then psvar[2]="►" psvar[3]="red" return fi gauge="" gcolor="green" for i in $(seq ${remaining[1]}); do gauge="${gauge}►" done if [[ "${#gauge}" -lt "3" ]]; then gcolor="red" elif [[ "${#gauge}" -lt "6" ]]; then gcolor="yellow" fi psvar[2]="${gauge}" psvar[3]="${gcolor}" } precmd_functions+="battery_level"