wuc escreveu:
Você pode usar
pmset schedule wake "01/01/2012 20:00:00"
para ativar uma tela adormecida em um Mac "acordado". Substitua a parte da data / hora pela hora atual, é claro.
No entanto, isso não funcionou para mim no iMac de 2008 com a versão 10.9.1 ou no MacBook Air de 2010 com a versão 10.9.2. Não tenho certeza se isso tem algo a ver com o gerenciamento de energia ou o hardware da Mavericks, ou o quê.
Consegui fazê-lo funcionar, definindo o tempo de ativação para 15 segundos no futuro. Ocasionalmente, conseguia fazê-lo funcionar com a configuração tão baixa quanto 12 ou 13, mas não de forma confiável. Mas pode ter havido outros fatores que eu não percebi na época, mas 15 funcionaram, então usei 15.
Mas como você calcula 15 segundos no futuro programaticamente?
Eu usei gdate
no pacote GNU Coreutils ( date
no OS X pode ser capaz de fazer isso, mas se puder, não sei como e já o gdate
instalei):
[usar em date
vez de gdate
usar o alias set_wake_time = 'date "-v + $ {OFFSET} S" "+% D% T"']
Aqui está o script que eu usei:
#!/bin/zsh -f
# how many seconds into the future we want to wake the display
# 15 seems to work reliably. YMMV.
OFFSET=15
# to calculate the time, we need `gdate`
alias set_wake_time='/usr/local/bin/gdate --date "+${OFFSET} sec" "+%m/%d/%g %H:%M:%S"'
# this is where we set the wake command
# if it doesn't succeed the script will exit immediately
/usr/bin/sudo /usr/bin/pmset schedule wake "`set_wake_time`" || exit 1
# if you were not testing this, you'd probably want to end at the
# next line. Just remove the leading '#'
#exit 0
#######################################################
### Everything below this line is only needed during testing ###
# this tells the display to sleep
# because we can test waking the screen up unless it's asleep
pmset displaysleepnow
# for testing purposes: now the script will pause for $OFFSET seconds
sleep $OFFSET
# For testing purposes:
# after $OFFSET seconds, this sound will play 3 times.
# by that time, the display should be awake
# I did this to help me know when I had set OFFSET too low
afplay /System/Library/Sounds/Glass.aiff
afplay /System/Library/Sounds/Glass.aiff
afplay /System/Library/Sounds/Glass.aiff
# script is done
exit 0
Tudo após o '####################################################### ######### 'pode ser removido após a conclusão do teste.