Caps Lock を Ctrl に ( Ubuntu 8.10 )

キーボートレイアウトのオプションで
Caps Lockをもう一つのCtrlにする
とすると、たしかに、Caps Lock は Ctrl になる。
しかし、どうやらこのCaps Lock、実はまだ、Caps Lock の機能をもっている。
つまり、Caps Lock -> Caps Lock + Ctrl という変更をしているもよう。
通常はこれで問題ないと思われるが、emacs23を使っていたらうまく動かなかったので、
Caps Lock -> Ctrl への変更を試みる。
原理は良く分からないが、xmodmapというコマンドでキーマップを変更できるみたい。

% xmodmap -pke

ズラズラっと、キー割り当てが表示される。

% xmodmap -pke > ~/.xmodmap

として、この.xmodmapに変更を加える。
はじめは、ある行が

keycode 66 = Control_L Control_L Eisuu_toggle Caps_Lock

のようになっていた。これを

keycode 66 = Control_L Control_L Control_L Control_L

として、最後の行に

clear Lock

を追加。その後、変更した設定を読み込む。

% xmodmap ~/.xmodmap

これで、思い通りにCaps LockがCtrlになった。
でも、このままでは、再起動すると、設定がもとに戻ってしまう。
そこで、

cp /etc/X11/xinit/xinitrc ~/.xinitrc

として、 ~/.xinitrc の最後に

xmodmap ~/.xmodmap

を追加して、再起動すると、起動後に.xmodmapを読み込むか聞いてくるの、
以降も読み込むとかいう、オプションにチェックを入る(ここは記憶があいまいだ)。
これで、再起動しても大丈夫。