Part4 X Window Systemで使用するインプットメソッド

最初に、それぞれのインプットメソッドのデフォルトのキーバインドを示しておこう。この表には基本的なキーバインドしか載せていないので、インプットメソッドによってはプリエディットの先頭にカーソルを移動させるなど、もっと多くのキーバインドを持っているものもある。

キーバインド表

使用法に関しては、多くの場合は普通の連文節変換であるので、特に書くほどの事がない場合は割愛した。

kinput2

公式サイトは存在しないが、ftp://ftp.sra.co.jp/pub/x11/kinput2/が配布場所のようだ。

kinput2は石曽根信氏によって開発されたXIMサーバである。kinput2は現在最も広く使われているXIMサーバであり、変換エンジンと してはWnn,Canna,Sj3,Atokをサポートしている。今回はその中でも最も良く使われているkinput2とCanna、kinput2と Wnnの組合せについて解説する。

インストール

Debianの場合はapt-get install kinput2-canna-wnnで完了である。cannaを使う場合はさらにcannaを、FreeWnnを使う場合はさらにfreewnn- jserverをインストールしておけば良い。全部まとめてしまうなら、

#apt-get install kinput2-canna-wnn canna freewnn-jserver

である。Fedoraの場合は最初からインストールされている。

kinput2 + cannaの設定

kinput2は起動時にどのサーバと接続するかを決定する。(ただし、プログラムのコンパイル時に使うと指定したもの以外は使えない。) Cannaサーバと接続する際には-cannaというオプションを付けてkinput2を起動すれば良い。その他に環境変数XMODIFIERSの設定が 必要なので、結局、設定は~/.xsessionの上の方に

XMODIFIERS=@im=kinput2; export XMODIFIERS
exec kinput2 -canna &

と書く事になる。

kinput2 + cannaの使用法

表2のキーバインド表の他に特に使用法に関して注意する事はない。WindowsでMS-IMEを使っている人なら、キーバインドも違和感なく使えるだろう。たぶん変換候補が横に表示される事には違和感を覚えると思うが、これはそういうものなので仕方がない。

kinput2 + FreeWnnの設定

Debianの場合の設定はkinput2 + canna時と同様にして~/.xsessionの上の方に

XMODIFIERS=@im=kinput2; export XMODIFIERS
exec kinput2 -wnn &

と書いておけばよい。Fedoraの場合は/etc/X11/xinit/xinitrc.d/xinputで使用するXIMサーバが設定されているのだが、それによるとどうもCannaが入っていない場合に自動的にFreeWnnが選択されるようなので、

#rpm -e Canna-lib

を実行するのが一番てっとり早い。

kinput2とFreeWnnの組み合わせは、Debian Sidのデフォルトでは変換候補ウィンドウが表示されないようだ。変換候補ウィンドウを表示するためには、 /etc/kinput2/ccdef.kinput2.eggの

	""	' '		""	convert-next-or-move-top-or-sendback

という行を

	""	' '		""	convert

と書き換えれば良い。ccdef.kinput2.eggのある場所は環境によって違うようなので、みつからない場合はlocate ccdef.kinput2.eggなどとして探して欲しい。

kinput2で入力中のスクリーンショット

kinput2で入力中のスクリーンショット

skkinput

公式サイトはhttp://skkinput2.sourceforge.jp/である。

特徴

skkinputは坂本祟氏によって開発された、skkライクな入力方式を実現するXIMサーバである。skkinputにはversion2系列 とversion3系列が存在するが、3系列はまだ開発版である。ここではおとなしく2を使うことにしよう。なお、原稿執筆時点での最新版は2003年 10月にリリースされた2.06.4である。

導入方法

Debianであればパッケージ化されているので、skkinputとdbskkd-cdbあたりをapt-getしておけば良い。Fedoraの場合は最初からインストールされている。

設定方法

