pokaż klawisze wciśnięte w systemie Linux

131

w systemie Windows znajduje się program o nazwie klawiatura jedi, który pokazuje, jakie klawisze są naciskane na klawiaturze. czy istnieje odpowiednik linuksa?

wędrowcy
źródło
1
Szukałem czegoś, co pomogłoby w rzutowaniu ekranu ... klawisz ekranowy wydaje się być tym, czego chciałem.
ftravers
Xev os świetna opcja i prawdopodobnie jest już zainstalowany na twoim komputerze
deFreitas

Odpowiedzi:

124

Inni wspominali xev, co jest dobre, gdy używasz X11. Jednak gdy jesteś przy konsoli, showkeyjest to, czego chcesz.

A jeśli jesteś na sesji SSH lub prawdziwym terminalu, możesz użyć /usr/lib/ncurses/examples/demo_altkeys(dostępny w Debianie w pakiecie ncurses-Examples).

Miś
źródło
1
Witamy w szeregach stosowców .
Dennis Williamson
3
Żadna z nich nie działa w terminalu SSH.
anatoly techtonik
6
aby obejść showkeybłąd i nie otrzymać deskryptora pliku (jak w komentarzu @anatolytechtonik), spróbujsudo showkey
pestofagiczny
1
@anatolytechtonik Odpowiedź edytowana w celu dodania polecenia dla sesji SSH (i rzeczywistych terminali).
Teddy
5
@Johann xevzgłasza skancody , podczas gdy showkeydomyślnie zgłasza kody. sudo showkey -szgłasza scancodes.
Nizam Mohamed
49

Również screenkey , narzędzie do screencastu, które wyświetla klawisze naciskane na ekranie.

Cegła suszona na słońcu
źródło
1
Próbowałem tego i nie pokazało mi to klawiszy takich jak zwiększanie / zmniejszanie głośności.
Bas Peeters
Dla mnie pokazuje to zarówno regulację jasności, jak i głośności. Świetny mały program ogólnie!
joelostblom
Wersja w repozytoriach Debian Stretch jest starożytna (a Stretch jest stabilny tylko przez idk, może 2 miesiące?). Użyj wersji Github, aby uzyskać pewne ustawienia.
Luc
Repo zostało migrowane do 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
źródło
1
xev nie pokazał mi Mx Anywhere 2 przycisków myszy, ta metoda wyświetlała prawidłowy przycisk.
sdkks,
32

Jeśli szukasz czegoś, co graficznie pokazuje, który klawisz jest aktualnie wciśnięty (być może w rogu ekranu), key-mon może być biletem.

asjo
źródło
24

Lepszym poleceniem, jakie znam dla tej funkcji, jest showkeyparametr -a.

Możesz spróbować, i Ctrl+, Daby wyjść:

showkey -a
Rafael Quirino Castro
źródło
showkeyjest już wspomniany we wcześniejszych odpowiedziach.
Dmitrij Grigoriew
Ale dodatek -ajest przydatny, pokazując, jak używać polecenia. Ale powinien to być komentarz.
Stefan van den Akker
sudo showkey -adziała również z ssh.
Nizam Mohamed
17

Możesz także użyć evtest. W niektórych sytuacjach lepiej niż xevpokazuje klucze, nawet jeśli klucz jest już przechwycony.

Aby zainstalować pod Ubuntu / mint sudo apt-get install evtest.

Aby uruchomić sudo evtesti wybrać numer urządzenia.

Przykładowe dane wyjściowe:

$ 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
źródło
1
Nie działa z SSH. Wygląda na to, że wcale nie /dev/inputma.
anatoly techtonik
12

Jeśli pojawi się monit powłoki, możesz nacisnąć Ctrl- vnastępnie klucz zainteresowania, aby zobaczyć, jaki jest wynik. Na przykład w moim systemie naciśnięcie Ctrl- vnastępnie Right Arrowpokazuje, ^[[Cco oznacza Escape, Left Bracket, C.

Jak wspomnieli inni, xevjest to droga do X11.

Dennis Williamson
źródło
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
źródło
6
Proszę odnieść się do tego, jak napisać dobrą odpowiedź
pun
xev -event keyboardzgłasza tylko zdarzenia klawiatury.
Nizam Mohamed