summarylogtreecommitdiffstats
path: root/ati-powermode.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ati-powermode.sh')
-rwxr-xr-xati-powermode.sh107
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