Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # ♥©♥ hana, mod annelin
- # disabled
- # exit 0
- usbdevices=""
- ps_blacklist="bash ssh sshfs sshd audacious pulseaudio gajim polkit- dbus- mate-screensaver mate-power-manager"
- user=annelin
- display=:0.0
- function whichusb(){
- for X in /sys/bus/usb/devices/*; do
- if [ "${1:0:4}" == "$(cat "$X/idVendor" 2>/dev/null)" -a "${1:5}" == "$(cat "$X/idProduct" 2>/dev/null)" ]
- then
- echo "$X"
- fi
- done
- }
- case $1 in
- sleep)
- # disable xfce sleep md #
- #sudo -u ${user} DISPLAY=${display} xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14
- # usb #
- for usbd in $usbdevices; do
- # echo "unbind $usbd `whichusb $usbd` "
- echo $(whichusb $usbd | sed 's/\/.*\///g') > /sys/bus/usb/drivers/usb/unbind
- done
- # wifi #
- iwconfig wlan0 txpower 10
- # backlight #
- cat /sys/class/backlight/intel_backlight/brightness > /tmp/usleep.brightness
- echo 0 > /sys/class/backlight/intel_backlight/brightness
- sudo -u ${user} DISPLAY=${display} xset dpms force off
- # sleep user procs #
- for pid in $(ps -u ${user} -o pid,cmd | grep -vE "`echo $ps_blacklist|sed 's/ /|/g'`" | awk '{ print $1 }') ; do
- echo $pid >> /tmp/usleep.pid
- kill -STOP $pid
- done
- # sleep Xorg #
- # kill -STOP $(pidof X)
- # sleep cores #
- for i in 1 2 3 ; do echo 0 > /sys/devices/system/cpu/cpu${i}/online; done
- # completed #
- echo -n 7 on >> /proc/acpi/ibm/led
- echo "`date` stopping completed for `hostname`" >> /tmp/usleep.log ;;
- resume)
- if [ ! -f /tmp/usleep.pid ] ; then exit ; fi
- # cpu #
- for i in 1 2 3 ; do echo 1 > /sys/devices/system/cpu/cpu${i}/online; done
- # ps resume #
- # kill -CONT $(pidof X)
- for i in $(cat /tmp/usleep.pid) ; do
- kill -CONT $i
- done
- # disp #
- sudo -u ${user} DISPLAY=${display} xset dpms force on
- cat /tmp/usleep.brightness > /sys/class/backlight/intel_backlight/brightness
- # disable xfce sleep md #
- #sudo -u ${user} DISPLAY=${display} xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 60
- for usbd in $usbdevices; do
- echo $(whichusb $usbd | sed 's/\/.*\///g') > /sys/bus/usb/drivers/usb/bind
- done
- # wifi #
- iwconfig wlan0 txpower 24
- # remove tmp data #
- rm /tmp/usleep.pid
- rm /tmp/usleep.brightness
- # completed #
- echo -n 7 off >> /proc/acpi/ibm/led
- echo "`date` resume completed for `hostname`" >> /tmp/usleep.log ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement