Коды клавиш в Linux

Матеріал з Wiki.Zina
Перейти до навігації Перейти до пошуку

Узнать коды клавиш в Linux можно с помощью программы xev.

  1. В терминале запустить xev | grep keysym. Появится маленькое окошко «Event tester».
  2. Теперь нажать любую клавишу на клавиатуре и код клавиши отобразится в окне консоли, из которой был запущен 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.