HALのキーボード設定ファイルの書き方が分からない。



ググれば設定ファイルは山ほど出てくるが、どう書くかを説明したサイトはなかなか引っかからない。



Xorg7.4、つまるところxorg-server-1.5.3から、キーボード設定がhald経由になったため、従来の方法では日本語キーボードの設定が効かなくなった。それは分かる。分かるんだが。



じゃあ、どうやって設定ファイルを書けばいいんだ。



ということで調べてみた。






Xのキーボードレイアウト周りを司っているのがXKB。



Xorg7.3までで、xorg.confにOption "XkbLayout" "jp"と書いていた設定も、最終的にはXKBに渡される。



でXorg7.4からは、こういった設定は(デフォルト設定では)haldからXKBに渡されることになった。



少し脱線するが、ではXKBは、XkbLayoutやらXkbModelやらのほかに、どのような設定項目があって、それぞれどのような値をとるのか、というのはFreeBSDの場合、/usr/local/share/X11/xkb/rulesを見れば分かる。



このディレクトリには大きく分けてbase, evdev, xorgの3つのファイルがあり、xorg.confのXkbRulesでxorgと指定すればxorgが使われることになる。(ただ、2009/3/16現在のportsからインストールしたHAL0.5.11では、三種類のファイルは同じようだ。)



さらにxorg.lstの中をのぞくと、設定項目と、設定項目ごとにどのような値を取ることが出来るかがリストされている。



具体的には、!から始まっているのが設定項目のようで、grepしてみるとmodel, layout, variant, optionの4つがある。
[/usr/local/share/X11/xkb/rules]$ grep '^!' ./xorg.lst
! model
! layout
! variant
! option
そしてmodelにはjp106が、layoutにはjpのあることがわかる(macもあるが、pc98もある!)。



variantは見た目からして、layoutごとに存在するオプションのようで、kanaなんてものもある。



最後にoptionだが、ctrlやらcapsやらのキーの扱いに関するものがリストされている。



なので、自分の意図するキーボードレイアウトにしたい場合には、この辺をざっと見て、各設定項目ごとに値を指定して、XKBに教えてやればいいというわけ。



[Xorg7.4のキーボード設定をkwsk その2](http://d.hatena.ne.jp/flageo/20090318/p1)



[Xorg7.4のキーボード設定をkwsk その3](http://d.hatena.ne.jp/flageo/20090319/p1)につづく。