FreeBSDでNicolaF式~Xorg7.4編
- 公開日: 2009/05/16(土) 06:36[JST]
最近、firefoxの動作が不安定になってきたので、FreeBSDをクリーンインストールすることにした。ちょうど7.2-Releaseがでたところでタイミングがよかったのと、そろそろi386からamd64に移行しようとも思っていたので。
で、問題はキーボード関連。私はNicolaF式という、JISキーボードでいうところの「:」の位置にバックスペースが、「@」の位置にコロンが、そしてバックスペースの位置に「]」が来るようなキー配列を愛用していて、今までは/usr/X11R6/lib/X11/xkbの書き換えでこの配列を実現していた。しかし、7.2-Releaseで採用されているXorg7.4はxkbの位置が移動しており、今までのやり方でうまく動くのかが不安。
で、なんとかならんのかとぐぐっていたら、「春木屋」の「Xorg7.4のキーボード設定をkwsk その1 その2 その3」という記事を発見した。で、この記事を見てxkbの設定ファイル類が /usr/local/share/X11/xkb に移動したのを知り、 xkb/symbols/jp を読んでみると、何やら"nicola_f_bs"なる文字が。これは、と思って xkb/rules/rules.lst を読んでみると、"japan:nicola_f_bs"というオプションを指定することによって、「:」の位置にバックスペースをおくことができるようになるようだ。早速、以下のように xorg.conf を書き換えて実験してみる。
Section "ServerFlags" Option "AllowEmptyInput" "Off" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "Xkbrules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp" Option "XkbOptions" "japan:nicola_f_bs" EndSection
Xを再起動して試してみると、確かにNicolaF式風のレイアウトに変わった。でも、アンダースコアがシフト+「\」で入力できなくなった。「\」を押すと「@」が、シフト+「\」で「‘」が入力される。「]」はエスケープに割り当てられている。これって確か森山将之さんが提唱していた配列じゃなかったっけ。てことはアンダースコアはシフト+ゼロか。
てことで、xmodmapでキーの置き換えを行う。ついでに全角/半角とエスケープ、左CtrlとCapsLockの置き換えも行う。 .Xmodmap ファイルは以下のとおり。
clear lock clear control keycode 9 = Zenkaku_Hankaku keycode 37 = Eisu_toggle Caps_Lock keycode 49 = Escape keycode 51 = at grave voicedsound keycode 66 = Control_L keycode 211 = backslash underscore add lock = Caps_Lock add control = Control_L Control_R
これで元の環境になった。ああ良かった。