Xorg7.4のキーボード設定をkwsk その2
で話は戻る。
俺はxorg.confに以下のように設定していたわけだ。
Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp" #CTRLとCAPSLOCK入れ替え Option "XkbOptions" "ctrl:swapcaps"
これをXorg7.4でもXKBに伝えてやればいいのだが、方法は3つある。
1. haldを通して伝える。
2. haldを通さず、xorg.confから伝える。
3. haldもxorg.confも通さず、直接伝える。
1. haldを通して伝える場合。
従来のxorg.confで書いていた設定をhald向けに書き直す必要がある。
設定ファイルは/usr/local/etc/hal/fdi/policy/に置いとけばhaldが見てくれる。
ベースにする設定ファイルは/usr/local/share/hal/fdi/policy/10osvendor/10-x11-input.fdi。
http://cgit.freedesktop.org/xorg/xserver/tree/config/x11-input.fdi
ここを見ると、xorg.confのオプションをそれぞれ以下の指定に当てはめていけばいいことが分かる。
input.x11_options.XkbRules input.x11_options.XkbModel input.x11_options.XkbLayout input.x11_options.XkbVariant input.x11_options.XkbOptions
なのでこうなる。
<?xml version="1.0" encoding="ISO-8859-1"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keyboard"> <!-- If we're using Linux, we use evdev by default (falling back to keyboard otherwise). --> <merge key="input.x11_driver" type="string">kbd</merge> <!-- ここから追加 --> <merge key="input.x11_options.XkbRules" type="string">xorg</merge> <merge key="input.x11_options.XkbLayout" type="string">jp</merge> <merge key="input.x11_options.XkbModel" type="string">jp106</merge> <merge key="input.x11_options.XkbOptions" type="string">ctrl:swapcaps</merge> <!-- ここまで追加 --> <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux"> <merge key="input.x11_driver" type="string">evdev</merge> </match> </match> </device> </deviceinfo>
名前は適当に/usr/local/etc/hal/fdi/policy/10-x11-input-jp106-capsctrl.fdiとして、haldを再起動してからXを起動すればOK。