tampilkan kunci yang ditekan di linux

131

di windows ada program yang disebut keyboard jedi yang menunjukkan tombol apa yang ditekan pada keyboard. apakah ada yang setara untuk linux?

ftravers
sumber
1
Saya sedang mencari sesuatu yang membantu dengan gips layar ... screenkey sepertinya apa yang saya inginkan.
ftravers
Xev os opsi hebat dan mungkin sudah terpasang di mesin Anda
deFreitas

Jawaban:

124

Yang lain menyebutkan xev, mana yang baik ketika Anda menjalankan X11. Ketika Anda berada di konsol, bagaimanapun, showkeyadalah apa yang Anda inginkan.

Dan jika Anda berada di sesi SSH atau terminal nyata, Anda dapat menggunakan /usr/lib/ncurses/examples/demo_altkeys(tersedia dalam Debian dalam paket ncurses -amples).

Teddy
sumber
1
Selamat datang di jajaran Atlet Stack .
Dennis Williamson
3
Tidak berfungsi di terminal SSH.
anatoly techtonik
6
untuk mengatasi showkeymemberikan kesalahan tentang tidak mendapatkan deskriptor file (seperti dalam komentar oleh @anatolytechtonik), cobasudo showkey
pestophagous
1
@anatolytechtonik Jawab diedit untuk menambah perintah untuk sesi SSH (dan terminal nyata).
Teddy
5
@ Johann xevmelaporkan scancodes sedangkan showkeysecara default melaporkan kode kunci. sudo showkey -smelaporkan scancodes.
Nizam Mohamed
49

Juga screenkey , alat screencast yang menampilkan tombol ditekan di layar.

Adobe
sumber
1
Saya mencoba ini dan tidak menunjukkan saya tombol seperti volume naik / turun.
Bas Peeters
Bagi saya, ini menunjukkan penyesuaian kecerahan dan volume. Program kecil yang hebat secara keseluruhan!
joelostblom
Versi dalam repositori Debian Stretch kuno (dan Stretch stabil untuk hanya, idk, 2 bulan mungkin?). Gunakan versi Github untuk mendapatkan beberapa pengaturan.
Luc
Repo dimigrasikan ke 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
sumber
1
xev gagal menunjukkan kepada saya tombol mouse Mx Anywhere 2, metode ini menampilkan tombol yang benar.
sdkks
32

Jika Anda mencari sesuatu yang secara grafis menunjukkan kepada Anda tombol apa yang ditekan saat ini (mungkin untuk sudut screencast), key-mon mungkin adalah tiketnya.

asjo
sumber
24

Perintah yang lebih baik yang saya tahu untuk fungsi ini adalah showkey, dengan parameter -a.

Anda dapat mencoba, dan Ctrl+ Duntuk keluar:

showkey -a
Rafael Quirino Castro
sumber
showkeysudah disebutkan dalam jawaban sebelumnya.
Dmitry Grigoryev
Namun penambahan -aitu bermanfaat, menunjukkan cara menggunakan perintah. Tetapi harus menjadi komentar.
Stefan van den Akker
sudo showkey -abekerja dengan ssh juga.
Nizam Mohamed
17

Anda juga bisa menggunakan evtest. Dalam beberapa situasi lebih baik daripada xevkarena menunjukkan kunci bahkan ketika kunci sudah diambil.

Untuk menginstal di bawah ubuntu / mint sudo apt-get install evtest.

Untuk menjalankan sudo evtestdan memilih nomor perangkat.

Contoh output:

$ 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
sumber
1
Tidak bekerja dengan SSH. Sepertinya tidak ada /dev/inputsama sekali di sana.
anatoly techtonik
12

Jika Anda berada di prompt shell, Anda dapat menekan Ctrl- vmaka kunci yang menarik untuk melihat apa outputnya. Sebagai contoh, pada sistem saya, menekan Ctrl- vkemudian Right Arrowmenunjukkan ^[[Cyang berarti Escape, Bracket Kiri, C.

Seperti yang telah disebutkan orang lain, xevadalah cara untuk X11.

Dennis Williamson
sumber
5

Anda akan menginginkan xev .

Tony Miller
sumber
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
sumber
6
Silakan merujuk pada bagaimana menulis jawaban yang baik
pun
xev -event keyboardhanya melaporkan acara keyboard.
Nizam Mohamed