
私自身の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を生成するキーはありません(これが私が最初にその行を削除した理由です)。xev
2つのキーボードを接続し(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)