Come eseguire periodicamente uno script / comando quando viene utilizzata un'applicazione specifica?

0

Vorrei che un certo applescript venga eseguito ogni 10 secondi, ma solo quando viene utilizzata un'applicazione specifica (vale a dire sia l'applicazione anteriore che il mouse o la tastiera utilizzati negli ultimi secondi).

Come posso creare un trigger simile?

    
posta GJ. 21.10.2014 - 17:15
fonte

1 risposta

1

Esegue say a se il tempo trascorso dall'ultimo evento HID (dispositivo di puntamento o tastiera) è superiore a 3 secondi e se l'applicazione in primo piano è 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

Diversi modi per ottenere il nome dell'applicazione in primo piano:

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'
    
risposta data 22.10.2014 - 08:21
fonte

Leggi altre domande sui tag