2 # /etc/acpid/actions/battery.sh
3 # based on work by Frank Dietrich <ablesoft@gmx.de>
4 # £ukasz Pawelczyk <havner@pld-linux.org>
6 # Handle power related events and take appropriate actions.
13 AC=/proc/acpi/ac_adapter/AC
14 BAT=/proc/acpi/battery/$2
16 # get the AC connector state (plugged/unplugged) from /proc filesystem.
17 AC_STATE=`sed -n 's/^.*\(off\|on\)-line.*/\1/p' $AC/state`
19 # get the battery state from /proc filesystem
20 BAT_CAPACITY=`awk '/^remaining\ capacity:/ {print $3}' $BAT/state`
21 BAT_WARNING=`awk '/^alarm:/ {print $2}' $BAT/alarm`
22 BAT_CRITICAL=`awk '/^design\ capacity\ low:/ {print $4}' $BAT/info`
23 if [ "$BAT_CAPACITY" -le "$((BAT_CRITICAL+200))" -a "$AC_STATE" = "off" ]; then
25 elif [ "$BAT_CAPACITY" -le "$((BAT_WARNING+200))" -a "$AC_STATE" = "off" ]; then
33 # AC connector plugged in
34 logger "acpid: `basename $AC` connector plugged in."
35 # deactivate standby (spindown) timeout for the drive
36 #hdparm -q -S 0 /dev/hda
37 # handle processor - this feature is deprecated for Kernel > 2.6.11.
38 #echo 0 > /proc/acpi/processor/CPU0/throttling
39 #echo 0 > /proc/acpi/processor/CPU0/performance
42 # AC connector unplugged
43 logger "acpid: `basename $AC` connector unplugged."
44 # activate standby (spindown) timeout for the drive
45 # timeout 5 minutes (man hdparm, for more informations)
46 #hdparm -q -S 60 /dev/hda
47 # handle processor - this feature is deprecated for Kernel > 2.6.11.
48 #echo 4 > /proc/acpi/processor/CPU0/throttling
49 #echo 3 > /proc/acpi/processor/CPU0/performance
52 # AC connector in undetermined state
53 logger "acpid: Could not determine new `basename $AC` connector state."
59 # battery passed acpi alarm state and AC unplugged
60 logger "acpid: Remaining `basename $BAT` battery capacity low."
62 #play /path_to/alarm.wav
63 # put computer to sleep
64 #echo mem > /sys/power/state
68 # some laptops generate acpi event when machine is about to turn off
69 logger "acpid: Remaining `basename $BAT` battery capacity VERY low."
71 #play /path_to/alarm.wav
72 # put computer to sleep
73 #echo mem > /sys/power/state
77 # either battery is charged or AC plugged
80 # battery in undetermined state
81 logger "acpid: Could not determine `basename $BAT` battery state."