показать клавиши нажатыми в linux


131

в windows есть программа под названием клавиатура джедай, которая показывает какие клавиши нажимаются на клавиатуре. есть ли эквивалент для Linux?


1
Я искал что-то, что поможет с снимками экрана ... screenkey, кажется, как я хотел.
ftravers

Xev os отличный вариант и, вероятно, уже установлен на вашей машине
deFreitas

Ответы:


124

Другие упоминали xev, что хорошо, когда вы работаете на X11. Однако когда вы находитесь за консолью, showkeyэто то , что вы хотите.

И если вы находитесь на сеансе SSH или на реальном терминале, вы можете использовать его /usr/lib/ncurses/examples/demo_altkeys(доступно в Debian в пакете ncurses-examples).


1
Добро пожаловать в ряды спортсменов-стэков .
Деннис Уильямсон

3
Ни один не работает в терминале SSH.
анатолий техтоник

6
чтобы обойти showkeyошибку, связанную с отсутствием файлового дескриптора (как в комментарии @anatolytechtonik), попробуйтеsudo showkey
pestophagous

1
@anatolytechtonik Ответ отредактирован, чтобы добавить команду для сессий SSH (и реальных терминалов).
Тедди

5
@Johann xevсообщает о кодах сканирования, тогда как showkeyпо умолчанию сообщает о кодах клавиш. sudo showkey -sсообщает сканкоды.
Низам Мухаммед

49

Также screenkey , инструмент для показа экрана, отображающий нажатие клавиш на экране.


1
Я попробовал это, и он не показывал мне такие клавиши, как громкость вверх / вниз.
Бас Питерс

Для меня это показывает и яркость, и регулировки громкости. Отличная маленькая программа в целом!
joelostblom

Версия в репозиториях Debian Stretch древняя (и Stretch стабилен только, idk, может быть, 2 месяца?). Используйте версию Github, чтобы получить некоторые настройки.
Люк

Репо был перенесен в Гитлаб .
Ркт


32
 chris@retina:~$ xinput list
 ⎡ Virtual core pointer                     id=2    [master pointer  (3)]
 ⎜   ↳ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
 ⎜   ↳ bcm5974                                  id=13   [slave  pointer  (2)]
 ⎜   ↳ Logitech Unifying Device. Wireless PID:1028  id=9    [slave  pointer  (2)]
 ⎣ Virtual core keyboard                    id=3    [master keyboard (2)]
     ↳ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
     ↳ Power Button                             id=6    [slave  keyboard (3)]
     ↳ Power Button                             id=7    [slave  keyboard (3)]
     ↳ Sleep Button                             id=8    [slave  keyboard (3)]
     ↳ FaceTime HD Camera (Built-in)            id=11   [slave  keyboard (3)]
     ↳ Apple Inc. Apple Internal Keyboard / Trackpad    id=12   [slave  keyboard (3)]
     ↳ daskeyboard                              id=10   [slave  keyboard (3)]
     ↳ daskeyboard                              id=14   [slave  keyboard (3)]
 chris@retina:~$ xinput test 14
 key release 36 
 key press   43 
 hkey release 43 
 key press   26 
 ekey release 26 
 key press   46 
 lkey release 46 
 key press   46 
 lkey release 46 
 key press   32 
 okey release 32 
 key press   37 
 key press   54 
 ^C
 chris@retina:~$ 

1
xev не смог показать мне кнопки мыши Mx Anywhere 2, этот метод отображал правильную кнопку.
sdkks

32

Если вы ищете что-то, что графически показывает вам, какая клавиша нажата в данный момент (возможно, для угла скринкаста), key-mon может быть билетом.


24

Лучшая команда, которую я знаю для этой функциональности showkey, с параметром -a.

Вы можете попробовать, и Ctrl+, Dчтобы выйти:

showkey -a

showkeyуже упоминалось в предыдущих ответах.
Дмитрий Григорьев

Но дополнение -aполезно, показывая, как использовать команду. Но тогда должен быть комментарий.
Стефан ван ден Аккер,

sudo showkey -aтоже работает с ssh.
Низам Мухаммед

17

Вы также можете использовать evtest. В некоторых ситуациях лучше, чем xevкогда отображаются ключи, даже если ключ уже захвачен.

Для установки под Ubuntu / Mint sudo apt-get install evtest.

Чтобы запустить sudo evtestи выбрать номер устройства.

Пример вывода:

$ sudo evtest 
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:  Lid Switch
/dev/input/event1:  Power Button
/dev/input/event2:  Power Button
/dev/input/event3:  AT Translated Set 2 keyboard
/dev/input/event4:  ETPS/2 Elantech Touchpad
/dev/input/event5:  Logitech Logitech G930 Headset
/dev/input/event6:  Video Bus
/dev/input/event7:  HDA Intel HDMI HDMI/DP,pcm=8
/dev/input/event8:  HDA Intel HDMI HDMI/DP,pcm=7
/dev/input/event9:  HDA Intel HDMI HDMI/DP,pcm=3
/dev/input/event10: HDA Intel PCH Headphone
/dev/input/event11: HDA Intel PCH Mic
/dev/input/event12: WebCam SC-10HDP12B24N
/dev/input/event13: ELAN Touchscreen
Select the device event number [0-13]: 5
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x46d product 0xa1f version 0x101
Input device name: "Logitech Logitech G930 Headset"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 256 (BTN_0)
    Event code 257 (BTN_1)
    Event code 258 (BTN_2)
    Event code 259 (BTN_3)
    Event code 260 (BTN_4)
    Event code 261 (BTN_5)
    Event code 262 (BTN_6)
    Event code 263 (BTN_7)
    Event code 264 (BTN_8)
    Event code 265 (BTN_9)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time 1412585327.807585, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b5
Event: time 1412585327.807585, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 1
Event: time 1412585327.807585, -------------- SYN_REPORT ------------
Event: time 1412585327.927557, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00b5
Event: time 1412585327.927557, type 1 (EV_KEY), code 163 (KEY_NEXTSONG), value 0
Event: time 1412585327.927557, -------------- SYN_REPORT ------------

1
Не работает с SSH. Похоже, там их /dev/inputвообще нет.
анатолий техтоник

12

Если вы получаете приглашение оболочки, вы можете нажать Ctrl- vзатем интересующую вас клавишу, чтобы увидеть, что выводится. Например, в моей системе нажатие Ctrl- vзатем Right Arrowпоказывает, ^[[Cчто означает Escape, Left Bracket, C.

Как уже упоминали другие, xevэто путь для X11.



5
xev | grep 'keycode'
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    state 0x4, keycode 52 (keysym 0x7a, z), same_screen YES,
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,
    state 0x0, keycode 52 (keysym 0x7a, z), same_screen YES,
    state 0x0, keycode 54 (keysym 0x63, c), same_screen YES,

6
Пожалуйста, обратитесь к тому, как написать хороший ответ
каламбур

xev -event keyboardсообщает только о событиях клавиатуры.
Низам Мохамед
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.