xkb_keymap
xkb_keymap エントリーは、xkb で使われる設定一式です。中身は- xkb_keycodes
- xkb_types
- xkb_compat
- xkb_symbols
- xkb_geometry
xkb_keycodes
デバイスから受け取ったスキャンコードに抽象的な名前、シンボル名を与えるための設定です。他のところの設定において、スキャンコードではなくここで設定されたシンボル名を使うことで、「Ctrl と Caps を入れ替える場合、US キーボードではスキャンコード 11 を Caps に、JP106キーボードの場合はスキャンコード 22 を Capsに」といった、キーボードとオプション設定の組み合わせ全てでスキャンコードを列挙する必要がなくなります。
ただし、抽象化の目的によって大きく分けて2種類のシンボル名が用意されています。一つは物理的な位置に基づくものです。最下段のキーは左から順に <AA00>, <AA01>, ... (ただし、最下段は特殊キーしかないのが普通なので、<AA00> 以外が使われることは稀)、下から2段目は <AB00> (左Shiftキーの位置), <AB01>, ... となっていきます。
もう一つは機能に基づくもので、<HKTG> (Hiragana-Katakana ToGgle) や <TLDE> (tilde) みたいなものがあります。ただし、あくまでもスキャンコードにシンボル名を与えるだけなので、<TLDE> が実際に ~ である必要はありません。というか、わざとややこしい例を出したのですが、<TLDE> は手前から5段目の右端のキー(US キーボードなら ~ キーがある位置)という、位置にあるキーのためのくシンボル名です。ややこしい。そういう意味であれば、単純に <AE00> にしとけと思うんですけどね。
日本語キーボードは、1 の隣は「半角/全角キー」なので、実際の設定ファイルからその当たりを抜き出すと
<TLDE> = 49;
alias <AE00> = <TLDE>; // Some geometries use AE00
alias <HZTG> = <TLDE>; // Hankaku_Zenkaku toggle
と書いてあると思います。
もう眠いので、続きはまた明日(以降のいつか)です。