24 votes

Exécuter un programme/script lorsque l'écran est verrouillé ou déverrouillé

Existe-t-il un moyen d'exécuter un script ou un programme spécifié lorsque l'écran est verrouillé ou déverrouillé ? Idéalement une fonction bash ou un AppleScript.

Existe-t-il un événement auquel je pourrais m'abonner et qui me permettrait de faire cela ? Ou une application existante qui supporte cela ?

17voto

nwinkler Points 8556

Après quelques recherches, j'ai trouvé SleepWatcher , un outil gratuit qui permet d'exécuter un script lorsque l'écran se met en veille ou se réveille.

Après l'avoir installé, vous pouvez lier un shell script qui est exécuté sur un des événements disponibles (qui incluent écran faible , écran de réve réveil , sommeil de l'ordinateur , réveiller l'ordinateur et d'autres encore). À partir du shell script, je peux exécuter une commande, ou appeler un AppleScript que je veux exécuter sur ces événements.

Comme mon écran se met en veille lorsque je verrouille mon ordinateur, c'est exactement ce que je recherchais.

Vous pouvez le voir en action ici : https://github.com/nwinkler/sleepwatcher-lync-status

4voto

EventScript a quelques options qui pourraient vous convenir. Il s'agit d'un petit utilitaire qui peut déclencher des flux de travail .sh/applescript/automator et les déclencher en fonction d'un grand nombre d'options différentes.

Voici quelques options de verrouillage/déverrouillage de l'écran : EventScripts

Consultez le site aquí .

1voto

MidnightLightning Points 163

Des informations pour les futurs googlers atterrissent ici :

Je l'ai fait fonctionner en utilisant EventScripts .

Je voulais que ma lampe de bureau, qui est reliée à une Prise intelligente TP-link pour s'allumer quand je déverrouille mon Mac, et s'éteindre quand il se verrouille.

J'ai trouvé ce bash script qui peut allumer et éteindre la prise intelligente. (Je n'ai pas installé nmap, donc j'ai dû trouver l'adresse IP de la prise intelligente en regardant les écrans de configuration de mon routeur, puis fournir l'adresse IP à l'interface de la prise. hs100.sh script par l'intermédiaire de l'option -i option).

Ensuite, il s'agissait juste d'écrire deux simples scripts pour "on" et "off", pour appeler hs100.sh on y hs100.sh off . Comme EventScripts est sur le Mac App Store, il ne peut exécuter des scripts que dans son propre dossier, donc j'y ai mis mes deux scripts.

Et voilà ! Cela fonctionne parfaitement !

-2voto

Frazer Kirkman Points 165

Vous pouvez le configurer comme suit :

sudo defaults write com.apple.loginwindow LoginHook /path/to/script

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