10秒とか20秒とか1分とか時間のかかるコマンドを実行する事はしばしばある。 この間ずっとiterm2を目視しているわけにもいかず、何か別の事をする。しかし別の事をしていると、コマンドが終わった時に気が付けない。10秒くらいで終わるコマンドを実行しているのに、気がついたら5分くらい別の事をしてた。なんてあるあるだ。
なのでコマンドの実行が終わったら通知して欲しい。
探したらいいのを見つけた。
そして、参考サイトのコピペするだけで動いた!
function notify_precmd { prev_command_status=$? if [[ "$TTYIDLE" -gt 1 ]]; then notify_title=$([ "$prev_command_status" -eq 0 ] && echo "Command succeeded \U1F646" || echo "Command failed \U1F645") osascript -e "display notification \"$prev_command\" with title \"$notify_title\"" fi } function store_command { prev_command=$2 } autoload -Uz add-zsh-hook add-zsh-hook preexec store_command add-zsh-hook precmd notify_precmd
さらに、これのいいところは、1秒より長いコマンドを実行した時には自動的に実行してくれるので、短いコマンドで無駄に通知されることもない。 これでちょっと便利になったー。
[追記] 実際にしばらく使ってみてはいるが、たまに通知してくれない時もあるようだ。。。