#!/bin/sh # Default acpi script that takes an entry for all actions # NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to # modify it to not use /sys # $1 should be + or - to step up or down the brightness. step_backlight() { for backlight in /sys/class/backlight/*/; do [ -d "$backlight" ] || continue step=$(( $(cat "$backlight/max_brightness") / 20 )) [ "$step" -gt "1" ] || step=1 #fallback if gradation is too low printf '%s' "$(( $(cat "$backlight/brightness") $1 step ))" >"$backlight/brightness" done } minspeed=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq) maxspeed=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" case "$1" in button/power) case "$2" in PBTN|PWRF) logger "PowerButton pressed: $2, shutting down..." shutdown -P now ;; *) logger "button/power ACPI action undefined: $2" ;; esac ;; button/sleep) case "$2" in SBTN|SLPB) # suspend-to-ram logger "Sleep Button pressed: $2, suspending..." zzz ;; *) logger "button/sleep ACPI action undefined: $2" ;; esac ;; ac_adapter) case "$2" in AC|ACAD|ADP0) case "$4" in 00000000) printf '%s' "$minspeed" >"$setspeed" #/etc/laptop-mode/laptop-mode start ;; 00000001) printf '%s' "$maxspeed" >"$setspeed" #/etc/laptop-mode/laptop-mode stop ;; esac ;; *) logger "ac_adapter ACPI action undefined: $2" ;; esac ;; battery) case "$2" in BAT0) case "$4" in 00000000) #echo "offline" >/dev/tty5 ;; 00000001) #echo "online" >/dev/tty5 ;; esac ;; CPU0) ;; PNP0C0A*) : ;; *) logger "battery ACPI action undefined: $2" ;; esac ;; button/lid) case "$3" in close) # suspend-to-ram logger "LID closed, suspending..." zzz ;; open) logger "LID opened" ;; *) logger "button/lid ACPI action undefined (LID): $2";; esac ;; video/brightnessdown) step_backlight - ;; video/brightnessup) step_backlight + ;; processor) : ;; *) logger "ACPI group/action undefined: $1 / $2" ;; esac