¿Cómo llevar la aplicación al frente cada 15 minutos en Mac OS X Lion?

Tengo una aplicación gratuita o barata llamada Desktop Task Timer LE que he estado utilizando para seguir mi tiempo mientras trabajo en varios proyectos. Me gustaría que se muestre como la aplicación de primer plano cada 15 minutos para evitar que me olvide de detener / cambiar el temporizador después de que me he trasladado a una tarea diferente. Sé que puedo tener el lanzamiento de la aplicación usando una escritura en Automator o AppleScript, pero no sé cómo tener ese fuego de la escritura apagado cada 15 minutos. He leído sobre el uso de Launchd e iCal, pero todavía no estoy seguro de cómo hacerlo. (En realidad, iCal es probablemente sencillo, pero me gustaría evitar usarlo para esto.) ¿Alguna idea?

Además, una característica adicional sería hacer que aparezca después de 5 (o x) minutos de inactividad en el equipo. No estoy seguro de si esto funcionaría para mis necesidades, pero me gustaría probarlo si es posible.

~ / Library / LaunchAgents / com.stackoverflow.open.desktop.task.timer.plist

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.stackoverflow.open.desktop.task.timer</string> <key>ProgramArguments</key> <array> <string>open</string> <string>-a</string> <string>Desktop Task Timer LE</string> </array> <key>StartInterval</key> <integer>900</integer> <!-- every 900 seconds --> <key>RunAtLoad</key> <!--run on the 0th second--> <true/> </dict> </plist> 

launchctl load ~/Library/LaunchAgents/com.stackoverflow.open.desktop.task.timer.plist o launchctl load ~/Library/LaunchAgents/com.stackoverflow.open.desktop.task.timer.plist sesión y vuelva a ingresar.

Crontab

 */15 * * * * open -a "Desktop Task Timer LE" 
  • Puede utilizar un editor diferente como EDITOR=nano crontab -e
  • crontab -l lista las tareas programadas actualmente
  • crontab /path/to/file actualiza la tabla desde un archivo externo

Veo la respuesta de Lri y usted la ha elegido como su respuesta correcta. Quería mostrarle un enfoque diferente que también manejaría la segunda "característica" que usted solicitó. Este método utiliza launchd también, pero ejecuta un applescript. Aquí está el applescript. Tenga en cuenta que lo he comprobado con TextEdit tan sólo cambiar eso a su nombre de aplicación.

 property lastRunDate : missing value set currentDate to current date if lastRunDate is missing value then set lastRunDate to currentDate set idleTime to (do shell script "ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000; exit}'") as number -- check if the computer has been idle for 5 minutes or if 15 minutes has passed if idleTime is greater than or equal to (5 * 60) or (currentDate - lastRunDate) is greater than or equal to (15 * 60) then tell application "TextEdit" to activate set lastRunDate to currentDate end if 

Aquí está el plist de launchd. Observe esto se ejecuta cada 5 minutos y el applescript hace la comprobación de su criterio de 5 minutos o su criterio de 15 minutos. Usted puede ver de esto que llamé el applescript "FiveMinuteRunner.scpt" y lo puse en mi escritorio. Buena suerte 🙂

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>StartInterval</key> <integer>300</integer> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/hmcshane/Desktop/FiveMinuteRunner.scpt</string> </array> <key>RunAtLoad</key> <true/> <key>Label</key> <string>com.HAMSoftEnginnering.FiveMinuteRunner</string> </dict> </plist> 

¿Por qué no utiliza Growl para la notificación, es mejor solución no te parece?
Incluso puedes agregarle sonidos.
http://growl.info/

Introduzca aquí la descripción de la imagen