AltGrがキーコード108からキーコード92(LVL3)に再マップされる理由と場所は何ですか?

AltGrがキーコード108からキーコード92(LVL3)に再マップされる理由と場所は何ですか?

私自身のxkbプロファイルの作成中に、そのプロファイルが正しく機能しないようにしましたAltGr。ポイント:これらの3行を削除してください(そのうちの1つは実際にはブロック全体です)...

    xkb_keymap {
        xkb_keycodes "whatever" {
            [...]
>>>>        <LVL3> = 92;
            [...]
        };
        [...]
        xkb_symbols "anything" {
            [...]
>>>>        key <LVL3> { [ ISO_Level3_Shift ] };
>>>>        modifier_map Mod5 { <LVL3> };

...問題を作成して再度追加すると、問題がなくなり、AltGr期待どおりに動作します。問題はこんな感じです。私のキーボードにはキーコード92を生成するキーはありません(これが私が最初にその行を削除した理由です)。xev2つのキーボードを接続し(1つはシステムのデフォルトのキーボードレイアウトを使用して動作し、もう1つは破損したxkbAltGrファイルを使用して)、2つのキーで実行している間にAltGr突然次の行を見つけました。

    KeyPress event, serial 53, synthetic NO, window 0x3000001,
        root 0x4b1, subw 0x0, time 2986451693, (63,136), root:(716,408),
        state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
>>>>    XKeysymToKeycode returns keycode: 92
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False

だから、行を再度追加しようとしました。

これで質問は、このキーがキーコード92に再マップされる理由です。どこでこれが起こりましたか? (私のファイルはもはやそのキーの定義を持っていないので、私のファイルは無罪です。)

ベストアンサー1

私も今日この問題に直面し、これがxmodmap出力のキーコード92のキーコード行にISO_Level3_Shiftがある理由だと思います。

xmodmap -pk | grep -w 92
     92         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)

あるいは、より正確には、次のように再マップされます。最初リストのキーコード:

$ xmodmap -pk | grep -i ISO_Level3_Shift
     92         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)
    108         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)
    134         0xfe03 (ISO_Level3_Shift)       0x0000 (NoSymbol)       0xfe03 (ISO_Level3_Shift)

おすすめ記事