twittering-mode から Growl 通知

どうも最近また MacOSX を使おうかと思い始めた meech です。Emacs ひっきーなぼくとしては Twitter という入力を多く行なうものはもちろん Emacs の中からやりたく twittering-mode を使っています。

さて、 Mac だと Growl という通知システムがいろんなもので使われていて、これを見ていると twittering-mode でも通知を行なってほしいなーと思うようになりました。さあ! elisp を書きましょう!

growlnotify いれる

Emacs から Growl をたたくのにはコマンドラインのツール growlnotify を使うことにします。 Growl から Growldmg をとってきて開いて

Extras の中をたどってインストール


elisp を書く

こんな感じですねー。

call-process-region を使って単純に投げてるだけです。 アイコンは http://a3.twimg.com/profile_images/591058454/twitter-icon.png のですね。

アイコン表示するべくさらに elisp を書く

これだけじゃあいまいち誰の発言かわかりません。アイコンがないからですね。 アイコンを適宜取得してそれを使うように書きかえませう。

elisp でネットからなにかダウンロードする時は id:kiwanami さんの deferred.el を使うのがもはや常識ですね! ここでは、ファイルがあるかないかで、最初の deferred object (と呼んでいいのかな ^^; )を分けています。ファイルがもうあるなら取ってくるなんて無駄ですよね。

アイコンが小さい時があるぞ?

Growl は大きいアイコンはよしなに縮小してくれるのだけれど、小さいもの?(実のところ、ここの条件はよくわからない)はそのまま表示してなんだか見えにくくなっちゃう。ってことで、 convert で適宜大きくしてあげるのがよさげ。

deferred.el を使っているのでこういうのもさくっといじれちゃいますね! 取得時の操作が長くなるので、ちょっとスタイルを変えましたがまぁほとんど同じです。

以上! これで快適な twittering-mode on Mac 生活がおくれることでしょう!