うちの inspiron mini 9 はキーピッチのために英語キーボードにしたため、全角/半角に相当するキーはありません。
scim から uim に変更したので、shift + space で切り替えられるんですが、やっぱり一発でできる方が何かと便利だなと思いまして。
そこで、本来の機能としては使用しない CapsLock を全角/半角キーにしてやろうと思ったわけです。
しかし、意外と苦労したのでメモ。
1.CapsLock のkeycode を全角/半角と定義すればいいので、~/.Xmodmap を作り keycode 66 = Zenkaku_Hanaku と設定する。
いきなりできた。
しかし、本来の機能も残ってしまったので vim とかでワケワカランことになる。
2.全角/半角の本来の keycode は 49 なので、/usr/share/X11/keycodes/xfree86 にて <CAPS> = 49; と変更する。
だめ。大文字にもならないが、日本語にもならない。
ターミナルで xmodmap -pke とすると、keycode 49 は全く知らないものに割り当てられていた。
初期設定時に英語キーボード選んだんだから当然か。
3.2 の上に ~/.Xmodmap にて keycode 49 = Zenkaku_Hankaku と設定する。
これで完璧!!と思ったら、これまた大文字にも日本語にもならない。
あれこれ調べて、正解にたどりついた。
~/.Xmodmap に
clear Lock
keycode 66 = Zenkaku_Hankaku
とすればよかった。
本来の機能をクリアするのがポイントだったんだな。
これで CapsLock で日本語入力モードにすることができた。
大文字入力モードにもならないので、uim の vi 協調モードでも安心である。