Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #!/bin/bash
  2. #***************************************************************************
  3. #*** nosleep - prevent laptop from sleeping when lid is closed
  4. #***************************************************************************
  5.  
  6. #***** set some defaults *****
  7. BATTERY_SLEEP=5 # in minutes
  8. DEF_WAKE_LEN=5 # in minutes
  9.  
  10. #***** determine timeout value *****
  11. timeout_len=${1:-$DEF_WAKE_LEN}
  12.  
  13. function prevent_sleep() {
  14. echo
  15. echo -n "Preventing sleep for $timeout_len minute(s); press <enter> to continue..."
  16.  
  17. sudo pmset -b disablesleep 1
  18. sudo pmset -b sleep 0
  19. }
  20.  
  21. function enable_sleep() {
  22. # $1: <enter> = 0, timeout = 1, Ctrl-C = undef
  23.  
  24. #----- insert a newline for timeout or Ctrl-C -----
  25. if [[ ${1:-1} -eq 1 ]]; then echo; fi
  26. echo "Restoring previous battery sleep setting: $BATTERY_SLEEP"
  27.  
  28. sudo pmset -b disablesleep 0
  29. sudo pmset -b sleep $BATTERY_SLEEP
  30.  
  31. #----- sleep on timeout only -----
  32. # if [[ ${1:--1} -eq 1 ]]; then sudo pmset sleepnow; fi
  33. exit
  34. }
  35.  
  36. #***** prevent it from sleeping *****
  37. prevent_sleep
  38.  
  39. #***** trap Ctrl-C *****
  40. trap enable_sleep INT
  41.  
  42. #***** wait for an enter *****
  43. read -t $(($timeout_len*60))
  44. rc=$?
  45.  
  46. #***** re-enable normal sleep *****
  47. enable_sleep $rc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement