Подтвердить что ты не робот

Как заставить терминал iTerm уведомлять меня о завершении работы/процесса?

Уведомление центра уведомлений было бы идеальным, но рычание, док-станция, звук и т.д. тоже были бы хороши (или если это можно сделать только в Terminal.app, я бы хотел вернуться). Есть ли опция в iTerm для включения уведомлений или это то, что я должен ввести в конце команды в терминале? Если последнее, можно добавить предупреждение, как только процесс начнется (например, если я пойму, что это займет больше времени, чем я ожидал, я плохо думаю).

4b9b3361

Ответ 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

И этот дисплей так:

enter image description here

Вы также можете изменить звук и значок уведомлений. Больше информации в репозитории 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