Hay dos partes clave en tu AppleScript: presionar una tecla y realizar una tarea después de la inactividad.
Presionando una tecla
Automatización de una tecla presionando en AppleScript está bien cubierto; La respuesta aceptada a la pregunta vinculada sugiere:
tell application "System Events" to key code 36
Realizar cuando está inactivo
La segunda parte, realizar una tarea cuando tu Mac ha estado inactiva es más difícil. Puede utilizar software de terceros para programar su AppleScript después de la inactividad , o puede usar un enfoque de script para extraer la información del tiempo de inactividad de el sistema:
ioreg -c IOHIDSystem | perl -ane 'if(/Idle/) {$idle=(pop @F)/1000000000; print $idle, "\n"; last;}'
Resumiendo 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;}'"
Donde inactive_seconds
contiene el número de segundos inactivos.
Poniéndolos juntos
Ponerlo en conjunto depende de tu enfoque de bucle. Considere un bucle while que verifique si el Terminal.app se está ejecutando. El artículo de John Gruber será útil para esto, Cómo determinar si una aplicación determinada se está ejecutando con AppleScript y Perl :
tell application "System Events"
count (every process whose name is "Terminal")
end tell
El bucle while más grande 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