Growlにgntp経由で通知させるgntp.elの紹介

Emacsでは、ユーザーへ何がしかの情報をお知らせする領域として伝統的にエコーエリアが使われます。例えばコマンドを途中まで入力してしばらく待っているとエコーエリアに入力されたキーが出てきます。 他にも多くのアプリケーションがエコーエリアを使っています。
過去のPCのようにディスプレイの解像度が低ければ、エコーエリアでも十分機能していましたが、現代の広大なディスプレイにおいてエコーエリアはあまりにも小さくなりすぎました。
そして、エコーエリアは忙しすぎます。アプリケーションからはどんどん情報が送られてくる傍ら、ミニバッファとしてのお勤めも果さなければいけません。
多忙なエコーエリアですが、送られてくる情報は全て上書きされるようになっており、見ようと思ったら、すでに上書きされて*message*バッファ送りされてたりすることもしばしばです。
こういった話はEmacsコミュニティの中でも問題視されているのか、Emacs24からはDbus経由でのデスクトップ通知ライブラリであるnotifications.elが同梱されるようになりました。
notifications.el – Life is very short
ただ、Dbus自体がプラットフォームに依存するので、あまりパッとしない感じです。
もうだいぶブームが過ぎた感がありますが、やはりデスクトップ通知というと、Growlではないでしょーか。
Macでは、通知センターができたりして影が薄くなってしまっているようですが、LinuxにもWindowsにもあるのでプラットフォームを選びません。
mattn/growl-for-linux @ GitHub
Growl for Windows
それとGrowlの良い点としてgntpなるプロトコルをサポートしているというのがあります、gntpを使えばプラットフォームの差異をアプリケーション側で吸収できます。
というわけで、今回はそのgntpをEmacsから話せるようにするgntp.elの紹介です。
インストール
使い方
まず、通知するアプリケーションをGrowl側に登録しておく必要があるので、 gntp-register-alist
に名称やアイコンの情報などを設定しておきます。
(setq gntp-register-alist '((org-notify :display "Org-mode notification" :enabled t :icon "http://raw.githubusercontent.com/myuhe/org-gcal.el/master/emacs.png") (alert :display "org-gcal" :enabled t :icon "http://raw.github.com/myuhe/org-gcal.el/master/org.png")))
後は、 M-x gntp-register
とすれば、登録されます。
通知は、 gntp-notify
で実行されます
(gntp-notify 'alert "Emacs message" "HELLO WORLD" "localhost")
gntp-notify
の引数は 順に
gntp-register-alist
で登録した名称のシンボル- タイトルを表す文字列
- 内容を表す文字列
- 接続先を示す文字列(ローカルマシンなら “localhost”)
のようになっています。
-
前の記事
雪のくじゅうを登った 2015.01.05
-
次の記事
org-notify.elでスケジュールとかTODOのリマインダを通知 2015.01.10