2005年4月19日

[vine-users:071593] ATOK for Linux : IIIMFのステータスウインドウ非表示化

野口@清澄白河です。

ATOK for LinuxをVine 3.1で使用した際、アプリウインドウ左下に表示される
iiimfのステータスウインドウを非表示とすることに成功しましたので、簡単に報告します。


<現状>
ATOK for LinuxをVine 3.1上で動かしていますが、GTKアプリにおいては
そのウインドウ(以下、アプリウインドウ)の左下に "ATOK" "あ連R漢" といった
小さなウインドウ(以下、ステータスウインドウ)が表示されます。


GTKアプリを起動した直後はアプリウインドウ枠外側の左下にステータスウインドウが
表示されています。
しかし、アプリウインドウを移動したり、そのサイズを変更した後に、
ALT+HOME+矢印キーを押下する等してデスクトップを移動して元のデスクトップに
戻ってくると...ステータスウインドウが初期表示位置に戻ってしまうのです(悲。

ステータスウインドウがアプリウインドウと重なってしまうため、
見にくいことことの上なしです。


<解決方法(サマリ)>
実施した流れは、小生のサイト(*1)に備忘録としてまとめています。
ここではそのサマリを記します。


1.前準備 - iiimf から gnome-im-switcher を抽出する

iiimfのソースを追いかけた結果(+googleで調べた結果)、Vine 3.1に
インストールすべきは、gnome-im-switcher関連であることが判明しました。
これだけをbuildしようと試みたのですがうまく出来ませんでした。
iiimfそのものをbuildした後であれば、簡単にgnome-im-switcherをbuildする
ことができました。
iiimfからgnome-im-switcherを抽出するため...以下のような前準備を行いました。

#Vineでパッケージされているかな?と思い、gnome-im-switcherを
#探してみたのですが、見あたりませんでした。
#これで存在していたら...少しだけ悲しいかもしれない...。

(1) iiimfを展開する
ATOK for Linuxに同梱されている iiimf-trunk_r2059-js1.src.rpm を
インストールします。

$ sudo rpm -ivh iiimf-trunk_r2059-js1.src.rpm

(2) iiimfをとりあえずrpmbuildする
im-sdk.specに対して、Vine 3.1 でビルドできるようにあれやこれやとパッチを
当てる...。
その結果できたSPECファイルは *1 を参照ください。
#im-sdk.spec上、そのLicenseは GPL となっています。

$ vi ~/rpm/SPECS/im-sdk.spec
$ sudo rpmbuild -ba ~/rpm/SPECS/im-sdk.spec

<主な修正箇所>
・autogen.shの直前にlibtoolize --automake を追加。(複数箇所あり)
・gtk2.2に関連する処理の削除および変更


2.gnome-im-switcher をbuildする

(1) buildされたiiimfから、gnome-im-switcherをtarする。

$ cd ~/rpm/BUILD/iiimf-trunk_r2059/gnome-im-switcher
$ make dist-bzip2

(2) RPM/SRPMを作成する
同フォルダに存在する gnome-im-switcher-applet.spec をVine 3.1で
動作するように修正します。
その結果できたSPECファイルは *1 を参照ください。
#gnome-im-switcher-applet.spec上、そのLicenseは LGPL となっています。

$ cp ~/rpm/BUILD/iiimf-trunk_r2059/gnome-im-switcher/gnome-im-switcher-1.1.2.tar.bz2 ~/rpm/SOURCES
$ cd ~/src
$ tar jxvf ~/rpm/SOURCES/gnome-im-switcher-1.1.2.tar.bz2
$ cd gnome-im-switcher-1.1.2
$ vi gnome-im-switcher-applet.spec

<主な修正箇所>
・Vine3.1でビルドできるようにパッチを追加
・BuildRequireからgnome-panel-develをコメントアウト
・capplet配下のプログラムをパッケージに含めるように修正

また、Vine 3.1ではlibgnome、libgnomeuiのバージョンがそれぞれ 2.4.0 と
なっています。そのため、リンク時に参照エラーとなってしまい、buildすることが
できません。
VineSeedにあるバージョン(2.10.0)であれば大丈夫そうなのですが、
当環境にはインストールしていませんので、エラーとなったソースファイルに
対してパッチ(コメントアウト)を当てることで対処しました。
コメントアウトした箇所は、ヘルプ表示に関するもののようでしたので、
コメントアウトしても処理に影響を与えるものではないと判断しました。

$ cp -a ./src/utils.c ./src/utils.c.orig
$ vi ./src/utils.c
--> gnome_help_display_desktop_on_screen 関数をコメントアウトする
$ diff -uN ./src/utils.c.orig ./src/utils.c > ~/rpm/SOURCES/gnome-im-switcher-1.1.2.on_screen.patch
$ rpmbuild -ba ~/rpm/SPECS/gnome-im-switcher-applet.spec

これで無事(?)に gnome-im-switcher がbuildできました。

(3) gnome-im-switcher をインストールする
作成した gnome-im-switcher をインストールします。

$ sudo rpm -ivh ~/rpm/RPMS/i386/gnome-im-switcher-1.1.2-0vl1.i386.rpm


3.gnome-im-switcherの設定を行う

(1) gnome-im-properties を実行し、設定を変更する
デスクトップパネルの"アプリケーション"→"デスクトップの設定"→"拡張設定"→
"入力方式"を選択する、もしくはコマンドラインから

$ gnome-im-properties

と入力します。
ダイアログが表示されますので、'入力方式ウインドウの外観'の'配置'に関して
"デスクトップパネル上"を選択します。

これで、アプリウインドウ左下に表示されていたステータスウインドウが
非表示となりました。

しかし、この設定だけでは X Window を再起動してしまうと、悲しいかな
ステータスウインドウが表示されてしまうのです。
どうやらX Window起動時にIMの設定が読み込まれていないようです。

(2) X Window起動時に IM の設定を読み込まれるようにする
デスクトップパネルの"アプリケーション"→"デスクトップの設定"→"セッション"から
'自動起動するプログラム'を選択し、gnome-im-settings-daemon を追加します。

これでX Windowを再起動しても、ステータスウインドウが表示されなくなりました。
めでたしめでたし。

#おそらく、/usr/share/vine/imelib でこのモジュールを呼び出すように
#設定するのが収まりがよいかなとは思います。


4. その他
上記内容で当初の目的は達成されたのですが、せっかくgnome-im-switcherを
インストールしたので、そのもの自体の設定についてもふれておきます。

(1) gnome-im-switcher をパネルに追加する
デスクトップパネル上で、右クリックを押下し、"パネルに追加"→"ユーティリティ"→
"入力方式スイッチ"とするとパネルに白いボックスがパネルに追加されます。
この状態で、CTRL+SPACE等を押下して、IMと会話を行えば白いボックスが
"あ連R漢ja"といったように、現在の入力モードを表示するようになります。


*1 http://www.org3.net/tech_notes/atok.html

--
NOGUCHI Shoji <noguchi@xxxxx>
Key fingerprint = 231A C329 780F 9DA5 D092 CEBD 0D9F 4294 EB13 A205
URI = http://org3.net

投稿者 xml-rpc : 2005年4月19日 03:31
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/13394
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。