Macのターミナルで時間がかかるコマンドが終了したら通知を受け取る

 ツイート 0  シェア 0  Hatena 0

iterm2

Mac で時間がかかるコマンドを実行し、コマンドが終了したら通知する方法を紹介します。コマンドを実行している間に他の作業をしていて、コマンドが終わっているかチラチラ見に行くのが面倒だったのでやり方をメモ。

目次

  1. julienXX/terminal-notifier をインストール
  2. marzocchi/zsh-notify
  3. zplug で marzocchi/zsh-notify をインストール
  4. 動作確認

julienXX/terminal-notifier をインストール

まずはターミナルから通知を送ることができるツール julienXX/terminal-notifier をインストールします。

brew コマンドで入れられます。


$ brew install terminal-notifier

使い方はコマンドの後ろにパイプで terminal-notifier を渡すだけ。


$ echo 'Piped Message Data!' | terminal-notifier

marzocchi/zsh-notify

上記の方法でもコマンド終了時に通知を送ることはできますが、毎回パイプで渡すのは面倒です。zsh のmarzocchi/zsh-notify プラグインを使うことでパイプを省略することができます。

インストール方法を見ると、プラグインマネージャーを使ったインストール方法が紹介されています。私はこれまで zsh のプラグインマネージャーを使っていなかったので、これを機に導入してみることに。

zsh のプラグインマネージャーを調べると、いくつか候補が。

antigen が定番っぽく GitHub のスターの数が一番多いですが、より改良が施されたとされる zplug を使ってみます。zplug は作者が日本人のようです。

zplug で marzocchi/zsh-notify をインストール


export ZPLUG_HOME=/usr/local/opt/zplug
source $ZPLUG_HOME/init.zsh

zplug "marzocchi/zsh-notify"

if ! zplug check --verbose; then
  printf 'Install? [y/N]: '
  if read -q; then
    echo; zplug install
  fi
fi

ターミナルを再起動すると zsh-notify をインストールするかを尋ねられます。y を選択すると、zsh-notify のインストールが始まります。私の環境では /usr/local/opt/zplug/repos/marzocchi/zsh-notify にインストールされました。

動作確認

ターミナルを起動し、sleep コマンドで動作確認してみます。しばらくして通知が送られてくれば成功です。


$ sleep 35

30 秒が長いと感じる方は、.zshrc に以下のように追記することでカスタマイズできます。詳しくはドキュメントを確認してください。


zstyle ':notify:*' command-complete-timeout 15

 ツイート 0  シェア 0  Hatena 0