X で caps lock キーを control キーにする

前記で無事大型モニタで X を起動することに成功したのだが,今度は caps lock キーを control キーにするのがうまくいかない.

Section "InputDevice"
    Identifier  "Generic Keyboard"
    Driver      "keyboard"
    Option      "CoreKeyboard"
    Option      "XkbRules"    "xfree86"
    Option      "XkbModel"    "pc104"
    Option      "XkbLayout"   "us"
    Option      "XkbOptions"  "ctrl:nocaps"
EndSection

ではうまくいかないのである(おそらく USB キーボードだから).「http://kmuto.jp/d/index.cgi/debian/input-hotplug-guide.htm」などによると,HAL や udev などからハードウェア情報を取っている関係上,xorg.conf からの情報は無視されるようである.

あちこち探し回った結果(上の文書にも記述がある),debian では console-setup パッケージがキーボードの設定の面倒を見てくれることが判明した.

$ sudo aptitude install console-setup
$ sudo vi /etc/default/keyboard
XKBMODEL="pc104"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

としてリブートすると,何とコンソールでも caps lock キーが control になり,X Window でも同様に設定された.なお上記ではキーボードを us 配列に設定しているが普通の人は pc106, jp に設定することになるだろう.

なお,console-setup を設定するとコンソールのフォントがしょぼい感じに変わってしまう.これを元に戻すには,

$ sudo dpkg-reconfigure console-setup

として,フォントを Fixed その他ではなく,「ブート時のをそのまま使う」に設定してやればよい.