1 votos

¿Cómo utilizar los eventos de la pantalla de bloqueo como desencadenante de un script?

Mi Magic Mouse 2 murieron hoy y pensé que sería genial si pudiera usar el bloqueo de la pantalla como un disparador para enviar una notificación de inserción a mi iPhone que me recuerdan a conectar mi ratón para la carga.

Me puse a investigar un poco. Hay una app llamada EventScripts que tiene un protector de pantalla gatillo. He probado la demo, pero es demasiado lento.

También me enteré de que me puede enviar notificaciones de inserción a través de la secuencia de comandos desde mi Mac a mi iPhone usando Acechar/Gruñido.

Y me encontré con que uno de los registros del sistema (/var/log/DiagnosticMessages/*) contiene activeScreenSaver eventos que muestran inmediatamente cuando veo a la consola. Sería genial si me podría enviar una acecho de notificación de inserción cuando activeScreenSaver aparece en dicho registro., Yo sé cómo se envía el comando, sin embargo todos los archivos en /var/log/DiagnosticMessages son binarias. Puedo grep ellos para activeScreenSaver y ver que hay coincidencias, pero no tengo un archivo en ASCII que puedo aplicar tail -f a y de la tubería a una secuencia de comandos que los relojes para activeScreenSaver ocurrencias y envía el empuje... ¿alguien sabe cómo puedo ver los archivos de activeScreenSaver apariciones? He escrito similares de registro de analizadores para otro texto sin formato de los registros de antes, pero no sé por dónde empezar cuando estoy tratando con archivos binarios que cambian cada tan a menudo.

Por CIERTO, he intentado usar un iBeacon para recordatorios, pero al momento de llegar la notificación, soy demasiado perezoso para ir de regreso a mi escritorio para conectar el ratón. Así que me gustaría obtener la notificación de inserción a la derecha después de que me bloqueo la pantalla... al menos hasta que se convierta en un hábito.

ACTUALIZACIÓN:

A través de más buscando en google, descubrí que podía hacer esto:

cat 2019.05.17.asl | strings - -o | grep activeScreenSaver
 290676 (com.apple.ScreenSaver.activeScreenSaver
 452746 (com.apple.ScreenSaver.activeScreenSaver
 481785 (com.apple.ScreenSaver.activeScreenSaver

Nota, yo solía -o a mostrar la coincidencia de número de línea así que podría decir que los eventos de qué eran.

Sin embargo, que no incluyen a todos los de mi pantalla de bloqueo de la prueba de los eventos de hoy. He buscado a través de las primas de las cadenas de salida y descubrí que si yo lo hice esta vez, tengo todos los eventos de hoy en día (cuando se lo comparó con lo que yo veo en la aplicación de Consola cuando se busca activeScreenSaver):

cat 2019.05.17.asl | strings - -o | grep "QuartzCore,ScreenSaver"
 290278 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 443512 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 481387 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 482889 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 486926 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 488824 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 501148 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 504036 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib

Pensé que era bueno para ir, pero cuando traté tail -f en lugar de cat, el resultado se trunca:

tail -c +1 -f 2019.05.17.asl | strings - -o | grep "QuartzCore,ScreenSaver"
 290278 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib
 443512 nAppKit,GLEngine,Flurry,QuartzCore,ScreenSaver,libdispatch.dylib,CoreFoundation,HIToolbox,Direct,libdyld.dylib

No estoy seguro de por qué, tail -f se detiene en el medio del archivo... Además, yo todavía tiene que averiguar cómo actualizar la cola cuando el archivo de cambios...

tail -F me pone más lejos - hasta el final actual del archivo, pero las nuevas entradas que se agrega al archivo no escupa.

También, he intentado un par de homebrew versiones de cola, que yo esperaba que permitan el seguimiento de varios archivos, pero ninguno de ellos era capaz de manejar los archivos binarios...

Curiosamente, si no me la tubería de la salida de strings a nada, puedo ver en vivo los mensajes vienen continuamente. Pero si me tubo a grep de un perl en línea, la corriente muere a mitad de camino a través de.

0voto

hepcat72 Puntos 103

Bueno, esto fue fácil. Solo necesitaba venir al tema fresco. Aparentemente, el seguimiento de un archivo de registro del sistema se debe hacer como superusuario:

 sudo tail -c +1 -F 2019.05.17.asl | strings - -o | grep "QuartzCore,ScreenSaver"
 

Poner sudo al frente permite que la salida se siga escupiendo cuando la pantalla está bloqueada.

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