diff options
Diffstat (limited to 'ati-powermode.sh')
-rwxr-xr-x | ati-powermode.sh | 107 |
1 files changed, 42 insertions, 65 deletions
diff --git a/ati-powermode.sh b/ati-powermode.sh index ded996c43057..6c2ad527d0cb 100755 --- a/ati-powermode.sh +++ b/ati-powermode.sh @@ -5,6 +5,10 @@ # getXuser() { +# user=`finger| grep -m1 ":$displaynum " | awk '{print $1}'` +# if [ x"$user" = x"" ]; then +# user=`finger| grep -m1 ":$displaynum" | awk '{print $1}'` +# fi user=`pinky -fw | awk '{ if ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) { print $1; exit; } }'` if [ x"$user" = x"" ]; then startx=`pgrep -n startx` @@ -18,11 +22,30 @@ getXuser() { else export XAUTHORITY="" fi - export XUSER=$user } + +grep -q closed /proc/acpi/button/lid/*/state +if [ $? = 0 ]; then + lid_closed=1 + echo "Lid Closed" +else + lid_closed=0 + echo "Lid Open" +fi + +#grep -q off-line /proc/acpi/ac_adapter/*/state +grep -q 0 /sys/class/power_supply/ADP*/online + +if [ $? = 0 ]; then + echo "On DC" + on_dc=1 +else + echo "On AC" + on_dc=0 +fi + #Find the right XServer to be configured. -getXserver() { for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXuser; @@ -30,10 +53,8 @@ for x in /tmp/.X11-unix/*; do export DISPLAY=":$displaynum" fi done -} #If PPLIB is enabled -checkPPLIB() { su $user -c '/usr/bin/aticonfig --pplib-cmd="get version"' | grep PPLIB if [ $? = 0 ]; then echo "Has PPLIB" @@ -42,65 +63,21 @@ else echo "No PPLIB" has_pplib=0 fi -} -case "$1" in - ac_adapter) - case "$2" in - AC|ACAD|ADP0) - case "$4" in - 00000000) - logger 'AC unpluged' - getXserver; - checkPPLIB; - if [ ${has_pplib} -eq 1 ]; then - su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"' - else - su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now" - fi - ;; - 00000001) - logger 'AC pluged' - getXserver; - checkPPLIB; - if [ ${has_pplib} -eq 1 ]; then - su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"' - else - su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now" - fi - ;; - esac - ;; - *) - logger "ACPI action undefined: $2" - ;; - esac - ;; - button/lid) - case "$3" in - close) - logger 'LID closed' - getXserver; - checkPPLIB; - if [ ${has_pplib} -eq 1 ]; then - su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"' - else - su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now" - fi - ;; - open) - logger 'LID opened' - getXserver; - checkPPLIB; - if [ ${has_pplib} -eq 1 ]; then - su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"' - else - su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now" - fi - ;; - *) - logger "ACPI action undefined: $3" - ;; - esac - ;; -esac
\ No newline at end of file + + +if [ ${lid_closed} -eq 1 -o ${on_dc} -eq 1 ]; then + echo "Low power" + if [ ${has_pplib} -eq 1 ]; then + su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"' + else + su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now" + fi +else + echo "high power" + if [ ${has_pplib} -eq 1 ]; then + su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"' + else + su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now" + fi +fi
\ No newline at end of file |