各キーコードの定義には、最大8個のkeysymを設定できます。これらは、ペアごとに4つのグループに分類されます。 ISO_Next_Group
、ISO_Prev_Group
、ISO_First_Group
、およびISO_Last_Group
のファミリがあり、これを押すとkeysymグループの中でキーを押してkeysym出力を繰り返します。これらのキーは、複数のレイアウトを達成する方法です。
「X」からのタイプのラベル「X」と私のキーボードのキーを押す
keycode 53 = x X Greek_xi Greek_XI multiply U2297 U24E7 U24CD
:ISO_Next_Group
は、この定義のために、その後、キーコードにバインドし、修正に割り当てられていると仮定例として
、 。 ISO_Next_Group
キーを押すと、私は "ξ"を得る。もう一度押すと、「×」が表示されます。もう一度 "ⓧ"を押す。最後に、4回目に押すと元の状態に戻ります。
key <SPCE> {
// Level I II III IV
[ space, space, U2395, U2592 ], // Group 1
[ U2423, emspace, U2420, hairspace ] // Group 2
};
key <RALT> {
[ Mode_switch, Mode_switch ]
};
key <RCTL> {
[ ISO_Level3_Shift, ISO_Level3_Shift ]
};
ブラケットが単一を囲みます、あなたはこのようなエントリを持つシンボル定義ファイルを作成することができます。(最終的には大丈夫ガイドhereを見つけXkb¹は恐ろしいドキュメントを持っているので)、数日を過ごす持つ
グループ。通常、最初のグループはアクティブです。グループは、ISO_Group_Shift、a.k.a. Mode_switchで一時的に1つ増分することができます。グループ内では、放出されるシンボルは増加するレベルで定義されます。レベルIは裸のキーを押したままです。 シフトは、現在のレベルに1を加算します。 ISO_Level3_ShiftはレベルをIIIに設定します。
上記の例では、スペースバーを加えたように、様々なシフトキーに7つのシンボルをマッピングします。
はスペース⟨⟩U + 0020 SPACE
Shiftキー+スペース⟨⟩Uが+ 0020 SPACE
R. Altキー+スペース⟨␣⟩U + 2423 OPEN BOX
R. Altキー+ Shiftキー+スペース⟨⟩U + 2003のEM SPACE
R.のCtl +空間⟨⎕⟩U + 2395 APL FUNCTIONAL SYMBOL QUAD
R.のCtl +は、+スペース⟨▒⟩U + 2592媒体SHADE
R. Alt + Rシフト。 Ctl。+ space⟨␠⟩U + 2420スペースのシンボル
R. Alt + R。 Ctl。+ Shiftキー+スペース⟨⟩U + 200A HAIRスペース
キーISO_Level5_Shiftを使用すると、1つのレベルのために少なくとも6つのシンボルを持つことができますので、レベルのV.のためにもあります。モードシフトキーを使用すると、約1,200個の異なるシンボルを入力するようにキーボードを構成できますが、その時点で多くの修飾キーが押されているため、いくつかのキーが消される可能性があります。
P.S.すべての名前付きシンボルの名前は/usr/include/X11/keysymdef.h
に格納されます。
¹は
xmodmapを(1)バギーと廃止予定であることが判明しました。
この質問は基本的に、低レベルのハッキングを必要とするかなり珍しい方法でキーマップをコンパイルすることに関するものです。私はそれをスーパーユーザーにすることを考えましたが、そこには何の答えも得られません。スーパーユーザーが特化している設定を調整するだけでなく、プログラミングにも近づきます(これは基本的にxkbのプログラミングです)。 – viraptor