Q. kinput2 または skkinput で kterm に日本語入力するには?
A. kinput2(1) 及び skkinput(1) は、以下の多国語変換プロトコルをサポートし
ています。kinput2 の man ページには他にもいくつか書いてありますが、実際
問題として現状では以下の三種類、特に kinput2 プロトコルと XIM プロトコ
ルの、どちらかが使えれば問題になる事は少ないでしょう。
a) Kinput/Kinput2 Protocol
早い話が kinput2 オリジナルのプロトコルで、kinput2 の前身である
kinput がサポートしていた Kinput Protocol と、現在の kinput2 で採用
された Kinput2 Protocol があります。kinput2 及び skkinput 自体は
両方のプロトコルをサポートしています。
b) X Input Method Protocol
X11R6 標準のプロトコルで、省略して XIM とも呼ばれます。また、この
プロトコルでは複数種の変換サーバを同時に実行することができ、多国語を
取り扱うことができます。
c) Ximp Protocol
X11R5 以前のプロトコルで、古いアプリケーションと X サーバの組み合わ
せで使う場合以外では、利用する機会はないでしょう。
kinput2 及び skkinput 共に、コマンド起動時のオプション指定で、上記の
プロトコル毎に有効・無効を選択できます。もちろん前提条件として、これら
のプロトコルをコンパイル時に組み込む必要があります。オプション名の前に
`-' (ハイフン) を付けると有効に、`+' (プラス) を付けると無効化されます。
特に指定しない限り三種類とも有効です。
-/+kinput Kinput/Kinput2 Protocol
-/+xim XIM Protocol
-/+ximp Ximp Protocol
具体的には、Ximp を無効にした kinput2 の起動では、
% kinput2 +ximp &
また、skkinput で XIM のみ有効にしたければ、
% skkinput +kinput -xim +ximp &
などとすることができます。
次にこれらの変換サーバを利用するクライアント側の設定ですが、主に X リソー
スと環境変数を利用します。詳しくは個々のアプリケーションのマニュアルを
参照して頂くとして、ここでは kterm(1) を具体例として説明します。
現状の kterm version 6.2.0 では kinput2 プロトコルと XIM プロトコルを
サポートしています。コンパイル時に有効にされているかどうかは、kterm の
-version オプションで確認できます。
% kterm -version
kterm: version 6.2.0
options: [KTERM_MBCS] [KTERM_MBCC] [KTERM_KANJIMODE] [KTERM_XIM]
[KTERM_KINPUT2] [KTERM_COLOR] [KTERM_NOTEK] [STATUSLINE] [KEEPALIVE]
[WALLPAPER]
1. Kinput2 プロトコル
kterm はデフォルトでは kinput2 プロトコルを利用します。kinput2 または
skkinput のどちらかを事前に起動しておき、~/.Xresourses や ~/.Xdefaults
から kterm のリソース translations を探し、そこに以下の1行を挿入します。
Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)
i) 既にリソース translations が存在する場合
KTerm*VT100*translations: #override \
Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)\n\
<Btn4Down>: scroll-back(2)\n\
<Btn5Down>: scroll-forw(2)
ii) リソース translations が存在しない場合
KTerm*VT100*translations: #override \
Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)
リソースファイルを更新したら、
% xrdb -load ~/.Xresources
などとして、kterm を新たに起動します。この状態で Shift + Space キーを
押せば変換モードに入るはずです。またトグル操作で変換モードから抜けます。
2. XIM プロトコル
kterm で XIM プロトコルを用いた変換を行なうには、kinput2 や skkinput を
-xim オプションを付けて起動するようにし、
% env XMODIFIERS="@im=kinput2" kterm -xim
% env XMODIFIERS="@im=skkinput" kterm -xim
とすることで利用可能です。環境変数 XMODIFIERS を常に設定しておくには、
csh(1) 系なら ~/.cshrc に
setenv XMODIFIERS "@im=kinput2"
sh(1) 系なら ~/.profile に
export XMODIFIERS="@im=kinput2"
を書き加えれば良いでしょう。
もし、変換時の入力スタイルを指定する必要があれば、リソース preeditType
に OverTheSpot (いわゆるその場変換) または Root (別ウィンドウで変換操作)
のどちらかを指定します。例えば、kterm で kinput2 の Root スタイルを用い
るには、以下の2行を X リソースに追加すれば良いでしょう。
KTerm*inputMethod: kinput2
KTerm*preeditType: Root
変換モードの切り換えキーは、Shift + Space のトグル操作がデフォルトです。
また、kterm の -xim オプションはリソースに次のようにも記述できます。
KTerm*openIm: true
グループ名: kinput2