#! /usr/bin/zsh battery_level() { # Return a "battery level" gauge ready to be used in prompt. 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 return elif [[ "$remaining" -gt "95" && "$online" -eq "1" ]]; then return elif [[ "$remaining" -lt "10" ]]; then echo "${C_RED}►${C_NO}" return fi gauge="" rgauge="" gcolor=${C_BGREEN} for i in $(seq ${remaining[1]}); do gauge="${gauge}►" done for i in $(seq $(( 10 - ${remaining[1]})) ); do rgauge="${rgauge}·" done if [[ "${#gauge}" -lt "3" ]]; then gcolor=${C_BRED} elif [[ "${#gauge}" -lt "6" ]]; then gcolor=${C_BYELLOW} fi echo "${gcolor}${gauge}${C_NO}${C_WHITE}${rgauge}${C_NO}" }