skkinputを使用するために最低限設定する必要のある項目は、環境変数XMODIFIERSを@im=skkinputと設定しておく事と、 skkinputを起動しておく事である。もちろん毎回自分で起動するのはめんどくさいので、常用するなら設定ファイルに書いておく。

Debianなら~/.xsessionに

XMODIFIERS=@im=skkinput; export XMODIFIERS
exec skkinput &

と書いておこう。Fedoraの場合はkinput2が入っていなければskkinputが使われるようなので、

#rpm -e kinput2-canna-wnn6

としてkinput2を消してしまうのが簡単で良い。

使用方法

shift+spaceでskkinput自体のon/offが行える。他の動作はPart3で紹介した本家SKKの動作に準じる。

使用例

本家SKKの場合と同じ。

カスタマイズ

skkinputのカスタマイズは~/.skkinputで行う事ができる。(~/.skkinputが存在しない場合は自分で作れば良い。)いくつかの設定項目が存在するが、その中でもよく使いそうな設定を1つ紹介しよう。

skkinput-rom-kana-rule-list: ("kk" "k" "っ" "ッ")

のように、skkinput-rom-kana-rule-list: ("ローマ字の組み" "未確定状態で残す文字" "ひらがなモードで入力される文字" "カタカナモードで入力される文字")という形式で、新しくローマ字から入力する文字のルールを付け加えられる。例であれば、「kk」が入力されれば「っ k」に変わるという事である。この機能を用いれば、Part2で紹介したzhで←をだす、というような設定が可能である。

skkinputで入力中のスクリーンショット

skkinputで入力中のスクリーンショット

Xwnmo

今回はWnn7付属のXwnmoについてのみ解説するので、公式サイトはWnn7に準じる。

特徴

Wnn7版のXwnmoの特徴は、ウィンドウズライクなGUIを実現している事、Gtk+1.2でGUIが構築されている事である。

導入方法

今回は最初からWnn7がインストールされた状態のものを試したので、インストールについては試せなかったのだが、Installというシェルスクリプトを実行するだけで良いそうだ。

設定方法

xwnmoを起動しておくこと、環境変数XMODIFIERSを@im=_XWNMOに設定しておく事が必要である。~/.xsessionに

export XMODIFIERS=@im=_XWNMO
exec xwnmo &

と書いておけば良い。

使用方法

Wnn7 + Xwnmoで入力中の画面

Wnn7 + Xwnmoで入力中の画面

デフォルトのキーバインドは一般的とは言い難く、また、C-i,C-oはGtk+2アプリケーションでは使えない(アプリケーションのショートカッ トキーになってしまう)事が多いので、キーバインドは変更しておく事をおすすめする。キーバインドの変更については次の設定方法を参照して欲しい。

設定方法

XwnmoのツールパレットのWのアイコンをクリックすると、ポップアップメニューが表示される。そこから環境設定という項目を選べば設定画面が表示され、GUIで設定が行える。

キーバインドはWnn,ATOK風,ME-IME風,EGG風の4つから選択でき、気に入らない部分がある場合は一番近いキーバインドからさらにカスタマイズできる。

Wnn7のキーバインドカスタマイズ画面

Wnn7のキーバインドカスタマイズ画面

uim

公式サイトはhttp://uim.freedesktop.org/である。日本語の公式サイトはhttp://anthy.sourceforge.jp/uim/にある。

特徴

uimは軽量な多言語入力用ライブラリである。田畑悠介氏によって開発され、現在は筆者によりメンテナンスされている。

uimはアプリケーションもしくはGUIライブラリに対し、ウィンドウシステムに依存しない文字入力用ライブラリであるlibuimを提供する。 libuimをそのまま使用するアプリケーションは今のところ存在しないので、実際に使用する際には、ブリッジを介して使用する事になる。ごちゃごちゃ書 いたが、ユーザからみれば、uimを使用する事の利点はAnthyやPRIMEといった新しめの変換エンジンを利用できる事、Gtk+2を用いた近代的な UIを利用できる事である。

