結論
ハングする件
https://github.com/alloy/terminal-notifier/issues/115 に書いてある通り、reattach-to-user-namespace
を入れて、以下の設定を.tmux.conf
に入れてやれば動く。
brew install reattach-to-user-namespace
set-option -g default-command "reattach-to-user-namespace -l zsh"
reattach-to-user-namespace
はクリップボード共有のために入れているひとも多いはずだし、すでにこの設定は入ってると思う。
tmuxとzsh-notifyの相性が悪い件
mainstreamのzsh-notifyじゃなくて、 https://github.com/shrkw/zsh-notify/tree/tmux_support を使う。
ダメだった。まだ解決してない。 https://twitter.com/_atton/status/533034969224855552
ターミナルAppがカレントウィンドウかどうか、カレントタブかどうかのAppleScriptのところが正常に動いてないので直さないといけない。
git clone git@github.com:shrkw/zsh-notify.git
git checkout tmux-support
環境
$ terminal-notifier -V
terminal-notifier (1.6.2) is a command-line tool to send OS X User Notifications.
$ tmux -V
tmux 1.9a
$ reattach-to-user-namespace -v
reattach-to-user-namespace version 2.3
Supported OSes: OS X 10.5-10.10
経緯など
http://qiita.com/kei_s/items/96ee6929013f587b5878 を見まして、いっちょ通知の設定でもするかと気張ったけど、そもそもbrew install terminal-notifier
で入れたterminal-notifier
が動かない。
おかしいなあと思いつつtmuxの外から試すと動く。あれれと検索してみると、すぐに https://github.com/alloy/terminal-notifier/issues/106 が見つかった次第。
tmuxとzsh-notifyの相性が悪い件
素のzsh-notifyだとtmuxのことを考慮してなくてtmuxのウィンドウがフォアグラウンドにあっても通知がきてしまう。コマンド実行時のtmuxの#{window_id}
を保存しといて、終わったときに現在のアクティブな#{window_id}
と比較すればいいんじゃないかと思って雑な実装を一通り書き終わってPR作るかと思ったところで上記のブランチを見つけた。
けど、ちょっと中途半端な状態のブランチだったので、フォークしてターミナルAppで動くように数行加えた次第。