Hay dos partes clave en tu AppleScript, pulsar una tecla y realizar una tarea después de inactividad.
Pulsar una tecla
Automatizar la pulsación de una tecla en AppleScript está bien cubierto; la respuesta aceptada a la pregunta vinculada sugiere:
tell application "System Events" to key code 36
Actuar cuando está inactivo
La segunda parte, realizar una tarea cuando el Mac ha estado inactivo, es más complicada. Puede utilizar software de terceros para programar su AppleScript después de inactividad o puede utilizar una secuencia de comandos para extraer la información sobre el tiempo de inactividad del sistema:
ioreg -c IOHIDSystem | perl -ane 'if(/Idle/) {$idle=(pop @F)/1000000000; print $idle, "\n"; last;}'
Envolver esto en AppleScript se convierte en:
set inactive_seconds to do shell script "ioreg -c IOHIDSystem | perl -ane 'if(/Idle/) {$idle=(pop @F)/1000000000; print $idle, \"
\"; last;}'"
Dónde inactive_seconds
contiene el número de segundos inactivos.
Montaje
El montaje depende de tu enfoque del bucle. Considera un bucle while que compruebe si Terminal.app se está ejecutando. El artículo de John Gruber será útil para esto, Cómo determinar si una determinada aplicación se está ejecutando utilizando AppleScript y Perl :
tell application "System Events"
count (every process whose name is "Terminal")
end tell
El bucle while mayor podría ser:
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