XKBを使用してキーパッドキーを設定するには?

XKBを使用してキーパッドキーを設定するには?

キーパッドを使用するようにXKBを構成する方法が見つかりませんでした。 "us"ファイルで次のものが見つかりました。

partial alphanumeric_keys modifier_keys 
xkb_symbols "basic" {

    name[Group1]= "USA";

    // Alphanumeric section
    key <TLDE> {    [     grave,    asciitilde  ]   };
    key <AE01> {    [     1,    exclam      ]   };
    key <AE02> {    [     2,    at      ]   };
    key <AE03> {    [     3,    numbersign  ]   };
    key <AE04> {    [     4,    dollar      ]   };
    key <AE05> {    [     5,    percent     ]   };
    key <AE06> {    [     6,    asciicircum ]   };
    key <AE07> {    [     7,    ampersand   ]   };
    key <AE08> {    [     8,    asterisk    ]   };
    key <AE09> {    [     9,    parenleft   ]   };
    key <AE10> {    [     0,    parenright  ]   };
    key <AE11> {    [     minus,    underscore  ]   };
    key <AE12> {    [     equal,    plus        ]   };

    key <AD01> {    [     q,    Q       ]   };
    key <AD02> {    [     w,    W       ]   };
    key <AD03> {    [     e,    E       ]   };
    key <AD04> {    [     r,    R       ]   };
    key <AD05> {    [     t,    T       ]   };
    key <AD06> {    [     y,    Y       ]   };
    key <AD07> {    [     u,    U       ]   };
    key <AD08> {    [     i,    I       ]   };
    key <AD09> {    [     o,    O       ]   };
    key <AD10> {    [     p,    P       ]   };
    key <AD11> {    [ bracketleft,  braceleft   ]   };
    key <AD12> {    [ bracketright, braceright  ]   };

    key <AC01> {    [     a,    A       ]   };
    key <AC02> {    [     s,    S       ]   };
    key <AC03> {    [     d,    D       ]   };
    key <AC04> {    [     f,    F       ]   };
    key <AC05> {    [     g,    G       ]   };
    key <AC06> {    [     h,    H       ]   };
    key <AC07> {    [     j,    J       ]   };
    key <AC08> {    [     k,    K       ]   };
    key <AC09> {    [     l,    L       ]   };
    key <AC10> {    [ semicolon,    colon       ]   };
    key <AC11> {    [ apostrophe,   quotedbl    ]   };

    key <AB01> {    [     z,    Z       ]   };
    key <AB02> {    [     x,    X       ]   };
    key <AB03> {    [     c,    C       ]   };
    key <AB04> {    [     v,    V       ]   };
    key <AB05> {    [     b,    B       ]   };
    key <AB06> {    [     n,    N       ]   };
    key <AB07> {    [     m,    M       ]   };
    key <AB08> {    [     comma,    less        ]   };
    key <AB09> {    [    period,    greater     ]   };
    key <AB10> {    [     slash,    question    ]   };

    key <BKSL> {    [ backslash,         bar    ]   };
    // End alphanumeric section
};

お知らせをいただきましたhttp://cgit.freedesktop.org/xkeyboard-config/tree/symbols/keypadしかし、これを理解できるリソース/マニュアルがあるか、修正する方法を知りたいです。

答え1

その行は次のようになります。

key <key_identifier> { [ Symbol(s)_actually_sent ] };

複数の記号がある場合はカンマで区切ります。最初の記号はキーを押すと送信され、2番目の記号は一時的に送信され、3番目の記号はShift時間に合わせて送信されAltGr、4番目の記号はAltGr+を押すと送信されますShift

キーパッドキー識別子は<KO.>;で始まります。矢印キーには名前が付けられ<KP.>、一部には特定の名前があります。

これらのキーの一部をオーバーライドするには、上記のような行を作成する必要があります。これを有効にするには、既存のキーボード定義をロードするだけです。たとえば、次のようになります(setxkbmap "us+keypad(x11)"利用可能な多くのキーボード定義があり、ファイルを表示できます/usr/share/X11/xkb/symbols/keypad)。

また、正しいキーボードモデル/幾何構造を選択すると自動的に有効になります。

答え2

2012-04-27でiomartinの回答を更新:現在の文書は次の場所にあります。https://www.charvolant.org/doug/xkb/html/node5.html

これは、Doug Palmerによって作成されたXKB構成不安定性ガイドの一部です。https://www.charvolant.org/doug/xkb/html/xkb.html

もう一つの紹介は、Michael Cardell Widerkrantzの「Changing Keyboard Layouts with XKB」です。https://hack.org/mc/writings/xkb.html

またはDamiano Venturinの「Linux用XKBのシンプルで素朴で包括的なガイド」:https://medium.com/@damko/a-simple-humble-but-compressive-guide-to-xkb-for-linux-6f1ad5e13450

その他の情報源:

kbdgenなどのレイアウト構成を作成するのに役立つツールもあります。https://divvun.github.io/kbdgen/

関連情報