2000-02-26(土) [長年日記]
■ VJE-Delta 3.0
会社帰りに町田のヨドバシカメラに寄ったら、VJE-Delta 3.0を見つけてしまったので買ってしまった。ちなみに町田はVACS(VJEの開発元)の所在地なので、置いてなかったらそれはそれで悲しかったけど(でも最後の1個だった)。実はDOS時代のVJE-βからず〜〜〜〜っとVJEユーザで、その間いちども浮気をしたことがない。現在では決して最高の日本語変換エンジンではないけれど、指も頭も完全にVJEの癖になじんでしまっているので、おいそれと他に乗り換えられるものではない。というわけで、VACSがちゃんとLinuxやBSDにVJEを移植してくれているのは嬉しい。しかもWindows版がまだ2.5なのに、Linux版は3.0だ。
CD-ROMにはRPMパッケージがちゃんと含まれているので、インストールは簡単。もちろん(?)Kondaraはサポート対象に入っていないけど、リストの中にはLASERの6.0なんかもあるので大丈夫でしょう。入れたあとは、今まで使っていたCannaからVJEへ設定を書き換えなければいけない。daemonであるvjed
は例によって自動的に入っているようなので、やるべきことは以下の2点:
- 環境変数
LANG
とXMODIFIRES
の書き換え kinput2
の代わりにvje
を起動
マニュアルでは環境変数は.bashrc
でと書いてあるけど、$HOME
でXMODIFIRES
を設定している「.」で始まるファイルを探してみると、X関係のファイルだけで3つもある(.Xclients
、.xinitex
、.xsession
)。現在、どのファイルの設定が働いているのかわからないけど、なんにせよこっちを変えた方がいいみたい。というわけで、それらのファイルのCannaの設定をコメントにして、以下の3行を追加する:
# VJE-Delta XIM=vje XIM2=""
いったんlogoutしたあと、入り直して試してみる。環境変数はちゃんと設定されてるし、vjed
もvje
も動いている。しかし、Shift-spaceを押しても漢字モードにならない。そもそもVJEのパネルが出てないじゃないか。どこに行ったんだ……と思ったら、KDEのパネルの下に隠れてた(笑)。どっちも最上位に表示されるウィンドウだからなぁ。デスクトップを移動すると普通のウィンドウの下にも隠れちゃったりして、ちょっとこのへんは完成度が低い感じがする。マニュアルを読むと、変換キーはCtrl+spaceだそうで。そらあかんわな(笑)。しかし、IMごとにここまで違うと、さすがに混乱する。
それにしても、Ctrl+spaceってのは押しづらい。今使っているキーボードはテンキー部分だけを切り落とした(カーソルキーはある)富士通製109キーボードで、これはうちの連中に人気があってどこの家にもあるというシロモノ。Linuxerには101キーボードファンが多いみたいだけど、おれはJIS配列じゃないとダメな上に(101の方が変だと思うんだけどね……)、左利きのためカーソルキーをけっこう便利に使うため(マウスと一緒に使える)、こういうキーボードはいい。こいつで使いやすくキーバインドを変えたい。ちなみにWindowsで使っているVJE-Deltaでは、「変換」キーでON/OFFを切り替えているので、それができると嬉しい。VJEのFAQを読んでみると、xmodmap
とVJEのキーボード設定ファイルgeneral.key
を使って設定できそう。
■ xmodmap
まず、xev
を実行して、変換キーを押すことでこのキーのキーコードを得ることができる:
KeyRelease event, serial 27, synthetic NO, window 0x3400001, root 0x26, subw 0x0, time 2384090846, (496,124), root:(500,653), state 0x0, keycode 129 (keysym 0xff21, Kanji), same_screen YES, XLookupString gives 0 characters: ""
「keycode 129」とある。続いてxmodmao -pk
でキーコード129を見ると、こんな感じに現在はスペースに割り当てられていることがわかる:
129 0x0020 (space)
VJEのFAQによれば、これをKanji
というキーに変えればいいみたい。とりあえず一時的にこんか感じで変えてみる:
$ xmodmap -e 'keycode 129 = Kanji'
これで変換キーを押すとKanjiというコードが発生することになるんだな(たぶん)。そしたら次は、VJEの設定でKanjiキーに機能を割り当てればいい。まず、$HOME/.vje/
にVJEのディレクトリからdefault.key
をgeneral.key
としてコピー、次の1行を追加する:
XK_Kanji=F_SCRN F_SCRN F_SCRN F_SCRN F_SCRN
vjekill
していったんvje
を殺してから、vje
を再度実行。試しに漢字変換してみると、おお、ちゃんと変換キーでVJEがON/OFFされる……けど、何か入力してかな漢字変換をさせようとすると、OFFになってしまうぅ。文字入力中は、変換動作をするようにしないといけないんだな。VJEのマニュアルを読むと、さっき追加した行の各フィールドは、VJEの状態によって何をさせるかを指定しているようだ。さっきの設定ではいつでもON/OFFを切り替えることになっている。これを以下のように置き換えた:
XK_Kanji=F_SCRN F_CNV F_CNV_NCNV F_CNV_NCNV F_CNV_NCNV
これはXK_space
のパクり。これで文字入力状態では変換キーとして働き、何も入力されていないときにはOFFになる。めでたし。この調子でキーアサインを好きなように変えていけばいいだろう。
続いて単語登録はどうなっているのか調べたら、なんとGUIでは登録できないみたいで、vadd
というコマンドでやれとある。これはCanna以下だなぁ。なんでWindowsみたいにGUIにしないんだろう。まぁ、このコマンドでも対話式に登録できるからいいけどね。試しにいくつか登録してみたけど、なぜか変換されない。vdispd
コマンドで調べるとちゃんと登録されているのに。ふふん、これはたぶん、辞書が書き変わったことを変換エンジンが知らないせいだな。試しに、vjed
にHUP
を送ってみたら、ちゃんと変換できるようになった。うーむ、ちょっとアレな仕様だが、これくらいマニュアルに書いとけって >VACS なんにせよ、これで快適生活だ♪