From e97ab272ecc1b9fefd0e22e28ca3478b80bcbe9f Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Mon, 16 Dec 2019 14:24:28 +0000 Subject: [PATCH] fix(osx): Hibernation aliases now work correctly --- zsh/osx.zsh | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/zsh/osx.zsh b/zsh/osx.zsh index 343eb16..7de968a 100644 --- a/zsh/osx.zsh +++ b/zsh/osx.zsh @@ -29,13 +29,41 @@ if [[ "$(uname)" == "Darwin" ]]; then killall Finder "/System/Library/CoreServices/Finder.app" } + # # Power management - alias pm-hibernate="sudo pmset -a hibernatemode 25" - alias pm-safesleep="sudo pmset -a hibernatemode 3" - alias pm-sleep="sudo pmset -a hibernatemode 0" + # - hibernate() { + # Set all relevant power management settings to force the machine to save a + # sleep image and immediately enter "standby" along with FileVault destroying + # disk decryption keys. + pm-hibernate() { sudo pmset -a hibernatemode 25 + sudo pmset -a standby 1 + sudo pmset -a standbydelayhigh 0 + sudo pmset -a standbydelaylow 0 + sudo pmset -a autopoweroffdelay 0 + sudo pmset -a destroyfvkeyonstandby 1 + } + + # Restore all settings modified by pm-hibernate to their defaults, effectively + # restoring default sleep behavior for macOS laptops. + pm-safesleep() { + sudo pmset -a hibernatemode 3 + sudo pmset -a standbydelayhigh 86400 + sudo pmset -a standbydelaylow 0 + sudo pmset -a autopoweroffdelay 28800 + sudo pmset -a destroyfvkeyonstandby 0 + } + + # Trigger hibernation now. + hibernate() { + pm-hibernate + sudo pmset sleepnow + } + + # Trigger a safe-sleep now. + safesleep() { + pm-safesleep sudo pmset sleepnow } fi