かな入力でJISかな配列に対応させる古い方法
「ろ」と「ー」の2つのバックスラッシュの内の片方を、識別可能にするために変える
SCIM+Anthyの最新版ではJISかな配列に完全対応しているが、それ以外のかな入力環境では、キーコードの割り当て変更が必要。それを自動的に行うためには、
- キーコード変更の設定ファイルを用意し、
- それを適用するための準備をする
という作業を行う。
[一部]ファイル名: ~/.Xmodmap
keycode 133 = bar backslash
(2010/4/10)環境(ディストリのバージョンや設定)によってはこの値は変わるので、後述の方法でーキーのキーコードを調べて入れる。Mandriva Linux 2010.0では
keycode 132 = bar backslash
となる。
${HOME}/.Xmodmapというファイル名で保存すると、デスクトップ環境によっては自動的にキーマップ変更が適用される。ウインドウマネージャのみの環境では、起動時に実行されるスクリプトに
xmodmap ~/.Xmodmap
と記述して実行させる必要がある。
制約: 変更したキー(「\」と「|」)の入力方法が変わる
当然のことながら、このキー割り当て変更を行った場合、日本語を入力していないときに「ー」のキーでバックスラッシュは入力できず、代わりに「|」が出力される。上の設定例では、シフトキーを使用時にバックスラッシュが入力できる。
補足: キーコードについて
xevというコマンドをX上の端末(ターミナル)のシェルから実行すると、イベントのテストができ、押されたマウスのボタン番号や、押されたキーに割り当てられたコード番号なども分かる。「ー」のキーを押すと
KeyPress event, serial 31, synthetic NO, window 0x3a00001, root 0x1a5, subw 0x0, time 89027614, (-137,383), root:(414,812), state 0x10, keycode 133 (keysym 0x5c, backslash), same_screen YES, XLookupString gives 1 bytes: (5c) "\" XmbLookupString gives 1 bytes: (5c) "\" XFilterEvent returns: False
と、133番でバックスラッシュに割り当てられていることが分かる。同様に「ろ」のキーは
KeyPress event, serial 31, synthetic NO, window 0x3a00001, root 0x1a5, subw 0x0, time 89133731, (251,-104), root:(802,325), state 0x10, keycode 211 (keysym 0x5c, backslash), same_screen YES, XKeysymToKeycode returns keycode: 133 XLookupString gives 1 bytes: (5c) "\" XmbLookupString gives 1 bytes: (5c) "\" XFilterEvent returns: False
と、211番でバックスラッシュであることが分かる。キー割り当てを変更した後の「ー」キーは、
KeyPress event, serial 31, synthetic NO, window 0x3e00001, root 0x1a5, subw 0x0, time 90615829, (-128,-49), root:(423,380), state 0x10, keycode 133 (keysym 0x7c, bar), same_screen YES, XLookupString gives 1 bytes: (7c) "|" XmbLookupString gives 1 bytes: (7c) "|" XFilterEvent returns: False
と、バーに割り当てられていることが分かる。
関連記事: