Я использую Xlib для проекта, и я пытаюсь получить отношение KeySym к нажатой клавише.X11 KeySyms: режим переключения, группы KeySym и XK_ISO_Level3_Shift
У меня есть KeyCode относительно нажатой клавиши, клавиатурных модификаторов и клавишных индикаторов. Я имею в виду this page, чтобы понять, как получить правильный ключ, но он должен быть устаревшим или что-то еще, потому что мой X не ведет себя так, как говорит эта страница.
У меня есть несколько вопросов:
Что такого РЕЖИМ? Как я могу узнать, какой ключ мой MODE SWITCH и как я могу его установить? (через Xlib-функции или с помощью команды, это одно и то же).
Эта страница говорит, что первые 4 KeySyms, связанные с KeyCode (найдены с помощью
XGetKeyboardMapping
или показаны командойxmodmap -pk
), делятся на две группы. Переключатель MODE переключает между группами, а внутри группы выбирается первый или второй KeySym в соответствии с модификаторами (т. Е. Клавишей сдвига) или индикаторами (т. Е. Блокировкой крышки). Но на моем X я вижу, что если сдвиг нажат, я переключаюсь на третий KeySym, а не на второй.На многих европейских раскладок ключ AltGr связан с
XS_ISO_Level3_Shift
, символ клавиши, который не принадлежит ни к одной клавиатуре модификатора (т.е.shift
,lock
,control
,mod1
,mod2
,mod3
,mod4
иmod5
). Когда этотXS_ISO_Level3_Shift
нажат, выбирается пятый KeySym, связанный с KeyCode. Зачем? Где я могу найти информацию об этомXS_ISO_Level3_Shift
и о других ключах, которые на самом деле используются, но не документированы в руководствах Xlib?
Затем есть расширения XKeyboard. Я далеко не уверен, что все, что возможно с ними, можно описать в терминах более простых возможностей xlib.Возможно, поэтому вас путают, если ваша реализация использует их ('xdpyinfo | grep XKEYBOARD', чтобы знать, если это так). Каждый раз, когда я смотрел на это, я начал смущаться, а затем понял. Но я никогда не достигал состояния, когда я вспомнил основную логику этого беспорядка. – AProgrammer
Есть ли у вашей системы 'xev'? Это часто быстрый и простой способ решения проблем. –