wuc écrit :
Vous pouvez utiliser
pmset schedule wake "01/01/2012 20:00:00"
pour réveiller un écran endormi sur un Mac autrement "éveillé". Remplacez la partie date/heure par l'heure actuelle, bien sûr.
Cependant, cela n'a pas fonctionné pour moi sur un iMac datant de 2008 et fonctionnant sous 10.9.1 ou sur un Macbook Air datant de 2010 et fonctionnant sous 10.9.2. Je ne sais pas si cela a quelque chose à voir avec la gestion de l'énergie de Mavericks ou avec le matériel, ou quoi que ce soit.
J'ai réussi à le faire fonctionner en fixant l'heure de réveil à 15 secondes dans le futur. J'ai parfois réussi à le faire fonctionner avec un réglage aussi bas que 12 ou 13, mais pas de manière fiable. Il y avait peut-être d'autres facteurs dont je n'avais pas conscience à l'époque, mais le paramètre 15 fonctionnait, alors je l'ai utilisé.
Mais comment calculer 15 secondes dans le futur de manière programmatique ?
J'ai utilisé gdate
du paquetage GNU Coreutils ( date
dans OS X pourrait être en mesure de le faire, mais si c'est le cas, je ne sais pas comment, et j'ai déjà eu gdate
installé) :
[à utiliser date
au lieu de gdate
utiliser l'alias set_wake_time='date "-v+${OFFSET}S" "+%D %T"']
Voici le script que j'ai utilisé :
#!/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
Tout ce qui se trouve après "#######################################################" peut être retiré une fois les tests terminés.