zeige die unter Linux gedrückten Tasten


131

In Windows gibt es ein Programm namens keyboard jedi, das anzeigt, welche Tasten auf der Tastatur gedrückt werden. Gibt es ein Äquivalent für Linux?


1
Ich war auf der Suche nach etwas, das bei Screencasts hilft ... Screenkey scheint genau das zu sein, was ich wollte.
ftravers

Xev ist eine großartige Option und wahrscheinlich bereits auf Ihrem Computer installiert
deFreitas

Antworten:


124

Andere haben erwähnt xev, was gut ist, wenn Sie X11 ausführen. Wenn Sie jedoch an der Konsole sitzen, showkeyist es das , was Sie wollen.

Und wenn Sie sich in einer SSH-Sitzung oder einem realen Terminal befinden, können Sie dies verwenden /usr/lib/ncurses/examples/demo_altkeys(verfügbar in Debian im Paket ncurses-examples).


1
Willkommen in den Reihen der Stackathleten .
Dennis Williamson

3
Weder in SSH-Terminal arbeiten.
anatoly techtonik

6
Um showkeyden Fehler zu umgehen, dass kein Dateideskriptor abgerufen wurde (wie im Kommentar von @anatolytechtonik), versuchen Siesudo showkey
pestophagous

1
@anatolytechtonik Antwort bearbeitet, um Befehl für SSH-Sitzungen (und echte Terminals) hinzuzufügen.
Teddy

5
@Johann xevmeldet Scancodes, während showkeystandardmäßig Keycodes gemeldet werden . sudo showkey -smeldet Scancodes.
Nizam Mohamed

49

Außerdem screenkey , ein Screencast-Tool, das die auf dem Bildschirm gedrückten Tasten anzeigt.


1
Ich habe es versucht und es zeigte mir keine Tasten wie Lautstärke hoch / runter.
Bas Peeters

Für mich zeigt dies sowohl Helligkeits- als auch Lautstärkeanpassungen. Tolles kleines Programm insgesamt!
Joelostblom

Die Version in Debian Stretch-Repositories ist uralt (und Stretch ist nur für idk, 2 Monate vielleicht stabil?). Verwenden Sie die Github-Version, um einige Einstellungen zu erhalten.
Luc

Repo wurde nach Gitlab migriert .
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:~$ 

1
xev konnte mir Mx Anywhere 2 Maustasten nicht anzeigen, diese Methode zeigte die richtige Taste an.
SDKKS

32

Wenn Sie nach etwas suchen, das Ihnen grafisch anzeigt, welche Taste aktuell gedrückt ist (möglicherweise für die Ecke eines Screencasts), ist key-mon möglicherweise das Ticket.


24

Der bessere Befehl, den ich für diese Funktionalität kenne, ist showkeymit Parameter -a.

Sie könnten versuchen, und Ctrl+ Dzu beenden:

showkey -a

showkeywird bereits in den früheren Antworten erwähnt.
Dmitry Grigoryev

Der Zusatz -aist jedoch nützlich und zeigt, wie der Befehl verwendet wird. Sollte aber dann ein Kommentar sein.
Stefan van den Akker

sudo showkey -afunktioniert auch mit ssh
Nizam Mohamed

17

Sie können auch verwenden evtest. In einigen Situationen besser als xevwie es Schlüssel zeigt, auch wenn Schlüssel bereits erfasst ist.

Unter Ubuntu / Mint zu installieren sudo apt-get install evtest.

Zum Ausführen sudo evtestund Auswählen der Gerätenummer.

Beispielausgabe:

$ 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
Funktioniert nicht mit SSH. Sieht so aus, als gäbe es überhaupt keine /dev/input.
anatoly techtonik

12

Wenn Sie an einer Shell-Eingabeaufforderung angelangt sind, können Sie Ctrl- vdrücken, um die Ausgabe zu sehen. Zum Beispiel auf meinem System drücken Ctrl- vdann Right Arrowzeigt , ^[[Cwas bedeutet , Escape, Left Bracket, C.

Wie schon andere erwähnt haben, xevist der Weg für 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,


xev -event keyboardmeldet nur Tastaturereignisse.
Nizam Mohamed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.