]> code.delx.au - spectrwm/commitdiff
I want to know if I'm on AC, might as well make it pretty while we're here.
authorRyan McBride <mcbride@countersiege.com>
Fri, 23 Jan 2009 08:30:03 +0000 (08:30 +0000)
committerRyan McBride <mcbride@countersiege.com>
Fri, 23 Jan 2009 08:30:03 +0000 (08:30 +0000)
Also try to make it shut up on systems without battery.

baraction.sh

index e2b780676f0c654d98a952171b36e0f38d4c1984..b146d5bd59ebad80ba08c97002beae70771a7647 100644 (file)
@@ -1,2 +1,46 @@
 #!/bin/sh
-while :; do echo "battery" `/usr/sbin/apm -l` "%"; sleep 1; done
+
+print_apm() {
+       BAT_STATUS=$1
+       BAT_LEVEL=$2
+       AC_STATUS=$3
+
+       if [ $AC_STATUS -ne 255 -o $BAT_STATUS -lt 4 ]; then
+               if [ $AC_STATUS -eq 0 ]; then
+                       echo "on battery (${BAT_LEVEL}%)"
+               else
+                       case $AC_STATUS in
+                       1)
+                               AC_STRING="on AC: "
+                               ;;
+                       2)
+                               AC_STRING="on backup AC: "
+                               ;;
+                       *)
+                               AC_STRING=""
+                               ;;
+                       esac;
+                       case $BAT_STATUS in
+                       4)
+                               BAT_STRING="(no battery)"
+                               ;;
+                       [0-3])
+                               BAT_STRING="(battery ${BAT_LEVEL}%)"
+                               ;;
+                       *)
+                               BAT_STRING="(battery unknown)"
+                               ;;
+                       esac;
+               
+                       FULL="${AC_STRING}${BAT_STRING}"
+                       if [ "$FULL" != "" ]; then
+                               echo $FULL
+                       fi
+               fi
+       fi
+}
+
+while :; do
+       print_apm `/usr/sbin/apm -alb`
+       sleep 59
+done