在Windows中,有一个名为Keyboard Jedi的程序,它显示键盘上按下的键。

Linux是否有与之等效的软件?

评论

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

Xev os不错的选择,它可能已安装在您的计算机上

#1 楼

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

如果您在SSH会话或真实终端中,则可以使用/usr/lib/ncurses/examples/demo_altkeys(在nbians中的Debian中可用-示例包)。

请注意,“ a”的xev给出38,而“ a”的showkey给出30,因为xev报告扫描码,而showkey默认报告键码。

评论


两者都不在SSH终端中工作。

–anatoly techtonik
15年11月8日在11:23

@anatolytechtonik:猜猜您必须获得一个新的内部网:(

– David Rivers
16年5月24日在17:50



@anatolytechtonik对我来说,xev通过ssh可以正常工作。您是否在ssh命令行的ssh选项中添加了-X或-Y?

–克里斯蒂安·胡杰(Christian Hujer)
17年1月10日在10:24



要解决showkey并给出关于没有获取文件描述符的错误(例如@anatolytechtonik的注释),请尝试sudo showkey

– Pestophagous
17 Mar 27 '17 at 22:38

@Johann xev报告扫描代码,而showkey默认情况下报告密钥代码。 sudo showkey -s报告扫描代码。

–尼扎姆·穆罕默德(Nizam Mohamed)
17-10-17在9:01

#2 楼

也是screenkey,它是一种屏幕广播工具,可显示在屏幕上按下的键。

评论


我试过了,但没有显示音量调高之类的键。

–Bas Peeters
15年11月30日在12:39

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

– joelostblom
16年1月1日在13:34

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

–吕克
17-10-3在23:27

回购已迁移到Gitlab。

–rkta
19年7月16日在17:59

#3 楼

有一个用于图形模式的xev程序-请参见xev的手册页。

在Ubuntu / Debian上,它包装在x11-utils软件包中。

评论


在命令行上使用它并按我认为不起作用的键,使该键开始起作用。野性,我接受!

–布兰登·贝特尔森(Brandon Bertelsen)
19年11月7日在22:28

添加它会显示计时信息(与showkey相反)。

– Peter Mortensen
20 Jan 15'8:41



#4 楼

 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:~$ 


评论


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

–sdkks
17年7月9日在13:43

#5 楼

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

评论


如果您发现越来越难找到的Python 2.x和PyGTK(GTK + 2.x)依赖项,我建议将key-mon作为最漂亮的截屏选项。 (我会尽力将其移植到Python 3.x和GTK + 3.x上,但是我的盘子上还有太多亟待解决的问题。)

– ssokolow
20年1月25日在8:43

不幸的是,key-mon的安装非常繁琐,代码已经超过8年没有更新/维护过了,而且@ssokolow提到的依赖关系也不容易找到。唯一的选择是screenkey,它也有点奇怪,但确实有效。

– SidOfc
20 May 21 '13:42

#6 楼

对于此功能,我知道的更好的命令是showkey,参数为-a。您可以尝试使用Ctrl + D退出:

showkey -a


评论


在先前的答案中已经提到了showkey。

–德米特里·格里戈里耶夫(Dmitry Grigoryev)
15年5月30日在18:55

但是,-a很有用,显示了如何使用该命令。但是,然后应该发表评论。

– Stefan van den Akker
2015年9月26日在7:59

sudo showkey -a也可以与ssh一起使用。

–尼扎姆·穆罕默德(Nizam Mohamed)
17-10-17在8:50

您能否在答案中加上为什么“ -a”更好?提前致谢。

– Peter Mortensen
20 Jan 12'在22:22



另外,没有sudo可以工作吗?可以? (请通过编辑答案来回答,而不是在注释中(适当时在此处))。

– Peter Mortensen
20年1月12日在22:24



#7 楼

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

要在Ubuntu / Linux 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 ------------


评论


不适用于SSH。看起来那里根本没有/ dev / input。

–anatoly techtonik
2015年11月8日,11:26

#8 楼

如果在shell提示下,则可以按Ctrl-v,然后按感兴趣的键以查看输出是什么。例如,在我的系统上,按Ctrl-v,然后向右箭头显示^[[C,这表示转义,左括号,C。

正如其他人所提到的,xev是X11的使用方式。 >

评论


但是“ ^ [[C”不是键。可能是终端转义序列?

– Peter Mortensen
20年1月12日在22:18

确实。是Esc + [C。 showkey -a还将显示按下的特殊键的转义序列+代码,用于转义序列的每个元素。

– DKroot
20 Jun 27'20:22



#9 楼

您会想要xev。

#10 楼

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仅报告键盘事件。

–尼扎姆·穆罕默德(Nizam Mohamed)
17-10-17在8:51

#11 楼

如果只想看到按键的人性化输出,可以使用此命令:
xev | sed -n 's/[ ]*state.* \([^ ]*\)).*//p'
请注意,您将在keydown和keyup上都得到按键输出。