25 votes

Réveil de l'écran du terminal, réveil général

Il s'agit d'une question en deux parties. D'abord une question pratique, "comment faire", puis je demande des suggestions de configuration.

Tout d'abord, je mets mes écrans en veille la nuit, et j'aimerais pouvoir réveiller l'écran à distance. Existe-t-il un utilitaire de ligne de commande que je peux utiliser pour le réveiller via SSH ? Je connais WakeOnLan, mais cela me semble excessif.

Deuxièmement, la raison pour laquelle je veux réveiller mon écran à distance est liée à la modification des paramètres d'économie d'énergie de Lion. La télécommande infrarouge d'Apple ne réveille plus l'écran. C'est un gros problème pour une machine que j'ai achetée à l'origine pour être un ordinateur de bureau combiné à un ordinateur de home cinéma, puisque cela détruit la moitié de son objectif. Alors, est-ce que quelqu'un a des idées/suggestions sur ce qu'il faut faire à ce sujet ? C'est une question ouverte, je sais.

35voto

Asmus Points 7195

La manière la plus simple de le faire via SSH est d'utiliser caffeinate -u (disponible depuis OS X 10.9 je crois) pour simuler l'activité de l'utilisateur.

Ajouter le drapeau -t 5 pour spécifier un délai d'attente de 5 secondes (sinon il faudrait ctrl + c à court de caféine, semble-t-il).

17voto

Dermot Points 289

Wake : caffeinate -u -t 2

Dormir : pmset displaysleepnow

10voto

Tobias Kienzler Points 4183

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.

7voto

Graham Miln Points 39606

Réveiller l'écran à partir de la ligne de commande

Pour réveiller votre écran à distance, essayez d'exécuter un AppleScript sur la ligne de commande :

osascript -e 'tell application "System Events" to key code 123'

Ceci simulera l'appui sur la touche curseur et devrait faire croire à Mac OS X 10 qu'un utilisateur est actif sur l'ordinateur.

Cet AppleScript est basé sur la réponse, Comment automatiser une pression sur une touche dans AppleScript ?

Réveiller l'écran après l'avoir réveillé avec la télécommande

Si vous réveillez votre Mac à l'aide de la télécommande et que l'écran ne s'allume pas, essayez les actions suivantes Wake Assist . Il n'est pas conçu pour cette situation, mais il pourrait fonctionner.

Wake Assist simule un clic de souris après le réveil de votre Mac. La souris est cliquée deux fois dans le coin supérieur gauche de votre écran principal. Wake Assist ne fait rien s'il détecte un utilisateur, mais si l'ordinateur se réveille et est inactif, alors la souris est cliquée pour vous.

3voto

moodforaday Points 2633

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X