2013年7月7日日曜日

terminal-notifierを使ってみる

今まで、Mac上での定期的な通知にはgrowlnotifyをよく使っていました。でも、最近のMac OS Xでは、growlに似た通知機能がOSの通知機能(Notification Center)として提供されています。そこで、growlnotifyの代替を探してみると、terminal-notifierというものがありました。
ここで、alloyという方が開発提供されています。

そこからダウンロードしてもいいんですが、普段使っているMacPortsでインストールすることにしました。MacPortsで導入する方が、アップデートがあったかどうかがわかりやすいかなと思ったからです。
Rubyで使いたい人は、gemでもインストールできるようですね。

インストール後の使い方ですが、ターミナルから以下のように、引数なしでコマンドを入れて確認できます。

$ terminal-notifier 
terminal-notifier (1.4.2) is a command-line tool to send OS X User Notifications.

Usage: terminal-notifier -[message|list|remove] [VALUE|ID|ID] [options]

   Either of these is required:

       -message VALUE     The notification message.
       -remove ID         Removes a notification with the specified ‘group’ ID.
       -list ID           If the specified ‘group’ ID exists show when it was delivered,
                          or use ‘ALL’ as ID to see all notifications.
                          The output is a tab-separated list.

   Optional:

       -title VALUE       The notification title. Defaults to ‘Terminal’.
       -subtitle VALUE    The notification subtitle.
       -group ID          A string which identifies the group the notifications belong to.
                          Old notifications with the same ID will be removed.
       -activate ID       The bundle identifier of the application to activate when the user clicks the notification.
       -open URL          The URL of a resource to open when the user clicks the notification.
       -execute COMMAND   A shell command to perform when the user clicks the notification.

When the user activates a notification, the results are logged to the system logs.
Use Console.app to view these logs.


通知を表示し、更にURLを開いたりコマンドを実行できるなどの機能もあるようですが、今回は使いません。
例えば、以前の記事のgrowlnotifyの例は、こんな感じにすればいいみたいです。

$ terminal-notifier -message "`date +今日の%H:%M%n金魚にえさ`" -title crontab -group feed

表示はこんなふうになります。


標準入力をterminal-notifierに渡す方法がなさそうなので、時刻などはメッセージの中にdateコマンドを埋め込んで表示しています。
-groupオプションは、同じID(ここでは、feed)が指定してあるメッセージを上書きするようなイメージです。
-titleをcrontabにしているのは、この通知をcrontabで定期的に表示させたいためです。

また、表示スタイルを変更したい場合は、システム環境設定の通知で少しだけ変更できるようです。

とりあえず、growlnotifyの代替として使えそうです。

0 件のコメント:

コメントを投稿