VineSeedでATOKと仲良くする

ATOK for Linuxには入力以外の部分でいくつか細かい不満があり、これまでに何度かこの日記でも取り上げた。

この件に関して最近また進展があったのでここにまとめる。

gtkアプリでステータスウィンドウを非表示にする

ATOK for Linux - ステータスウインドウを非表示に...のページを参考に、gnome-im-switcherをインストールしたらこの件は解決した。ただしこちらではiiimfパッケージのspecファイルを修正して、1回のリビルドで済むようにしている。
gnome-im-settings-daemon自動起動させる良い方法はないかと思ったが、GNOMEの起動プロセスがよく分からなかったので、リンク先のページと同様にセッションの自動起動するプログラムに追加することにした。

ATOKのプロパティが表示されない

この件はgtkのバージョンが違うことが原因だということは分かったが、その解決方法が見つからずに放置していた。ATOK for Linuxの動作環境はgtkの2.4で、それに対してVineSeedgtkは2.6。gtk-2.6は2.4と完全な互換性があるわけではないらしい。
落穂拾い:atok on Gentoo Linuxのページで紹介されている、gtk-2.6とgtk-2.4を共存させる方法は根本的な解決ではないがそれでも確かにうまくいくので、この方法を採用してRPMパッケージを作った。
さらに、Vineではインプットメソッドの切り替えと起動はsetimeという仕組みに組み込まれているので、以下のパッチを当てる必要がある。

--- /usr/share/vine/imelib.orig 2005-03-06 12:25:17.000000000 +0900
+++ /usr/share/vine/imelib      2005-05-06 05:38:51.000000000 +0900
@@ -607,6 +607,7 @@
    if [ -f ${HOME}/.Xdefaults ]; then
       xrdb -merge ${HOME}/.Xdefaults
     fi
+    LD_LIBRARY_PATH=/usr/lib/gtk24 \
     /usr/lib/im/httx -if atokx2 -xim htt_xbe &

 fi

RPMパッケージ

ソースパッケージのリビルドは、

rpmbuild --rebuild iiimf-trunk_r2059-7.src.rpm

のようにする。なお、Vine Linux 3.1の場合は、iiimfパッケージのリビルド時に--define gtk24:1を付けるとgnome-im-switcherのソースにパッチが当たりコンパイルが通るようになる(はず)。