显示在Linux中按下的键


131

在Windows中,有一个名为Keyboard jedi的程序,它显示键盘上按下的键。linux是否有等效功能?


1
我一直在寻找有助于屏幕投射的东西... screenkey似乎是我想要的。
ftravers

Xev是一个很好的选择,可能已经安装在您的计算机上
deFreitas

Answers:


124

其他人提到过xev,当您运行X11时,这很好。但是,当您在控制台上时,showkey就是您想要的。

而且,如果您正在SSH会话或真实终端上,则可以使用/usr/lib/ncurses/examples/demo_altkeys(可在Debian中的ncurses-examples软件包中找到)。


1
欢迎加入堆栈运动员队伍。
丹尼斯·威廉姆森

3
两者都无法在SSH终端中使用。
anatoly techtonik

6
要解决showkey由于没有获取文件描述符而引起的错误(例如@anatolytechtonik的评论),请尝试sudo showkey
引起争议的2017年

1
@anatolytechtonik答案已编辑为SSH会话(和实际终端)添加了命令。
泰迪

5
@Johann xev报告扫描代码,而showkey默认情况下报告密钥代码。sudo showkey -s报告扫描码。
尼扎姆·穆罕默德

48

也是screenkey,它是一个截屏工具,显示在屏幕上按下的键。


1
我尝试了这个,但没有显示音量调高之类的键。
Bas Peeters 2015年

对我来说,这同时显示了亮度和音量调节。总体来说很棒的小程序!
joelostblom '16

Debian Stretch储存库中的版本是古老的(Stretch只能保持稳定,idk,可能需要2个月?)。使用Github版本进行一些设置。
卢克(Luc)2017年

Repo已迁移到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:~$ 

1
xev无法显示Mx Anywhere 2鼠标按钮,此方法显示正确的按钮。
sdkks

31

如果您正在寻找图形显示您当前按下的键(可能是屏幕录像的一角),则key-mon可能是故障单。



17

您也可以使用evtest。在某些情况下,xev即使已捕获密钥,也比显示密钥更好。

要在ubuntu / mint下安装sudo apt-get install evtest

运行sudo evtest并选择设备编号。

输出示例:

$ 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
不适用于SSH。看起来那里根本没有/dev/input
anatoly techtonik,2015年

12

如果出现shell提示,则可以按Ctrl-,v然后按感兴趣的键以查看输出是什么。例如,在我的系统上,按Ctrl- v然后Right Arrow显示^[[C表示Escape,Left Bracket,C。

正如其他人所提到的,xevX11是必经之路。



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 keyboard仅报告键盘事件。
尼扎姆·穆罕默德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.