+#! /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 -B -a | grep -q "on-line" && online=1
+
+
+ bstatus="$(acpi -b)"
+ 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"