Мне нужен способ вызвать уведомление Growl, когда в Терминале сработал звуковой сигнал.
В идеале мне бы хотелось иметь возможность получать выходные данные терминала - скажем, с SSH-сервера - и обрабатывать их с помощью Growl - условно.
Есть идеи?
Мне нужен способ вызвать уведомление Growl, когда в Терминале сработал звуковой сигнал.
В идеале мне бы хотелось иметь возможность получать выходные данные терминала - скажем, с SSH-сервера - и обрабатывать их с помощью Growl - условно.
Есть идеи?
Используйте iTerm в качестве эмулятора терминала, это единственный известный мне способ. Это имеет рычание поддержки :)
То, что вы хотите, возможно, но я не думаю, что инструмент еще существует. Как место, где можно начать его разработку, обратите внимание на BounceTerm (поставляется с источником), который превращает звуковые сигналы и звонки в скачки дока. Кажется, что это именно то поведение, которое вы ищете, но с несколько иным результатом.
Интересный вопрос, но довольно открытый. Какие звуковые сигналы вы пытаетесь запечатлеть? И какой выход вы пытаетесь обработать? Ошибки? Завершение процессов?
growlnotify - инструмент командной строки для публикации уведомлений Growl. Он должен быть установлен отдельно, и его можно найти в папке Extras на образе диска Growl.
Вы можете использовать команду unix trap для перехвата любых ошибок в скрипте и отправки результатов на рычание с помощью growlnotify. Я не знаю ни о каком способе перехвата звонка терминала, вам нужно перехватить какой-то определенный сигнал Unix.
Чтобы увидеть, какие сигналы доступны в вашей системе, введите kill -l
в терминал. В статье, приведенной выше, о команде ловушек unix есть список распространенных сигналов ловушек.
Если вы ищете способ уведомить о завершении долгосрочного сценария терминала, вот решение для Mac OS X Советы.
Если вы просто хотите перенаправить весь вывод терминала на рычание, метод Mac OS X Hints может быть изменен для этого. Поместите это в ваш .profile, .bashrc или .zshrc. Это перенаправит вывод вашей команды на рычание.
# Before a command execution
preexec() {
export PREEXEC_CMD="Command: $1"
$1 | growlnotify -n "Terminal" ${PREEXEC_CMD:-Some command}
}
Я оставлю читателю в качестве упражнения добавление логики для условного перенаправления в зависимости от команды или каких-либо параметров, поскольку я не знаю, какие "условия" вы ищете. :)
Частичный ответ: Начиная с Mac OS X Lion 10.7, терминал отображает значок на своем значке Dock, указывающий количество BEL, записанных в неактивных терминалах. "Неактивный" означает, что либо окно терминала не является передним / активным окном, либо терминал не является выбранной вкладкой в окне с несколькими вкладками. Он также отображает значок "колокольчик" на вкладках, чтобы указать, какой терминал подал звуковой сигнал (я рекомендую показывать панель вкладок, даже если вы не используете окна с несколькими вкладками - Lion Terminal отображает там несколько полезных новых индикаторов состояния). Если Терминал не является фронтальным приложением, при звуковом сигнале также будет отображаться значок Dock.