0 votos

¿Cómo ejecutar periódicamente un script/comando cuando se utiliza una aplicación específica?

Me gustaría que un determinado applescript se ejecutara cada 10 segundos pero sólo cuando se esté utilizando una aplicación concreta (es decir, que sea tanto la aplicación frontal COMO el ratón o el teclado que se esté utilizando en los últimos segundos).

¿Cómo puedo crear un activador de este tipo?

1voto

Fuzzy Purple Monkey Puntos 702

Esto se ejecuta say a si el tiempo transcurrido desde el último evento HID (dispositivo señalador o teclado) es superior a 3 segundos y si la aplicación más cercana es iTerm:

while sleep 10;do [[ $(ioreg -c IOHIDSystem|awk '/HIDIdleTime/{print $NF/1000000000;exit}'|awk '$0>3') && $(lsappinfo visibleProcessList|cut -d\" -f2) = iTerm ]]&&say a;done

Diferentes formas de obtener el nombre de la aplicación más avanzada:

lsappinfo visibleProcessList|cut -d\" -f2
lsappinfo find ASN=$(lsappinfo front)|cut -d\" -f2
osascript -e 'name of app (path to frontmost application as text)'
osascript -e 'tell app "System Events" to name of process 1 where frontmost is true'

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