24 votos

Ejecutar un programa/script cuando la pantalla está bloqueada o desbloqueada

¿Hay alguna forma de ejecutar un script o programa especificado cuando la pantalla está bloqueada o desbloqueada? Idealmente una función bash o un AppleScript.

¿Hay algún evento al que me pueda suscribir que me permita hacerlo? ¿O una aplicación existente que lo soporte?

4 votos

Para la pantalla de bloqueo, hay una notificación enviada que puede ser manejada en su aplicación Cocoa. Tendrías que escuchar la notificación llamada "com.apple.screenIsLocked". Código: [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:@"com.apple.screenIsLocked" object:nil];

0 votos

¿Hay alguna forma de conseguirlo a través de AppleScript?

0 votos

Lo siento, no conozco la forma de Apple script de hacer esto. Pero la creación de su propia aplicación para esta tarea no es tan difícil. Hágame saber si puedo ayudar.

17voto

nwinkler Puntos 3723

Después de buscar un poco, encontré SleepWatcher , una herramienta gratuita que permite ejecutar un script</strkeep><strkeep> cuando la pantalla entra en reposo o se despierta.

Después de instalarlo, puede enlazar un shell script que se ejecute en uno de los eventos disponibles (que incluyen pantalla atenuada , pantalla para despertar , el sueño del ordenador , despertar el ordenador y algunos más). Desde el shell script, puedo ejecutar un comando, o llamar a un AppleScript que quiero ejecutar en estos eventos.

Como mi pantalla se pone en reposo cuando bloqueo el ordenador, esto es exactamente lo que estaba buscando.

Puede verlo en acción aquí: https://github.com/nwinkler/sleepwatcher-lync-status

2 votos

Este programa podría instalarse con brew install sleepwatcher puede encontrar más información sobre la configuración en los archivos plist. La ubicación exacta brew info sleepwatcher . Los archivos por defecto son ~/.sleep y ~/.wakeup

0 votos

Tengo un problema, parece que si mi mac se bloquea antes de dormir no se llama al script. ¿qué parámetros has utilizado?

0 votos

Lo siento, hace tiempo que no uso esto, TBH...

4voto

John B Puntos 21

EventScript tiene algunas opciones que podrían funcionar para usted. Es una pequeña utilidad que puede desencadenar flujos de trabajo .sh/applescript/automator y desencadenarlos en una serie de opciones diferentes.

Aquí hay algunas opciones de bloqueo/desbloqueo de pantalla: EventScripts

Compruébalo aquí .

1 votos

Parece muy útil, ¡gracias! Cuesta 3,99 dólares en la App Store.

0 votos

Ahora tengo problemas con EventScript que se bloquea silenciosamente, así que vigílalo...

1voto

AnonymousMan Puntos 6

Información para los futuros googlers que aterricen aquí:

Conseguí que esto funcionara usando EventScripts .

Quería que mi lámpara de escritorio, que está conectada a un Enchufe inteligente TP-link para que se encienda cuando desbloquee mi Mac y se apague cuando se bloquee.

He encontrado este bash script que puede encender y apagar el enchufe inteligente. (No tengo nmap instalado, así que tuve que averiguar la dirección IP del enchufe inteligente mirando las pantallas de configuración de mi router, y luego suministrar la dirección IP al hs100.sh script a través del -i opción).

Entonces sólo era cuestión de escribir dos simples scripts para "on" y "off", para llamar a hs100.sh on y hs100.sh off . Como EventScripts está en la Mac App Store, sólo puede ejecutar scripts en su propia carpeta, así que puse mis dos scripts allí.

Y ¡voilà! Funciona perfectamente.

-2voto

Frazer Kirkman Puntos 19

Puedes configurarlo así:

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

0 votos

El nombre implica que esto se ejecuta cuando se inicia la sesión, no cuando se desbloquea la pantalla, sin embargo. ¿Es eso correcto?

0 votos

stackoverflow.com/questions/22842016/ sugiere que LoginHook está obsoleto de todos modos. Puede utilizar launchd para ejecutar las cosas en el inicio de sesión, pero eso no es lo que esta pregunta está pidiendo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X