search
LoginSignup
372

More than 5 years have passed since last update.

posted at

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

概要

実行時間の長いコマンドが終わったら、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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
372