【ホームページへ】 【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_L, Meta_L ] };
key { [ Alt_R, Meta_R ] };
// begin modifier mappings
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
と定義されています。Altキーを押した時にはMod1のビットが1になり、
AltキーのKeySymにはMeta_Lが含まれていますので、Metaキーが押されている
ことになります。左右どちらのAltキーもMetaキーとして使えます。
xmodmapコマンドで、現在の修飾キーを確認したり、変更ができますので、
試すこともできるでしょう。
普通はキーボード変換テーブルでMetaを修飾キーとして使います。例えば
ktermでは
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
---------------------------------------------------------------------------