growl-for-linux 0.7.5に入ったAppIndicator対応の話

はじめに

growl-for-linuxに地味ながらAppIndicator対応がマージされました。0.7.5としてリリースされています。

pull requestを送ったのは先月の話ですが、せっかくだから記事を書いておきます。

なぜAppIndicator対応か

このAppIndicator対応が何者かというのはとても地味な話ではありますが、スクリーンショットを見ればあぁ、コレね、とすぐにわかると思います。要は通知エリアのお話です。

(http://unity.ubuntu.com/projects/appindicators/より)

なんだかずーっと前からあるじゃん、という話になりそうなんだけれども、これにはちょっとした事情があります。

Ubuntu 13.04ではUnity Notification Area (Systray) Whitelistが廃止されました。 これによってWhitelistを設定すれば動作していたアプリケーションは少なくとも通知エリアに関しては動作しなくなります。 (これまではWhitelistを設定するとGtkStatusIconを使っていてもいい感じに表示してくれていたので、いわば執行猶予中みたいなものでした。)

主要なアプリケーションは対応済みなので意外と気づかなかったかもしれませんが、growl-for-linuxはこの制限にひっかかってしまった、というわけです。

というわけで、GtkStatusIconを使っていたものをAppIndicatorに置き換える必要がでてきました。 ステータスアイコンから設定メニューを出しているので、そもそも表示されないと何もできないことになり、致命的なのです。

実際のAppIndicatorへの対応

こんな感じのことをやりました。

https://github.com/mattn/growl-for-linux/commit/a7dfa30158e3a315185f84b8fdf1959a24664c13

実際に表示している様子はこんな感じになります。

f:id:kenhys:20130724222108p:plain

オンオフを切り替えるメニューもつけています。

f:id:kenhys:20130724223029p:plain