]> git.alrj.org Git - zsh.d.git/blobdiff - S70_battery
Add battery level in right prompt.
[zsh.d.git] / S70_battery
diff --git a/S70_battery b/S70_battery
new file mode 100644 (file)
index 0000000..6283574
--- /dev/null
@@ -0,0 +1,51 @@
+#! /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"