ブリッジとして、現在はGtk+2.x用のimmoduleとXIM Server(uim-ximというコマンド名である)、GNU Screen用のscreen-uimの3種類を提供している。また、外部プロジェクトとしてMacOS XのInputMethod用ブリッジのMacUIM(Masaki Yatsu氏)、immodule for Qt用ブリッジのqt-immodule for uim(Kazuki Ohta氏)、Linux Zaurus用ブリッジのIMKit-uim(Kengo Yamamoto氏)が存在する。MacUIMとIMKit-uimについてはこの特集の範囲を越えるので紹介しない。Qt用のimmoduleについて は、残念ながら原稿執筆時点ではまだ実験段階であるので紹介できない。Part3ではuim-ximとGtk+用のimmoduleを、Part4では screen-uimを紹介する。

インストール

Debianの場合はuim-gtk2.0とuim-ximとuim-applet-gnomeあたりをインストールしておけば良い。Anthyや PRIMEと組み合わせ使いたい場合には、それらもインストールしておく必要があるので、インストール例は以下のような感じになる。

#apt-get install uim-gtk2.0 uim-xim uim-applet-gnome anthy prime skkdic

設定方法

uim-ximを使用する場合には、環境変数XMODIFIERSを@im=uim-hogeと設定しておく必要がある。hogeの部分には使いた い変換エンジン名が入る。例えば、Anthyが使いたい場合はXMODIFIERS=@im=uim-hoge;export XMODIFIERSとなる。uim-ximを起動するコマンドはuim-ximであるのに、環境変数で指定するのは具体的な変換エンジン名であるところ に注意しておこう。使える変換エンジン名については表3を参照してほしい。

なお、uim-ximは以前はQt/KDEアプリケーションと相性が悪く、メニューを開く際に妙に時間がかかったり、プリエディットが表示されなかったりする事があったが、それらの問題は既に解決されている。KDEユーザの方にも是非とも一度、試していただきたい。

Gtk+用のimmoduleでuimを使用する場合には特に設定は必要ないが、環境変数GTK_IM_MODULEで使用する変換エンジンを指定できる。

また、uimは状態を表示するのに別プロセスのhelperプログラムを使用するので、そのhelperプログラムも自動起動させておいた方が便利だ。というわけで、結局、Debianの場合は~/.xsessionに以下のように書いておく事になる。

XMODIFIERS=@im=uim-hoge; export XMODIFIERS
GTK_IM_MODULE=uim-hoge; export GTK_IM_MODULE
exec uim-xim &
exec uim-helper-toolbar-gtk-systray &

Fedoraの場合は/etc/X11/xinit/xinitrc.d/xinputを以下のように変更する

1. 100行目あたりの

  if [ -e /usr/X11R6/bin/xwnmo ]; then
	   XIM="_XWNMO"

の下に

 elif [ -e /usr/bin/uim-xim ]; then
           XIM="uim-hoge"

を追加。

2. 160行目あたりの

      _XWNMO)
	XIM_PROGRAM=xwnmo
	 ;;

の下に

     uim-hoge)
	XIM_PROGRAM=uim-xim

を追加。

使用方法

uim-tcodeとuim-tutcodeに関しての説明は今回は省くことにする。uim-anthyとuim-cannaは普通の連文節変換な ので、特に解説する事はない。uim-primeとuim-skkは普通の連文節変換ではないので説明が必要であるが、uim-skkに関しては Part3で解説してあるので、ここではuim-primeに関してのみ説明を行う。

とは言うものの、uim-primeの使用法に関しても、特に難しいことはない。普通に文章を入力すれば、勝手に予測候補が表示される。スペース キーもしくは上下矢印キーで候補選択モードに入るので、それからReturn or C-j or C-mで候補を確定すれば良い。候補が表示された状態で、数字を入力して候補を決定することもできる。

カスタマイズ

