Advertisement
Guest User

Untitled

a guest
Dec 4th, 2011
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.72 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #
  4. # Control script for ACPI lid state and AC adapter state
  5. #
  6.  
  7. getXuser() {
  8.         user=`finger| grep -m1 ":$displaynum " | awk '{print $1}'`
  9.         if [ x"$user" = x"" ]; then
  10.                 user=`finger| grep -m1 ":$displaynum" | awk '{print $1}'`
  11.         fi
  12.         if [ x"$user" != x"" ]; then
  13.                 userhome=`getent passwd $user | cut -d: -f6`
  14.                 export XAUTHORITY=$userhome/.Xauthority
  15.         else
  16.                 export XAUTHORITY=""
  17.         fi
  18. }
  19.  
  20.  
  21. grep -q closed /proc/acpi/button/lid/*/state
  22. if [ $? = 0 ]; then
  23.  lid_closed=1
  24.  echo "Lid Closed"
  25. else
  26.  lid_closed=0
  27.  echo "Lid Open"
  28. fi
  29.  
  30. grep -q off-line /proc/acpi/ac_adapter/*/state
  31.  
  32. if [ $? = 0 ]; then
  33.    echo "On DC"
  34.    on_dc=1
  35. else
  36.    echo "On AC"
  37.    on_dc=0
  38. fi
  39.  
  40. #Find the right XServer to be configured.
  41. for x in /tmp/.X11-unix/*; do
  42.    displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
  43.    getXuser;
  44.    if [ x"$XAUTHORITY" != x"" ]; then
  45.        export DISPLAY=":$displaynum"        
  46.    fi
  47. done
  48.  
  49. #If PPLIB is enabled
  50. su $user -c '/usr/bin/aticonfig --pplib-cmd="get version"' | grep PPLIB
  51. if [ $? = 0 ]; then
  52.    echo "Has PPLIB"
  53.    has_pplib=1
  54. else
  55.    echo "No PPLIB"
  56.    has_pplib=0
  57. fi
  58.  
  59.  
  60.  
  61. if [ ${lid_closed} -eq 1 -o ${on_dc} -eq 1 ]; then
  62.     echo "Low power"
  63.     if [ ${has_pplib} -eq 1 ]; then
  64.         su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc dc"'
  65.     else
  66.         su $user -c "/usr/bin/aticonfig --set-powerstate=1 --effective=now"
  67.     fi
  68. else
  69.     echo "high power"
  70.     if [ ${has_pplib} -eq 1 ]; then
  71.         su $user -c '/usr/bin/aticonfig --pplib-cmd="notify psrc ac"'
  72.     else
  73.         su $user -c "/usr/bin/aticonfig --set-powerstate=3 --effective=now"
  74.     fi
  75. fi
  76.  
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement