Коды клавиш в Linux
Узнать коды клавиш в Linux можно с помощью программы xev.
- В терминале запустить
xev | grep keysym. Появится маленькое окошко «Event tester». - Теперь нажать любую клавишу на клавиатуре и код клавиши отобразится в окне консоли, из которой был запущен xev.
Пример 1. Узнаем код клавиши «q». Alt+F2, konsole, xev, q. В консоли появится текст:
KeyPress event, serial 34, synthetic NO, window 0x4800001,
root 0x82, subw 0x0, time 165037087, (-811,423), root:(482,448),
state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
XLookupString gives 1 bytes: (71) "q"
XmbLookupString gives 1 bytes: (71) "q"
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x4800001,
root 0x82, subw 0x0, time 165037191, (-811,423), root:(482,448),
state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
XLookupString gives 1 bytes: (71) "q"
XFilterEvent returns: False
Здесь указаны 2 события: нажатие (KeyPress) клавиши «q» и отпускание (KeyRelease) этой же клавиши. Искомый код — q.
Если использовать xev | grep keycode, то получим более удобный вид:
state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
Пример 2. Узнаем код клавиши «Й». В консоли xev | grep keycode, Shift+й. В консоли появится текст:
state 0x2010, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
state 0x2011, keycode 24 (keysym 0x6ea, Cyrillic_SHORTI), same_screen YES,
state 0x2011, keycode 24 (keysym 0x6ea, Cyrillic_SHORTI), same_screen YES,
state 0x2011, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
Здесь первая строка — код левого Shift (Shift_L), вторая и третья — нажатие и отпускание клавиши «Й» в верхнем регистре (Cyrillic_SHORTI), четвертая — отпускание левого Shift. Искомый код — Cyrillic_SHORTI.