Я использую Xlib для проекта и пытаюсь получить KeySym относительно нажатой клавиши.
У меня есть KeyCode относительно нажатой клавиши, модификаторов клавиатуры и индикаторов клавиатуры. Я обращаюсь к этой странице , чтобы понять, как получить правильный ключ, но он должен быть устаревшим или что-то в этом роде, потому что мой X не ведет себя так, как говорит эта страница.
У меня есть несколько вопросов:
Что такое РЕЖИМ РЕЖИМА? Как я могу увидеть, какой ключ является моим РЕЖИМОМ РЕЖИМА и как его установить? (через функции Xlib или через команду, это то же самое).
На этой странице сказано, что первые 4 KeySyms, связанные с KeyCode (найдены с помощью XGetKeyboardMapping
или показаны командой xmodmap -pk
), разделены на две группы. MODE SWITCH переключает между группами, и внутри группы первый или второй KeySym выбирается в соответствии с модификаторами (т. Е. Клавишей Shift) или индикаторами (т. Е. Заглавными буквами). Но на моем Х я вижу, что если нажать shift, я переключаюсь на третий KeySym, а не на второй.
Во многих европейских раскладках клавиша AltGr связана с KeySym XS_ISO_Level3_Shift
, который не принадлежит ни одному из модификаторов клавиатуры (т. Е. shift
, lock
, control
, mod1
, mod2
, mod3
, mod4
и mod5
). Когда нажимается такой XS_ISO_Level3_Shift
, выбирается пятый KeySym, связанный с KeyCode. Зачем? Где я могу найти информацию об этом XS_ISO_Level3_Shift
и о других символах ключа, которые фактически используются, но не документированы в руководствах по Xlib?