X でのキーが変になる件
関連:xserver-xorg-input-kbd: settings in xorg.conf ignored
最近 Debian を sid にアップグレードすると、X に入ったときにキー配列が us になってたり、Ctrl-Alt-Fn でコンソールに切り替えられなくなったりしてる。
xserver-xorg-input-kbd がキー設定について hal を見るようになったようで、xorg.conf に何を書いても無視されてしまう。
hal が提供するキー設定の元は console-setup が生成した /etc/default/console-setup に書かれており、
XKBMODEL="jp106" XKBLAYOUT="jp,jp" XKBVARIANT="latin," XKBOPTIONS="grp_led:scroll"
とか書かれている*1。こいつを
XKBMODEL="jp106" XKBLAYOUT="jp" XKBVARIANT="" XKBOPTIONS="ctrl:nocaps"
などと書き直して、コンソールを再設定し、それを hal に反映させる。
# invoke-rc.d console-setup restart # invoke-rc.d hald restart
hal が設定を読めていることを確認。
# lshal | grep xkb input.xkb.layout = 'jp' (string) input.xkb.model = 'jp106' (string) input.xkb.options = 'ctrl:nocaps' (string) input.xkb.rules = 'base' (string) input.xkb.layout = 'jp' (string) input.xkb.model = 'jp106' (string) input.xkb.options = 'ctrl:nocaps' (string) input.xkb.rules = 'base' (string) input.xkb.layout = 'jp' (string) input.xkb.model = 'jp106' (string) input.xkb.options = 'ctrl:nocaps' (string) input.xkb.rules = 'base' (string) input.xkb.layout = 'jp' (string) input.xkb.model = 'jp106' (string) input.xkb.options = 'ctrl:nocaps' (string) input.xkb.rules = 'base' (string)
このあと xinit してみて、Xorg.0.log に、
(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD) (**) Option "xkb_rules" "evdev" (**) Option "xkb_model" "jp106" (**) Option "xkb_layout" "jp" (**) Option "xkb_options" "ctrl:nocaps"
と書かれていればおk。
*1:dpkg-reconfigure console-setup するとまたこの変な設定が復活する。