Author: havner                       Date: Mon Aug 14 21:32:24 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- formatting/author
- battery support

---- Files affected:
SOURCES:
   acpid.battery.conf (1.1 -> 1.2) , acpid.battery.sh (1.2 -> 1.3) 

---- Diffs:

================================================================
Index: SOURCES/acpid.battery.conf
diff -u SOURCES/acpid.battery.conf:1.1 SOURCES/acpid.battery.conf:1.2
--- SOURCES/acpid.battery.conf:1.1      Sat Jul 22 19:33:29 2006
+++ SOURCES/acpid.battery.conf  Mon Aug 14 23:32:18 2006
@@ -1,5 +1,5 @@
 # /etc/acpid/events/battery
-# This detects changes to AC connector status, and passes them to
+# This detects power related events and passes them to
 # /etc/acpi/actions/battery.sh for further processing.
 
 event=battery

================================================================
Index: SOURCES/acpid.battery.sh
diff -u SOURCES/acpid.battery.sh:1.2 SOURCES/acpid.battery.sh:1.3
--- SOURCES/acpid.battery.sh:1.2        Thu Aug 10 02:04:00 2006
+++ SOURCES/acpid.battery.sh    Mon Aug 14 23:32:18 2006
@@ -1,39 +1,83 @@
 #!/bin/sh
 # /etc/acpid/actions/battery.sh
 # based on work by Frank Dietrich <[EMAIL PROTECTED]>
+# Ɓukasz Pawelczyk <[EMAIL PROTECTED]>
 #
-# Detect AC connector plugged in or unplugged and take appropriate actions.
+# Handle power related events and take appropriate actions.
 
 if [ $# != 1 ]; then
        exit 1
 fi
 set $*
 
-# get the AC connector state from /proc filesystem.
-STATE=`sed -n 's/^.*\(off\|on\)-line.*/\1/p' /proc/acpi/ac_adapter/AC/state`
+AC=/proc/acpi/ac_adapter/AC
+BAT=/proc/acpi/battery/BAT0
 
-case "$STATE" in
-       on)
-               # AC connector plugged in
-               logger "acpid: AC connector plugged in."
-               # deactivate standby (spindown) timeout for the drive
-               #hdparm -q -S 0 /dev/hda
-               # handle processor
-               #echo 0 > /proc/acpi/processor/CPU0/throttling
-               #echo 0 > /proc/acpi/processor/CPU0/performance
-               ;;
-       off)
-               # AC connector unplugged
-               logger "acpid: AC connector unplugged."
-               # activate standby (spindown) timeout for the drive
-               # timeout 5 minutes (man hdparm, for more informations)
-               #hdparm -q -S 60 /dev/hda 
-               # handle processor
-               #echo 4 > /proc/acpi/processor/CPU0/throttling
-               #echo 3 > /proc/acpi/processor/CPU0/performance
-               ;;
-       *)
-               # AC connector in undetermined state
-               logger "acpid: Could not determine new AC connector state."
-               ;;
+# get the AC connector state (plugged/unplugged) from /proc filesystem.
+AC_STATE=`sed -n 's/^.*\(off\|on\)-line.*/\1/p' $AC/state`
+
+# get the battery state from /proc filesystem
+BAT_CAPACITY=`awk '/^remaining\ capacity:/ {print $3}' $BAT/state`
+BAT_WARNING=`awk '/^alarm:/ {print $2}' $BAT/alarm`
+BAT_CRITICAL=`awk '/^design\ capacity\ low:/ {print $4}' $BAT/info`
+if [ "$BAT_CAPACITY" -le "$((BAT_CRITICAL+200))" -a "$AC_STATE" = "off" ]; then
+       BAT_STATE=critical
+elif [ "$BAT_CAPACITY" -le "$((BAT_WARNING+200))" -a "$AC_STATE" = "off" ]; 
then
+       BAT_STATE=warning
+else
+       BAT_STATE=normal
+fi
+
+case "$AC_STATE" in
+  on)
+       # AC connector plugged in
+       logger "acpid: `basename $AC` connector plugged in."
+       # deactivate standby (spindown) timeout for the drive
+       #hdparm -q -S 0 /dev/hda
+       # handle processor
+       #echo 0 > /proc/acpi/processor/CPU0/throttling
+       #echo 0 > /proc/acpi/processor/CPU0/performance
+       ;;
+  off)
+       # AC connector unplugged
+       logger "acpid: `basename $AC` connector unplugged."
+       # activate standby (spindown) timeout for the drive
+       # timeout 5 minutes (man hdparm, for more informations)
+       #hdparm -q -S 60 /dev/hda 
+       # handle processor
+       #echo 4 > /proc/acpi/processor/CPU0/throttling
+       #echo 3 > /proc/acpi/processor/CPU0/performance
+       ;;
+  *)
+       # AC connector in undetermined state
+       logger "acpid: Could not determine new `basename $AC` connector state."
+       ;;
+esac
+
+case "$BAT_STATE" in
+  warning)
+       # battery passed acpi alarm state and AC unplugged
+       logger "acpid: Remaining `basename $BAT` battery capacity low"
+       # play alarm sound
+       #play /path_to/alarm.wav
+       # put computer to sleep
+       #echo mem > /sys/power/state
+       #hibernate
+       ;;
+  critical)
+       # some laptops generate acpi event when machine is about to turn off
+       logger "acpid: Remaining `basename $BAT` battery capacity VERY low"
+       # play alarm sound
+       #play /path_to/alarm.wav
+       # put computer to sleep
+       #echo mem > /sys/power/state
+       #hibernate
+       ;;
+  normal)
+       # either battery is charged or AC plugged
+       ;;
+  *)
+       # battery in undetermined state
+       logger "acpid: Could not determine `basename $BAT` battery state"
+       ;;
 esac
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/acpid.battery.conf?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/SOURCES/acpid.battery.sh?r1=1.2&r2=1.3&f=u

_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to