Как перенести приложение на фронт каждые 15 минут на Mac OS X Lion?
У меня есть бесплатное или дешевое приложение под названием Desktop Task Timer LE, которое я использую для отслеживания своего времени, когда я работаю над различными проектами. Я бы хотел, чтобы это всплывало в качестве приложения переднего плана каждые 15 минут, чтобы я не забыл остановить / изменить таймер после того, как перешел к другой задаче. Я знаю, что у меня может быть запуск приложения с использованием сценария в Automator или AppleScript, но я не знаю, как запустить этот скрипт каждые 15 минут. Я читал об использовании Launchd и iCal, но я все еще не уверен, как это сделать. (На самом деле, iCal, вероятно, прост, но я бы не хотел использовать его для этого.) Любые идеи?
Кроме того, еще одна особенность заключается в том, чтобы всплывать через 5 (или x) минут бездействия на компьютере. Не уверен, что это будет работать для моих нужд, но я бы хотел проверить его, если это возможно.
- Как ограничить память программ OS X? ulimit -v ни -m работают
- Общие папки / настройки Mac OS для проверки (при попытке избавиться от отвратительного самозапускающегося приложения)
- Установка переменных среды в OS X для приложений с графическим интерфейсом
- Как избавиться от ошибок com.apple.launchd.peruser в моем журнале?
- Startd, похоже, игнорирует StartCalendarInterval на Yosemite
- Как убить процесс в Mac OS X и не перезапустить его самостоятельно
- Как перезапустить ОС OS X без перезагрузки?
- Предполагается, что запуск должен забрать «пропущенные» события?
- Как я могу запустить скрипт каждый день в Mac OS X?
- Остановите запущенный процесс запуска на OS X Leopard
- Launchd выполняет команду при изменении или изменении содержимого папки
- Как запустить команду запуска с правами root
~ / 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
или выйти из системы.
Crontab -e
*/15 * * * * open -a "Desktop Task Timer LE"
- Вы можете использовать другой редактор, например
EDITOR=nano crontab -e
-
crontab -l
перечисляет текущие запланированные задачи -
crontab /path/to/file
обновляет таблицу из внешнего файла
Я вижу ответ Лри, и вы выбрали его в качестве своего правильного ответа. Я хотел показать вам другой подход, который также будет обрабатывать вторую «функцию», которую вы запросили. Этот метод также использует startd, но в нем используется applescript. Вот аппликация. Обратите внимание, что я проверил его с помощью TextEdit, поэтому просто измените это на ваше имя приложения.
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
Вот стартовый пласт. Обратите внимание, что это выполняется каждые 5 минут, и приложение applescript проверяет ваши 5-минутные критерии или ваши 15-минутные критерии. Вы можете видеть из этого, что я назвал applescript «FiveMinuteRunner.scpt» и разместил его на своем рабочем столе. Удачи 🙂
<?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>
Почему вы не используете Growl для уведомления, это лучшее решение, не так ли?
Вы можете даже добавить к нему звуки.
http://growl.info/