uimのカスタマイズは~/.uimにSchemeのコードを記述する事で行う。後で紹介するsumikaを用いてGUIで設定する事も可能ではあるが、現時点ではまだ~/.uimに書く方が主流である。

まずはキーバインドのカスタマイズについて解説しよう。uim 0.3.0以降では、define-keyという関数が用意されているので、それを使うとキーバインドが簡単に変更できる。例えば、uim-anthyで Shift+SPACEが日本語入力モードのオン/オフに割りあてられているのが嫌で、オン/オフにはAlt+漢字かC-jのどちらかを使うように設定し たいとしよう。そのような時は~/.uimに

(define-key anthy-on-key? '("zenkaku-hankaku" "j"))
(define-key anthy-off-key? '("zenkaku-hankaku" "j"))

と書けば良い。書式は

(define-key キーバインド名 '(キーバインド定義文字列の1回以上の繰り返し))

となっている。キーバインド定義文字列は"j" "l"のようにアルファベットや数字で定義でき、その文字の前にといった修飾キーをつける事ができる。zenkaku-hankakuのような特殊なキー定義は表4に示した。

★「表4 uimのキーバインドカスタマイズのための特殊なキー定義」table4.txt

全てのキーバインドはカスタマイズできるようになっているが、カスタマイズできる場合のリストを用意するとあまりにもスペースを取りすぎる(キーバインドの定義は全部で148個もある)ので、興味を持った方は各自でgrepしてみて欲しい。

$grep define-key /usr/share/uim/*.scm

で、再定義できるキーバインドの一覧が検索できる。キーバインド名を見れば、なにをするためのキーバインドなのかは想像がつくはずだ。

uim-anthyのカスタマイズ

uim-anthyはデフォルトではローマ字入力になっているが、かな入力も設定可能である。~/.uimに(load-kana-table)と 書くだけで、かな入力の設定になる。また、uim-anthyは文節区切りを表示する事ができる。この機能をonにするためには、~/.uimに (define anthy-show-segment-separator? #t)と書けば良い。

uim-anthyの使用中のスクリーンショット

uim-anthyの使用中のスクリーンショット

uim-primeの使用中のスクリーンショット

uim-primeの使用中のスクリーンショット

IIIMF

公式サイトはhttp://www.openi18n.org/iiimf/である。

特徴

IIIMFもuimと同じくX Window Systemに非依存な入力フレームワークであるが、現在のところX Window System上で動くソフトウェアで使われる場合が大半であるので、ここに分類した。IIIMFは通常マルチユーザ・サーバとして動作する。アプリケー ションはGtk+用のimmodule(iiimgcf)や、XIMサーバ(httx)を利用して、IIIMFサーバと通信する。

httxを利用する場合、XIMサーバであるhttxがIIIMFクライアントで、それに対応するIIIMFサーバ(htt)はサーバであると同時にCannaクライアントで、という風にちょっとややこしい事態になってしまう。処理がたらいまわしされまくるわけである。

インストール

Debianの場合は、apt-getで…と書きたかったのだが、DebianではIIIMFを動かす事ができなかった。

#apt-get install iiimf-htt-le-canna iiimgcf iiimf-htt-xbe

で動くようになるはずなのだが、実際には日本語を入力する事ができない。パッケージからのビルドもうまくいかず、今回は調査の途中で残念ながら時間切れとなってしまった。

Fedoraの場合は、まずはhttp: //download.fedora.redhat.com/pub/fedora/linux/core/development/i386/Fedora/RPMS/ からRPMをダウンロードしてくる。もちろん、kddlabなどのミラーを利用させてもらうのも良い事だ。URLにdevelopmentと入っている事 からもわかるようにここから拾ってこれるRPMは開発版であるが、どうもここから取ってこれる最新版が一番まともに動くようだ。http: //www.apac.redhat.com/iiimftest/files/から取ってこれるテスト用のRPMも試してみたが、原稿執筆時点でダウン ロードできたバージョン11.4-1.FC1.2のRPMは使いものにならなかった。

日本語入力のために必要なRPMのリストは以下の通り。

Canna-3.7p1-4.1.i386.rpm
Canna-libs-3.7p1-4.1.i386.rpm
iiimf-client-lib-11.4-25.i386.rpm
iiimf-csconv-11.4-25.i386.rpm
iiimf-gtk-11.4-25.i386.rpm
iiimf-le-canna-11.4-25.i386.rpm
iiimf-le-unit-11.4-25.i386.rpm
iiimf-protocol-lib-11.4-25.i386.rpm
iiimf-server-11.4-25.i386.rpm
iiimf-x-11.4-25.i386.rpm
kinput2-canna-wnn6-v3.1-16.i386.rpm

出版される頃にはバージョンは多少変わっているかもしれないが、落としてこなければならないRPMは変わらないはずだ。これらのRPMをダウンロードしてきたディレクトリで、

#rpm -Uvh Canna*.rpm kinput2-*i386.rpm
#rpm -Uvh iiimf-*.rpm

を実行すると、IIIMF用のソフトウェア一式がインストールされる。インストールされるだけで起動はされないので、インストール後は

# /sbin/service IIim start

を実行して、IIIMFのサーバを起動しておこう。次からはOSの起動時に自動で起動されるので、自分で起動する必要はない。

サーバが起動しているかの確認

$ps a|grep htt

を実行して

 1989 pts/2    SN     0:00 /usr/lib/im/htt_server -port 9010

のような感じでhtt_serverのプロセスが存在していたら、IIIMFサーバが起動している。Fedoraの場合は

#/sbin/service IIim status

で現在サーバが起動しているかを確認する事もできる。

設定方法

Gtk+2を使用するアプリケーションの場合は、IIIMFのパッケージを導入したあとアプリケーションを再起動して右クリックし、メニューの入力 メソッドから"Internet/Intranet Input Method"を選択すればIIIMFを使用できる。もしくは環境変数GTK_IM_MODULEをiiimにセットしておいても良い。XIMを使用する アプリケーションの場合は、IIIMFサーバと通信をするXIMサーバを起動しなければならない。

$ /usr/lib/im/httx

で、そのXIMサーバが起動できる。このXIMサーバを使うためには、環境変数XMODIFIERSを@im=httにしておく必要がある。

結局、Debianの場合には.xsessionに

GTK_IM_MODULE=iiim; export GTK_IM_MODULE
XMODIFIERS=@im=htt; export XMODIFIERS
exec /usr/lib/im/httx &

と書いておけば良いという事になる。

Fedoraの場合は/etc/X11/xinit/xinitrc.d/xinputを以下のように書き換える。もっとも、4月にリリースされる予定のFedora Core2ではIIIMFがデフォルトのインプットメソッドになるので、FedoraCore2を入れるならそもそもインストールやら設定やらは必要ないのだが。5月にリリースされたFedora Core2ではIIIMFがデフォルトになっているので、IIIMFを使いたい人はFedora Core2をインストールするのがてっとり早いだろう。

1. 100行目あたりの

  if [ -e /usr/X11R6/bin/xwnmo ]; then
	   XIM="_XWNMO"

の下に

 elif [ -e /usr/lib/im/httx ]; then
           XIM="htt"

を追加。

2. 160行目あたりの

      _XWNMO)
	XIM_PROGRAM=xwnmo
	 ;;

の下に

     htt)
	XIM_PROGRAM=/usr/lib/im/httx

を追加。

使用方法

日本語入力のオン・オフがCtrl+SPACEになっている以外は、kinput2などと特に変わりはない。普通にCannaが使える。キーカスタマイズなどに関しては~/.cannaに記述する事で行う。

iiimgcf + CannaLEを使用中

iiimgcf + CannaLEを使用中

まとめ

大した事書いてなかったので削除。