Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

概要

実行時間の長いコマンドが終わったら、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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away