You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-3-templates/install/1live/acpid/default.sh

164 lines
3.4 KiB

# Calculate comment=# hr_laptop!=
#!/bin/sh
# /etc/acpi/default.sh
# Default acpi script that takes an entry for all actions
set $*
group=${1%%/*}
action=${1#*/}
device=$2
id=$3
value=$4
BACKLIGHT_DIR=/sys/devices/virtual/backlight/acpi_video0
# increase backlight
inc_backlight() {
local cur_backlight=$(cat $BACKLIGHT_DIR/actual_brightness)
local max_backlight=$(cat $BACKLIGHT_DIR/max_brightness)
[[ $cur_backlight -lt $max_backlight ]] &&
echo $(($cur_backlight + 1)) >$BACKLIGHT_DIR/brightness
}
# decrease backlight
dec_backlight() {
local cur_backlight=$(cat $BACKLIGHT_DIR/actual_brightness)
local max_backlight=$(cat $BACKLIGHT_DIR/max_brightness)
[[ $cur_backlight -gt 0 ]] &&
echo $(($cur_backlight - 1)) >$BACKLIGHT_DIR/brightness
}
# set powersave cpu mode
powersave_cpu() {
for cpunum in $(seq 0 $(( $(ls -d /sys/devices/system/cpu/cpu[0-9] | wc -w)-1)));do
cpufreq-set -c$cpunum -g powersave
done
}
# set ondemand cpu mode
ondemand_cpu() {
for cpunum in $(seq 0 $(( $(ls -d /sys/devices/system/cpu/cpu[0-9] | wc -w)-1)));do
cpufreq-set -c$cpunum -g ondemand
done
}
# set specified freq for all process
set_freq() {
for cpunum in $(seq 0 $(( $(ls -d /sys/devices/system/cpu/cpu[0-9] | wc -w)-1)));do
cpufreq-set -c$cpunum -f$1
done
}
# increase cpu freq
inc_freq() {
NEWCPUFREQ=
for i in `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies`;do
if [[ $i == `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq` ]];then
if [[ -n $NEWCPUFREQ ]];then
set_freq $NEWCPUFREQ
else
set_freq $i
fi
break
fi
S=$NEWCPUFREQ
done
}
# decrease cpu freq
dec_freq() {
NEWCPUFREQ=
for i in `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies`;do
if [[ -n $NEWCPUFREQ ]];then
set_freq $i
break
fi
if [[ $i == `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq` ]];then
NEWCPUFREQ=$i
fi
done
}
log_unhandled() {
logger "ACPI event unhandled: $*"
}
case "$group" in
button)
case "$action" in
power)
/sbin/init 0
;;
# if your laptop doesnt turn on/off the display via hardware
# switch and instead just generates an acpi event, you can force
# X to turn off the display via dpms. note you will have to run
# 'xhost +local:0' so root can access the X DISPLAY.
#lid)
# xset dpms force off
# ;;
*) log_unhandled $* ;;
esac
;;
ac_adapter)
case "$value" in
# Add code here to handle when the system is unplugged
# (maybe change cpu scaling to powersave mode). For
# multicore systems, make sure you set powersave mode
# for each core!
*0)
powersave_cpu
;;
# Add code here to handle when the system is plugged in
# (maybe change cpu scaling to performance mode). For
# multicore systems, make sure you set performance mode
# for each core!
*1)
ondemand_cpu
;;
*) log_unhandled $* ;;
esac
;;
sony)
case "$action" in
hotkey)
case "$device" in
SNC)
case "$id" in
*01)
case "$value" in
*010)
dec_backlight
;;
*011)
inc_backlight
;;
*020)
dec_freq
;;
*021)
inc_freq
;;
*040)
eject
;;
*) log_unhandled $* ;;
esac ;;
*) log_unhandled $* ;;
esac
;;
*) log_unhandled $* ;;
esac
;;
*) log_unhandled $* ;;
esac
;;
*) log_unhandled $* ;;
esac