#! /usr/bin/zsh
-#
-# Prepare a "battery level" gauge ready to be used in prompt.
-#
-
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
- psvar[2]=""
return
- elif [[ "$remaining" -eq "100" && "$online" -eq "1" ]]; then
- psvar[2]=""
+ elif [[ "$remaining" -gt "95" && "$online" -eq "1" ]]; then
return
- #elif [[ "$remaining" -gt "95" ]]; then
- # export BATT_GAUGE=""
- # return
elif [[ "$remaining" -lt "10" ]]; then
- psvar[2]="►"
- psvar[3]="red"
+ echo "${C_RED}►${C_NO}"
return
fi
gauge=""
- gcolor="green"
+ 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="red"
+ gcolor=${C_BRED}
elif [[ "${#gauge}" -lt "6" ]]; then
- gcolor="yellow"
+ gcolor=${C_BYELLOW}
fi
- psvar[2]="${gauge}"
- psvar[3]="${gcolor}"
-
+ echo "${gcolor}${gauge}${C_NO}${C_WHITE}${rgauge}${C_NO}"
}
-
-precmd_functions+="battery_level"