En utilisant les scriptEditeur.app avec OS X, essayez d'expérimenter avec ces extraits.
Attendez 30 secondes
L'extrait suivant fera en sorte que votre script attende 30 secondes avant d'afficher un dialogue :
delay 30 -- this waits thirty seconds
display dialog "Hello?" -- this shows a dialog
Sommeil
L'extrait suivant mettra votre Mac dormir immédiatement :
tell application "System Events"
sleep
end tell
Attendre puis dormir
En combinant les deux extraits ci-dessus, on obtient un AppleScript qui attendra 30 secondes avant de mettre votre Mac en veille :
delay 30
tell application "System Events"
sleep
end tell
Écrans et ordinateurs de bureau
Je ne suis pas sûr de la meilleure façon de déterminer si un moniteur est connecté. Vous pouvez certainement effectuer des sondages réguliers, en appelant system_profiler SPThunderboltDataType SPDisplaysDataType
et l'analyse de la sortie fonctionnerait.
L'interrogation est coûteuse en temps de calcul et il vaut mieux l'éviter.
Alternativement, peut-être une approche par laquelle un AppleScript pourrait déterminer si le nombre de bureaux actifs a changé ? Lorsque deux moniteurs sont connectés à mon Mac, le snippet suivant renvoie une liste de deux éléments :
tell application "System Events"
set myDesktops to desktops
end tell
En outre, l'extrait suivant fournit davantage d'informations sur l'affichage avec lesquelles travailler :
tell application "System Events"
set myDesktop to properties of the first desktop
end tell