今まで、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 件のコメント:
コメントを投稿