#!/bin/bash export PATH=$PATH:/usr/bin/local cname=`scutil --get ComputerName` SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) dtst=`date +"%Y%m%d-%H.%M"` echo "// presleep_quitapps" echo " " `date` echo " Machine: ${cname}" echo " Script: " `basename $0` echo " " `/usr/bin/sw_vers` echo " " `sysctl kern.version` echo " " `sysctl kern.ostype` echo " " `sysctl kern.osrelease` echo " " `sysctl kern.osrevision` echo "" echo "" echo "" echo "██╗██████╗ ██╗ ███████╗ " echo "██║██╔══██╗██║ ██╔════╝ " echo "██║██║ ██║██║ █████╗ " echo "██║██║ ██║██║ ██╔══╝ " echo "██║██████╔╝███████╗███████╗ " echo "╚═╝╚═════╝ ╚══════╝╚══════╝ " echo " " echo " ██████╗██╗ ██╗███████╗ ██████╗██╗ ██╗" echo " ██╔════╝██║ ██║██╔════╝██╔════╝██║ ██╔╝" echo " ██║ ███████║█████╗ ██║ █████╔╝ " echo " ██║ ██╔══██║██╔══╝ ██║ ██╔═██╗ " echo " ╚██████╗██║ ██║███████╗╚██████╗██║ ██╗" echo " ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝" echo "" echo "--------------------------------------------" if [[ $name = "Callum" ]]; then HC_TKN="spFBeVc0RciFezbuU8vfA" else HC_TKN="Ew2r577TQShzrOH3Cmfew" fi # machine specific: Angus && Petula, turn off HomeKit stuff if [[ $cname = "Angus" || $cname = "Petula" ]]; then echo "** Machine Specific: $cname" echo $'\t' "turning off xDuoo DAC using homecontrol" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=xDuoo%20DAC&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" sleep 5 echo $'\t' "turning off iFi DAC using homecontrol" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=DAC%20Stack&room-name=North%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" sleep 5 echo $'\t' "turning off South Office Lights using homecontrol" echo $'\t\t' "Antler Hue" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Antler%20Hue&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" sleep 5 echo $'\t\t' "Hue Pole" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Hue%20Pole&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" sleep 5 echo $'\t\t' "Desk Play L" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Desk%20Play%20L&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" sleep 5 echo $'\t\t' "Desk Play R" open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Desk%20Play%20R&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" # sleep 5 # echo $'\t' "turning off North Office Lights using homecontrol" # echo $'\t\t' "Floor Lamp" # open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Floor%20Lamp&room-name=North%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" # sleep 5 # echo $'\t\t' "Hue Go" # open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Hue%20Go&room-name=North%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" # open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=PC%20Light%20Bars&room-name=North%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" # open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=North%20Office%20TV%20Bias&room-name=North%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" # echo $'\t' "turning off Office Xmas Tree using homecontrol" # open -g "homecontrol://x-callback-url/run-action?action-type=switch-device-status&item-type=device&item-name=Office%20Tree&room-name=South%20Office&home-name=Holland%20Main&activation-mode=deactivate&authentication-token=${HC_TKN}" #echo $'\t' "^ TEMP DISABLED DUE TO NEW HOUSE/NO SETUP" fi echo -e "\n\n\n" echo "** Assertions **" echo "pmset -g assertions" /usr/bin/pmset -g assertions echo -e "\n\n\n" echo "** Screen Captures **" DC=$(osascript ${SCRIPT_DIR}/displaycount.scpt) counter=1 mvar=( ) mkdir -p $HOME/ownCloud/Screen\ Shots/SleepShots until [ $counter -gt ${DC} ] do ssf="${cname}-${dtst}-${counter}.png" #echo "screencapture -D ${counter} ${ssf}" screencapture -x -D ${counter} $HOME/Desktop/${ssf} echo $'\t' "captured screen ${counter}, saved to ${ssf}" mvar+=("${ssf}") ((counter++)) done for fn in "${mvar[@]}" do mv $HOME/Desktop/${fn} $HOME/ownCloud/Screen\ Shots/SleepShots/ done echo -e "\n\n\n" echo "** Quitting Applications **" prg=( "Zen Browser" "Opera" "Opera" "Opera" "Opera" "Opera" "MenubarX" "App Store" "WhatsApp" ".Agenda" "Steam" ".Loopback" ".Slack" "Boom 3D" "Paw" "DYMO Label" "QuickTime Player" "System Information" "Permute" "Activity Monitor" ".Transmit" ".Mail" ".Edison Mail" ".Airmail" "Setapp" ".Messages" "News" "zoom.us" "Preview" "Arq" "Carbon Copy Cloner" "Safari" "Vivaldi" "Firefox" "firefox" "Music" "Microsoft Edge" ".Parallels Desktop" ".Paw" ".Creative Cloud" "Things" ".Microsoft Word" ".Microsoft Excel" ".Microsoft PowerPoint" ".Xcode" "Simulator" "Audio Hijack" "Microsoft AutoUpdate" ".ToothFairy" "Creative Cloud" "Arc" "Brave Browser" "Safari Technology Preview" "YouTube" "SiriusXM" "Xcode.app" ".Xcode-beta" "Simulator" "Podcasts" "Microsoft Remote Desktop" "zen" "RustDesk") #prg=( "Safari Technology Preview" ) killprg=( "runningboardd" "Brave Browser" "Microsoft Edge" ) for app in "${prg[@]}" do if [[ $app = .* ]] then skip="x" else # echo $'\t' "$app" # timestamp ts=`date +%T` #echo "$ts: begin checking..." AID=$(ps -ef | grep "${app}" | grep -v `basename $0` | grep -v "grep" | wc -l) #[[ $AID -eq 0 ]] && echo "$ts: $app not running" if [[ $AID -gt 0 ]] then RS=$(osascript ${SCRIPT_DIR}/quit-app.app "$app") echo $'\t' ${RS} if [[ $RS == *"QUIT"* ]]; then killprg+=("${app}") sleep 1 fi fi fi done echo -e "\n\n\n" echo "** Pause 10 secs **" sleep 10 echo -e "\n\n\n" echo "** Force Quit (kill) Backup and Background Apps **" killcnt=${#killprg[@]} echo "...kill count: ${killcnt}" if [[ $killcnt -gt 0 ]] then for app in "${killprg[@]}" do if [[ $app = .* ]] then sleep 1 else echo $'\t' "$app" killall "${app}" sleep 1 fi done fi #echo -e "\n\n\n" #echo "** pmset -g everything **" #echo "pmset -g everything" #/usr/bin/pmset -g everything # sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool true # sudo pmset disksleep 0 # sudo pmset womp 0 # sudo pmset powernap 0 # sudo pmset ttyskeepawake 0 # sudo pmset tcpkeepalive 1 # sudo pmset schedule cancelall # sudo pmset repeat cancel # sudo chflags schg /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist # sudo mkdir -p /Library/Preferences/FeatureFlags/Domain # sudo cp /System/Library/FeatureFlags/Domain/powerd.plist /Library/Preferences/FeatureFlags/Domain # sudo nano /Library/Preferences/FeatureFlags/Domain/powerd.plist # replace to # reboot # Make sure AutoWake file is not writeable # sudo chflags schg /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist echo -e "\n\n\n" echo "** Adjust Sleep Settings to Avoid Wakes **" echo "* pmset settings" echo "sudo -S pmset schedule cancelall" # more /etc/sudoers.d/shughey # shughey ALL=(ALL) NOPASSWD: /usr/bin/pmset sudo -S pmset schedule cancelall sudo pmset repeat cancel # echo "sudo pmset -a hibernatemode 0" # sudo pmset -a hibernatemode 0 echo "sudo pmset -a autopoweroff 0" sudo pmset -a autopoweroff 0 echo "sudo pmset -a standby 0" sudo pmset -a standby 0 #echo "sudo pmset -a tcpkeepalive 0" # trying to get back MultiCast - 23-Mar-2025 echo "sudo pmset -a tcpkeepalive 0" sudo pmset -a tcpkeepalive 0 echo "sudo pmset -a powernap 0" sudo pmset -a powernap 0 # trying to get back MultiCast - 23-Mar-2025 #echo "sudo pmset -a tcpkeepalive 1" #sudo pmset -a tcpkeepalive 1 #sudo pmset disksleep 30 # must add defaults to sudoers.d #sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool false # export MACHINE=Angus; dns-sd -R ${MACHINE}.local _device-info._tcp local 0 # dns-sd -q ${MACHINE}.local