編集後記


2002年07月07日(日) [長年日記]

RedHat Linux 7.3の入力メソッド切り替え

ATOK Xを使うにあたって、入力メソッド(以下、IM)の切り替えをやりやすくするよう、/etc/X11/xinit/xinit.d/xinputを書き換えました。でも、sdrコマンドとやってることはほぼ同じはず。。。(汗)

RedHat 7.xでIMを起動しているxinputスクリプトは、新しいIMを追加しようと思うとスクリプトを書き換えないといけない上、切り替えはあまり自由にできません。なので、IMごとのスクリプトを作成し、そのうちユーザの選んだ一つをxinputスクリプトから呼び出すようにしました。IMごとのスクリプトは/etc/X11/xinit/xim.d/ディレクトリを作成して、そこに格納します。

[naohito@libra xinit]$ ls -l xim.d/
合計 36
-rw-r--r--    1 root     root          479  7月  7 12:02 Ami
-rw-r--r--    1 root     root           32  7月  7 12:02 Chinput
-rw-r--r--    1 root     root           78  7月  7 12:03 atokx
-rw-r--r--    1 root     root           73  7月  7 12:03 hanIM
-rw-r--r--    1 root     root          178  7月  7 12:01 kinput2
-rw-r--r--    1 root     root           46  7月  7 12:04 skkinput
-rw-r--r--    1 root     root           53  7月  7 12:04 xcin
-rw-r--r--    1 root     root           87  7月  7 12:05 xcin-zh_CN.GB2312
-rw-r--r--    1 root     root           31  7月  7 12:05 xwnmo
[naohito@libra xinit]$ 

内容は、たとえばkinput2は、

XIM=kinput2
XIM_PROGRAM=kinput2
if [ X"`ldd /usr/X11R6/bin/kinput2 | grep libcanna`" = X ] ; then
    XIM_ARGS="-wnnenvrc /etc/FreeWnn/ja/wnnenvrc"
else
    XIM_ARGS="-canna"
fi

要はオリジナルのxinputスクリプトをバラしただけ。新しいIMを追加するときは、そのIM用のスクリプトを新規につくればよし。

ユーザは自分の使用したいIM用スクリプトの名前を~/.ximファイルに記述します。

[naohito@libra naohito]$ cat .xim
atokx
[naohito@libra naohito]$

とりあえずcannaとATOK Xを切り替えてためしてみたら、うまくできたようです。

ほんとはsdrを移植しようかと思ったけれども、RedHatのXの起動プロセスになじむか確かめている間に一から書き換えてしまいました。~/.ximをエディタで記述するのでよければこれでいいはず。

ていうか、なぜこういう仕組みにしないのか不思議だ。


プロフィール

星を見る、本を読む、そこらを歩いてまわる・・・→詳しく

注目リンク

バックナンバー