mostra as teclas pressionadas no linux

131

no Windows, existe um programa chamado keyboard jedi que mostra quais teclas foram pressionadas no teclado. existe um equivalente para linux?

ftravers
fonte
1
Eu estava procurando por algo que ajude com as transmissões de tela ... screenkey parece o que eu queria.
ftravers
Xev ósmio ótima opção e provavelmente já está instalado onyour máquina
DeFreitas

Respostas:

124

Outros já mencionaram xev, o que é bom quando você está executando o X11. Quando você está no console, no entanto, showkeyé o que você deseja.

E se você estiver em uma sessão SSH ou em um terminal real, poderá usá-lo /usr/lib/ncurses/examples/demo_altkeys(disponível no Debian no pacote ncurses-examples).

Teddy
fonte
1
Bem-vindo às fileiras dos atletas da Stack .
Dennis Williamson
3
Nem trabalho no terminal SSH.
Anatoly techtonik
6
para contornar showkeydando o erro de não receber um descritor de arquivo (como no comentário por @anatolytechtonik), tentesudo showkey
pestophagous
1
@anatolytechtonik Resposta editada para adicionar comando para sessões SSH (e terminais reais).
Teddy
5
@Johann xevreporta scancodes, enquanto, showkeypor padrão, reporta códigos-chave. sudo showkey -srelatórios scancodes.
Nizam Mohamed
49

Também screenkey , uma ferramenta de captura de tela que exibe as teclas pressionadas na tela.

Adobe
fonte
1
Eu tentei isso e ele não me mostrou teclas como aumentar / diminuir o volume.
Bas Peeters
Para mim, isso mostra ajustes de brilho e volume. Ótimo pequeno programa em geral!
Joelostblom 01/12/16
A versão nos repositórios Debian Stretch é antiga (e o Stretch é estável por apenas, idk, 2 meses, talvez?). Use a versão do Github para obter algumas configurações.
Luc
O repositório foi migrado para o Gitlab .
rkta 16/07
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:~$ 
Christopher Done
fonte
1
O xev falhou ao me mostrar os botões do mouse do Mx Anywhere 2, esse método exibiu o botão correto.
Sdkks 09/07
32

Se você estiver procurando por algo que mostre graficamente qual tecla está pressionada atualmente (talvez para o canto de um screencast), a tecla seg pode ser o ticket.

asjo
fonte
24

O melhor de comando que eu sei para essa funcionalidade é showkey, com o parâmetro -a.

Você pode tentar e Ctrl+ Dpara sair:

showkey -a
Rafael Quirino Castro
fonte
showkeyjá foi mencionado nas respostas anteriores.
Dmitry Grigoryev
Mas a adição -aé útil, mostrando como usar o comando. Mas deve ser um comentário então.
Stefan van den Akker
sudo showkey -atrabalha com ssh também.
Nizam Mohamed
17

Você também pode usar evtest. Em algumas situações, melhor do que xevcomo mostra as chaves, mesmo quando a chave já está capturada.

Para instalar no ubuntu / mint sudo apt-get install evtest.

Para executar sudo evteste escolher o número do dispositivo.

Exemplo de saída:

$ 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 ------------
Kamil Dziedzic
fonte
1
Não funciona com SSH. Parece que não /dev/inputexiste.
Anatoly techtonik
12

Se você estiver em um prompt de shell, poderá pressionar Ctrl- ve a tecla de seu interesse para ver qual é o resultado. Por exemplo, no meu sistema, pressionar Ctrl- ve Right Arrowmostra o ^[[Cque significa Escape, Suporte esquerdo, C.

Como outros já mencionaram, xevé o caminho a percorrer para o X11.

Dennis Williamson
fonte
5

Você estaria querendo xev .

Tony Miller
fonte
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,
LeCanardNoir
fonte
6
Por favor, consulte como escrever uma boa resposta
pun
xev -event keyboardrelata apenas eventos do teclado.
Nizam Mohamed