Macで時間のかかるコマンドが終わったら、自動で通知するzsh設定

  • 378
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

実行時間の長いコマンドが終わったら、Mac の Notification Center (Growl にするのも可能) で通知がくる。Terminal.app と iTerm 2 に対応している。

zsh-notify-win.png

通知の様子。30秒を超えるコマンドが通知されている。

zsh-notify-fail.png

30秒を超えないコマンドでも、失敗したら通知される。

どちらもターミナルがバックグラウンドのときのみ通知される。長いコマンドを投げてから twitter とか見てたらいつのまにか時間が経ってしまうような人に便利。

設定

1. 準備

  • Notification Center に通知する場合

alloy/terminal-notifier をインストールする。コマンドから Notification Center に通知をするためのアプリ。
Releases から .app をインストールしてもよいし、Download にあるように RubyGems もしくは homebrew で入れてもよい。

  • Growl に通知する場合

Growl - Downloads から GrowlNotify を入れる。Growl に通知するのは使ってないので割愛...

2. インストール

marzocchi/zsh-notify を zsh で使えるようにする。
ダウンロードして適宜配置し、.zshrc に以下を追記する。

source ~/.zsh.d/zsh-notify/notify.plugin.zsh

デフォルトでは terminal-notifier を .app でインストールした場合を想定しているので、インストールする方法によって修正する。$ which terminal-notifier の実行結果を貼り付ければいいんじゃないかな。

export SYS_NOTIFIER="/Users/kei/.rbenv/shims/terminal-notifier"

3. 設定

デフォルトでは閾値が30秒になっているので、各自よしなに。

export NOTIFY_COMMAND_COMPLETE_TIMEOUT=10