Уведомление центра уведомлений было бы идеальным, но рычание, док-станция, звук и т.д. тоже были бы хороши (или если это можно сделать только в Terminal.app, я бы хотел вернуться). Есть ли опция в iTerm для включения уведомлений или это то, что я должен ввести в конце команды в терминале? Если последнее, можно добавить предупреждение, как только процесс начнется (например, если я пойму, что это займет больше времени, чем я ожидал, я плохо думаю).
Как заставить терминал iTerm уведомлять меня о завершении работы/процесса?
Ответ 1
Уведомлять об уже запущенном процессе
Ярлык: ⌥ ⌘ A или:
Edit -> Marks and Annotations -> Alerts -> Alert on next mark
: iTerm
будет буквально следить (в верхнем правом углу) вашего терминала. По завершении команды он свяжется с Notification Center
.
Почему?
Мы уже запустили команду.
Мы недооценили время, необходимое для завершения, мы не хотим его отменять, и мы отказываемся сидеть и смотреть его. например a brew update
после долгого времени!
Требования
iTerm: Интеграция оболочки:
iTerm2 -> Install Shell Integration
Обратите внимание, что интеграция не будет показывать уведомления до тех пор, пока iTerm2 не будет перезапущен.
Ответ 2
После любой команды вы можете добавить любое из следующих действий: с запятой между командой и командой:
afplay /System/Library/Sounds/Ping.aiff -v 2
osascript -e 'beep 3'
tput bel
или, если вам нравится Центр уведомлений
osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'
Вы также можете создать псевдоним в своем профиле под названием notify
и добавить его в конце своей команды. Итак, в вашем профиле входа
alias notify="tput bel"
затем
sleep 10; notify
Или, если вы запустили свою команду, и она "висит", просто введите notify
и нажмите Enter
, и она запустит ваш псевдоним notify
в конце, после чего команда закончила, например
sleep 20
# wait 5 seconds before realising this will take 20 seconds
notify<Enter>
Ответ 3
И вы всегда можете использовать команду say
.
Обычно, когда вы выполняете длительный процесс внутри терминала и хотите обновиться, вы можете просто использовать эту команду, чтобы вызывать такие вещи, как done
или error
или bazinga
.
mvn clean install; say done
Эта команда создает приложение java spring и занимает много времени, и после завершения процесса будет выходить done
.
Ответ 4
iTerm2
поддерживает уведомления Growl
. Вы можете включить его в каждом профиле.
Выберите профиль в Preferences…
→ Profiles
.
Затем на вкладке Terminal
есть опция Enable Growl Notifications
.
Не забудьте также включить уведомления iTerm
в настройках Growl
.
Если вы хотите получить уведомление для данного процесса, вы можете попробовать поэкспериментировать с Triggers
. Вы определяете триггеры на вкладке Advanced
в настройках профиля. Таким образом, вы можете назначить уведомление Growl для определенного результата вашего процесса (regexp).
Например, вы можете:
$ mycommand; echo "end-of-my-process"
И подключите триггер к сообщению "конец моего процесса".
Обновление
Подробнее о триггерах на iTerm2.com.
Ответ 5
Существует инструмент OSS под названием noti.
Вы можете легко установить его с помощью brew install noti
и начать использовать его, просто добавив к команде префикс noti
, как noti sleep 3
.
Ответ 6
Вы также можете использовать terminal-notifier
который использует системные уведомления Mac OS. Чтобы установить его через Home Brew, просто:
$ brew install terminal-notifier
Затем, если вы хотите отобразить уведомление, когда ваша работа/процесс завершен, используйте что-то вроде этого
$ <your job/process command> && echo 'Completed' | terminal-notifier -sound default
И этот дисплей так:
Вы также можете изменить звук и значок уведомлений. Больше информации в репозитории github: https://github.com/julienXX/terminal-notifier
Ответ 7
Установите интеграцию оболочки iTerm2
curl -L https://iterm2.com/shell_integration/install_shell_integration_and_utilities.sh | bash
Выполните команду и объедините приложение внимания, например
./task && ~/.iterm2/it2attention once
Это приведет к тому, что приложение iTerm отобразит значок, когда работа будет завершена.
У вас также есть другие варианты внимания:
$ .iterm2/it2attention -h
Usage:
it2attention start
Begin bouncing the dock icon if another app is active
it2attention stop
Stop bouncing the dock icon if another app is active
it2attention once
Bounce the dock icon once if another app is active
it2attention fireworks
Show an explosion animation at the cursor