Есть ли способ, чтобы значок появлялся на значке терминала в доке после завершения команды?

11

В настоящее время у меня есть приложение AppleScript, которое открывает окна терминала и выполняет команды. Мне бы хотелось, чтобы значок значка приложения отображался на значке терминала в Dock после завершения команды. Мне это нужно, потому что мне часто приходится перезапускать команды, когда они останавливаются. Это возможно? По сути, мое AppleScript-приложение берет предоставленную пользователем переменную и вставляет ее в команду терминала. Каждый раз, когда я использую приложение, оно открывает новое окно терминала (предназначено). Я хотел бы, чтобы значок отображался после завершения команды терминала.

Эли Гринберг
источник
Вам нужен значок, или вы будете довольны sayкомандой, устно предупреждающей вас, звуковым сигналом, рычанием, изменением цвета Терминала или чем-то еще?
Любой способ сказать мне, что команда выполнена. Окна терминала всегда находятся за всеми моими другими окнами, поэтому надо постоянно проверять. Я бы предпочел, чтобы уведомление оставалось до тех пор, пока я что-то не сделаю. Таким образом, устное уведомление, вероятно, не сработало бы, если бы я встал и не был рядом. Правильно?
Эли Гринберг
Возьмите приведенные ниже решения (вероятно, на основе Growl) и добавьте строку AppleScript, чтобы вывести текущее окно на передний план. К сожалению, все Терминалы переместятся на передний план (я думаю), но окно, которое вызвало событие, будет перед всеми этими.
Обратите внимание, что у iTerm2 есть triggersвозможность легко и элегантно настроить его: iterm2.com/triggers.html

Ответы:

14

Начиная с Mac OS X 10.7 Lion, Terminal имеет именно эту функцию.

Если вы посылаете звонок (BEL, Control-G) на фоновой вкладке или в окне, на значке Dock приложения терминала отобразится значок с количеством «непрочитанных» звонков.

Значок индикатора звонка в приложении терминала Значок Dock

и значок колокольчика отображается на вкладке терминала

Индикатор звонка на вкладке фонового терминала

(Если в окне есть только одна вкладка, выберите « Просмотр»> «Показать панель вкладок», чтобы увидеть вкладку, которая также отображает другую информацию о состоянии.)

Это также относится к свернутым окнам.

Когда вы выводите окно на передний план или выбираете вкладку фона, индикатор колокольчика удаляется с вкладки, и количество значков уменьшается.

Крис Пейдж
источник
Конечно, это только Лев, хаха.
Эли Гринберг
3

Если вы готовы принять ответ на более общий вопрос «есть ли способ предупредить меня, когда что-то завершится в окне терминала», тогда ответ: да.

Если вы используете Growl, вы можете сделать вызов из командной строки из скрипта, который опубликует уведомление для Growl. Например:

do shell script "sleep 1h"
do shell script "growlnotify --sticky --message \"I'm all done sleeping for an hour! Did you forget about me?\" --wait"

Скрипт не выйдет, пока вы не удалите уведомление с экрана.

Вы даже можете использовать --nameопцию, чтобы дать вашему сценарию уникальное имя, а затем изнутри Growl настроить, как события, генерируемые этим именованным приложением, отображаются и обрабатываются. Они могут создавать различные типы всплывающих окон на экране, они могут отправлять вам электронные письма, они могут отправлять вам сообщения через iChat, они пересылают событие в Growl на другой машине, если вы используете Prowl на своем iDevice, они могут даже пересылать уведомление на ваш iDevice с помощью push-уведомлений.

Не совсем тот ответ, который вы искали, но, надеюсь, он отвечает вашим потребностям.

GrowlNotify в действии


Ян С.
источник