Ci sono due parti chiave nel tuo AppleScript, premendo un tasto ed eseguendo un'attività dopo l'inattività.
Pressione di un tasto
Automatizzazione della pressione di un tasto in AppleScript è ben coperto; la risposta accettata alla domanda collegata suggerisce:
tell application "System Events" to key code 36
Esecuzione quando inattivo
La seconda parte, eseguire un'attività quando il tuo Mac è rimasto inattivo è più difficile. Puoi utilizzare software di terze parti per pianificare il tuo AppleScript dopo inattività oppure puoi utilizzare un approccio basato su script per estrarre le informazioni sul tempo di inattività da il sistema:
ioreg -c IOHIDSystem | perl -ane 'if(/Idle/) {$idle=(pop @F)/1000000000; print $idle, "\n"; last;}'
Il riavvolgimento in AppleScript diventa:
set inactive_seconds to do shell script "ioreg -c IOHIDSystem | perl -ane 'if(/Idle/) {$idle=(pop @F)/1000000000; print $idle, \"
\"; last;}'"
Dove inactive_seconds
contiene il numero di secondi inattivi.
Metterlo insieme
Metterlo insieme dipende dal tuo approccio ciclico. Prendi in considerazione un ciclo while per verificare se è in esecuzione Terminal.app. L'articolo di John Gruber sarà utile per questo, Come determinare se una determinata app è in esecuzione utilizzando AppleScript e Perl :
tell application "System Events"
count (every process whose name is "Terminal")
end tell
Il ciclo di maggiore durata potrebbe essere:
tell application "System Events"
repeat while ((count (every process whose name is "Terminal")) > 0)
-- check idle time and conditionally perform key press
-- wait n minutes to avoid excessive polling
end repeat
end tell