【ホームページへ】 【Linux MLD 4 サポート】 【XF86Config ファイルについて】
Linux MLD 4 Q&AKeyboard セクションについて
前半にはキーボードの基本的な設定がかかれています。
XF86Configのmanページを見ればわかると思います。
キーボードのリピート間隔はここではなく、kbdrateで設定する方が現実的です。
ここではMetaキーとXKBについて捕捉しておきます。
下の行は左のAltキーをMetaキーに設定します。XKBのデーターベースで
書けるので今は必要ないはずです。
LeftAlt MetaMetaキーは入力する文字コードの8ビット目を1にするための修飾キーです。 例えばktermで Meta-; Meta-: を入力すると 「産」 が表示されます。 これは「産」のEUCコードが8ビット目を1にした;と:の2バイトで構成 されるからです。またMetaキーはCtrlキーと同様に、emacsやnetscape等 でコマンドを実行するために使われています。 XでのMetaキーの扱いはShiftやCtrlと違い少し複雑です。Xではキーボード イベントの中にどの修飾キーが押されているかを示す、ビット列(modifire bit) があります。 8ビットで構成され、Shift,Lock,Control,Mod1-Mod5になっています。 ShiftやCtrlは直接対応するビットがありますが、Metaを直接表すビットはありません。 modifire bitのどれかが1でかつ、そのキーのKeySymリストがMeta_Lまたは Meta_Rを含んでいる場合にMetaキーが押されていると解釈されます。 後で説明するXKBのjp106キーボードでは
keyと定義されています。Altキーを押した時にはMod1のビットが1になり、 AltキーのKeySymにはMeta_Lが含まれていますので、Metaキーが押されている ことになります。左右どちらのAltキーもMetaキーとして使えます。 xmodmapコマンドで、現在の修飾キーを確認したり、変更ができますので、 試すこともできるでしょう。 普通はキーボード変換テーブルでMetaを修飾キーとして使います。例えば ktermでは{ [ Alt_L, Meta_L ] }; key { [ Alt_R, Meta_R ] }; // begin modifier mappings modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
Metaがデフォルトの変換テーブルの中に登録されています。: insert-eight-bit()
後半のXkbで始まる行は、X11R6から採用されたXKB Extensionにしたがったキーボードの 設定を記述します。日本語キーボードの指定などはこの部分で行います。 通常は以下の3行でキーボードの配列等を指定します。
XkbRules "xfree86" XkbModel "jp106" XkbLayout "jp"これは/usr/X11R6/lib/X11/xkbにあるrules/xfree86という規則のファイルから モデルがjp106でレイアウトがjpであるkeymapを作成することを指示しています。 keymapにはkeycodes,types,compatibility,symbols,geometryの項目があり、 これらを規則のファイルから構成します。(XkbKeycodesからXkbGeometryまでの行はなくても良いはずです) xfree86の規則ファイルにはいくつかのオプションが記述されています。例えば 以下の行の#を削除すれば、CtrlキーとCapsLockキーを入れ替えることができます。
# XkbOptions "ctrl:swapcaps"もう1つの方法は規則ファイルを使わずに直接keymapにkeycodes等を設定する 方法です。XkbKeycodesからXkbGeometryまでの行で、直接keymapにkeycodes等を 設定します。
XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc"最後はXkbKeymapを使う方法で、直接keymapのエントリを指定できます。
# XkbKeymap "xfree86(jp106)"
------------------------------------------------------------------------ Section "Keyboard" Protocol "Standard" # when using XQUEUE, comment out the above line, and uncomment the # following line # Protocol "Xqueue" AutoRepeat 500 5 # Let the server do the NumLock processing. This should only be required # when using pre-R6 clients # ServerNumLock # Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) # Xleds 1 2 3 # To set the LeftAlt to Meta, RightAlt key to ModeShift, # RightCtl key to Compose, and ScrollLock key to ModeLock: LeftAlt Meta RightAlt Meta ScrollLock Compose RightCtl Control # To disable the XKEYBOARD extension, uncomment XkbDisable. # XkbDisable # To customise the XKB settings to suit your keyboard, modify the # lines below (which are the defaults). For example, for a non-U.S. # keyboard, you will probably want to use: # XkbModel "pc102" # If you have a US Microsoft Natural keyboard, you can use: # XkbModel "microsoft" # # Then to change the language, change the Layout setting. # For example, a german layout can be obtained with: # XkbLayout "de" # or: # XkbLayout "de" # XkbVariant "nodeadkeys" # # If you'd like to switch the positions of your capslock and # control keys, use: # XkbOptions "ctrl:swapcaps" # These are the default XKB settings for XFree86 XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "jp106" XkbLayout "jp" # XkbKeymap "xfree86(jp106)" EndSection ---------------------------------------------------------------------------