Значение вывода "xev"
Мне нужно уточнить:
Когда я начну xev
в терминале и использовании Super я получаю следующий вывод. Что это означает?
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FocusIn event, serial 36, synthetic NO, window 0x2000001,
mode NotifyUngrab, detail NotifyNonlinear
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 ответ
Итак, после изучения онлайн в течение некоторого времени, вот мое понимание значения вывода:
Посмотрите на события KeyPress и KeyRelease с помощью буквенного ключа, например m
,
KeyRelease event, serial 28, synthetic NO, window 0x6e00001,
root 0x2c9, subw 0x0, time 17599679, (-746,426), root:(337,478),
state 0x10, keycode 58 (keysym 0x6d, m), same_screen YES,
XLookupString gives 1 bytes: (6d) "m"
XFilterEvent returns: False
Он имеет код клавиши и сообщает идентификатор окна, в котором была нажата клавиша.
Функциональные клавиши, такие как Fn+F6, которая на самом деле является клавишей уменьшения яркости, не выводят такой информации. Они сообщают идентификатор 0x0 для окна и не имеют ключевой код. Таким образом, это означает, что эти ключи не могут быть переназначены и управляются программным обеспечением, таким как X-сервер или консоль; они зависят от среды, в которой они работают. Это также несколько объясняет, почему Супер ключ может работать или не работать в конкретной среде рабочего стола - разработчики должны включить функциональность этого ключа в свою среду рабочего стола.
MappingNotify event, serial 28, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeymapNotify event, serial 29, synthetic NO, window 0x0,
keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0