Guest User

Untitled

a guest
Mar 30th, 2022
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.59 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # © hana, mod ann
  4.  
  5. # disabled
  6. # exit 0
  7.  
  8. usbdevices=""
  9. ps_blacklist="bash ssh sshfs sshd audacious pulseaudio gajim polkit- dbus- gnome-screensaver xfce4-power-manager systemd"
  10. user=annelion
  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.             # disable xfce sleep md #
  74.             #sudo -u ${user} DISPLAY=${display} xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 60
  75.  
  76.             for usbd in $usbdevices; do
  77.                 echo $(whichusb $usbd | sed 's/\/.*\///g') > /sys/bus/usb/drivers/usb/bind
  78.             done
  79.  
  80.             # wifi #
  81.             iwconfig wlan0 txpower 24  
  82.  
  83.             # disp #
  84.         sleep 1s
  85.             sudo -u ${user} DISPLAY=${display} xset dpms force on
  86.             cat /tmp/usleep.brightness > /sys/class/backlight/intel_backlight/brightness
  87.  
  88.  
  89.             # remove tmp data #
  90.             rm /tmp/usleep.pid
  91.             rm /tmp/usleep.brightness
  92.  
  93.  
  94.             # completed #
  95.             echo -n 7 off >> /proc/acpi/ibm/led
  96.             echo "`date` resume completed for `hostname`"  >> /tmp/usleep.log ;;
  97. esac
  98.  
Advertisement
Add Comment
Please, Sign In to add comment