Advertisement
Guest User

Untitled

a guest
Jun 18th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.58 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # ♥©♥ hana, mod annelin
  4.  
  5. # disabled
  6. # exit 0
  7.  
  8. usbdevices=""
  9. ps_blacklist="bash ssh sshfs sshd audacious pulseaudio gajim polkit- dbus- mate-screensaver mate-power-manager"
  10. user=annelin
  11. display=:0.0
  12.  
  13. function whichusb(){
  14.  for X in /sys/bus/usb/devices/*; do
  15.     if [ "${1:0:4}" == "$(cat "$X/idVendor" 2>/dev/null)" -a "${1:5}" == "$(cat "$X/idProduct" 2>/dev/null)" ]
  16.     then
  17.         echo "$X"
  18.     fi
  19.  done
  20. }
  21.  
  22. case $1 in
  23.    
  24.     sleep)
  25.  
  26.             # disable xfce sleep md #
  27.             #sudo -u ${user} DISPLAY=${display} xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14
  28.  
  29.             # usb #
  30.             for usbd in $usbdevices; do
  31.               # echo "unbind $usbd `whichusb $usbd` "
  32.               echo $(whichusb $usbd | sed 's/\/.*\///g') > /sys/bus/usb/drivers/usb/unbind
  33.             done
  34.  
  35.             # wifi #
  36.             iwconfig wlan0 txpower 10
  37.  
  38.             # backlight #
  39.             cat /sys/class/backlight/intel_backlight/brightness > /tmp/usleep.brightness
  40.             echo 0 > /sys/class/backlight/intel_backlight/brightness
  41.             sudo -u ${user} DISPLAY=${display} xset dpms force off
  42.  
  43.             # sleep user procs #
  44.             for pid in $(ps -u ${user} -o pid,cmd | grep -vE "`echo $ps_blacklist|sed 's/ /|/g'`" | awk '{ print $1 }') ; do
  45.                 echo $pid >> /tmp/usleep.pid
  46.                 kill -STOP $pid
  47.             done
  48.  
  49.  
  50.             # sleep Xorg #
  51.             # kill -STOP $(pidof X)
  52.  
  53.             # sleep cores #
  54.             for i in 1 2 3 ; do echo 0 > /sys/devices/system/cpu/cpu${i}/online; done
  55.  
  56.             # completed #
  57.             echo -n 7 on >> /proc/acpi/ibm/led
  58.             echo "`date` stopping completed for `hostname`"  >> /tmp/usleep.log ;;
  59.  
  60.     resume)
  61.  
  62.             if [ ! -f /tmp/usleep.pid ] ; then exit ; fi
  63.  
  64.             # cpu #
  65.             for i in 1 2 3 ; do echo 1 > /sys/devices/system/cpu/cpu${i}/online; done
  66.  
  67.             # ps resume #
  68.             # kill -CONT $(pidof X)
  69.             for i in $(cat /tmp/usleep.pid) ; do
  70.                 kill -CONT $i
  71.             done
  72.  
  73.             # disp #
  74.             sudo -u ${user} DISPLAY=${display} xset dpms force on
  75.             cat /tmp/usleep.brightness > /sys/class/backlight/intel_backlight/brightness
  76.  
  77.             # disable xfce sleep md #
  78.             #sudo -u ${user} DISPLAY=${display} xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 60
  79.  
  80.             for usbd in $usbdevices; do
  81.                 echo $(whichusb $usbd | sed 's/\/.*\///g') > /sys/bus/usb/drivers/usb/bind
  82.             done
  83.  
  84.             # wifi #
  85.             iwconfig wlan0 txpower 24  
  86.  
  87.  
  88.             # remove tmp data #
  89.             rm /tmp/usleep.pid
  90.             rm /tmp/usleep.brightness
  91.  
  92.  
  93.             # completed #
  94.             echo -n 7 off >> /proc/acpi/ibm/led
  95.             echo "`date` resume completed for `hostname`"  >> /tmp/usleep.log ;;
  96. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement