affiche les touches pressées sous Linux

131

Dans Windows, il existe un programme appelé clavier Jedi qui indique quelles touches sont enfoncées sur le clavier. Existe-t-il un équivalent pour Linux?

couteaux
la source
1
Je cherchais quelque chose d’aide pour les projections d’écran.
ftravers
Xev est une excellente option et est probablement déjà installé sur votre machine
deFreitas

Réponses:

124

D'autres l'ont mentionné xev, ce qui est bien lorsque vous utilisez X11. Lorsque vous êtes à la console, cependant, showkeyc'est ce que vous voulez.

Et si vous êtes dans une session SSH ou sur un vrai terminal, vous pouvez utiliser /usr/lib/ncurses/examples/demo_altkeys(disponible dans Debian dans le paquet ncurses-examples).

Nounours
la source
1
Bienvenue dans les rangs des athlètes de pile .
Dennis Williamson
3
Ni travailler dans le terminal SSH.
anatoly techtonik
6
pour contourner en showkeydonnant l'erreur de ne pas obtenir un descripteur de fichier (comme dans le commentaire de @anatolytechtonik), essayezsudo showkey
pestophagous
1
@anatolytechtonik Réponse modifiée pour ajouter une commande pour les sessions SSH (et les terminaux réels).
Teddy
5
@Johann xevrapporte les scancodes alors que showkeypar défaut les keycodes. sudo showkey -srapports scancodes.
Nizam Mohamed
49

Aussi screenkey , un outil de screencast qui affiche les touches sur lesquelles vous appuyez.

Adobe
la source
1
J'ai essayé ceci et il ne m'a pas montré les touches comme le volume haut / bas.
Bas Peeters
Pour moi, cela montre les réglages de luminosité et de volume. Super petit programme dans l'ensemble!
joelostblom
La version des référentiels Debian Stretch est ancienne (et Stretch est stable pour seulement, idk, 2 mois peut-être?). Utilisez la version Github pour obtenir certains paramètres.
Luc
Le repo a été migré vers Gitlab .
rkta
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
la source
1
xev n'a pas réussi à me montrer les boutons de la souris Mx Anywhere 2, cette méthode affiche le bouton correct.
sdkks
32

Si vous cherchez quelque chose qui vous montre graphiquement quelle touche est actuellement enfoncée (peut-être pour le coin d'un screencast), key-mon pourrait être le ticket.

asjo
la source
24

La meilleure commande que je connaisse pour cette fonctionnalité est showkey, avec paramètre -a.

Vous pouvez essayer, et Ctrl+ Dpour sortir:

showkey -a
Rafael Quirino Castro
la source
showkeyest déjà mentionné dans les réponses précédentes.
Dmitry Grigoryev
Mais l'addition -aest utile, montrant comment utiliser la commande. Mais devrait être un commentaire alors.
Stefan van den Akker le
sudo showkey -afonctionne avec ssh aussi.
Nizam Mohamed
17

Vous pouvez également utiliser evtest. Dans certaines situations, mieux que xevd'afficher les clés même lorsque la clé est déjà capturée.

Pour installer sous Ubuntu / Mint sudo apt-get install evtest.

Pour exécuter sudo evtestet choisir le numéro de périphérique.

Exemple de sortie:

$ 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
la source
1
Ne fonctionne pas avec SSH. On dirait qu'il n'y a pas /dev/inputdu tout là-bas.
anatoly techtonik
12

Si vous êtes à l'invite du shell, vous pouvez appuyer sur Ctrl- vpuis sur la touche qui vous intéresse pour voir le résultat. Par exemple, sur mon système, appuyer sur Ctrl- vpuis sur Right Arrowindique ^[[Cque signifie Évasion, Support gauche, C.

Comme d’autres l’ont mentionné, xevc’est la voie à suivre pour X11.

Dennis Williamson
la source
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
la source
6
S'il vous plaît se référer à la façon d'écrire une bonne réponse
jeu de mots
xev -event keyboardrapporte que les événements de clavier.
Nizam Mohamed