はじめに
開発をしていると、テストやセットアップ処理、ライブラリの導入などで長い時間待つことがあると思います。 そんな時に暇すぎてTwitterを見に行くと、そのまま夕方になり生産性が破滅することが良くあると思います。
なので長い処理が終わったら、通知が来るようにしてTwitterランドから仕事に戻れるようにしました。
動かした環境
利用するもの
- terminal-notifier
- zplug
- zsh-notify or iterm-notify
手順
では準備していきましょう。
terminal-notifierをインストールする
こいつはターミナルからmacOSの通知を出してくれる君です。Homebrewで入れていきます。
brew install terminal-notifier
インストールしたら下記のコマンドを試してみましょう。
terminal-notifier -message 'HELLO'
そして下記のように通知が来たら成功です。
さて、これで現状でも
処理が長いコマンド | terminal-notifier -message '終わったよ'
などとすればコマンドの処理が終わった後に通知が来ます。
しかし、大体の場合 "処理が長いコマンド" を実行したあとで「あ!通知設定するの忘れてた」となると思います。
これを防ぐため、一定以上実行に時間がかかった処理が終わったら通知が来るようにする zsh-notify
を入れます。
の、前に、 zsh-notify
のようなプラグインを管理してくれる zplug
を導入します。
zplugをインストールする
これもHomebrewで簡単に入ります。
brew install zplug
zsh-notifyをインストールする
.zshrc
に下記の処理を追記します。
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 zplug load
これを書いたあとでzshを再起動すると下記のように、プラグインのインストールを促してくれます。
ここで y
を入力すれば、zsh-notify
がインストールされます。
試してみる
試しに下記のコマンドを実行してみましょう。なお、ターミナルにフォーカスが当たってると通知が来ないので注意です。
sleep 40
下記のように通知が来たらOKです。
通知される時間を変える
デフォルトでは30秒以上の処理で通知が来ますが、この時間を変えたい場合は .zshrc
に、
zstyle ':notify:*' command-complete-timeout 15
みたいに追記しましょう。これで15秒がしきい値になります。
iTerm2をご利用の方へ
iTerm2を利用している方は marzocchi/zsh-notify ではなくて marzocchi/iterm-notify が用意されているので、そちらを利用するのが良いでしょう。