Ubuntu:实时显示按下了哪些键

Den*_*gin 14 keyboard

我正在寻找一种工具,可以告诉现在按下了哪些键(包括 Alt、Shift、Ctrl 等)。需要它对可能有故障的键盘进行健康检查。

DK *_*ose 11

安装keymon. 它位于 Universe 存储库中并使用key-mon(不是keymon!)运行它。

man keymon有这个:

Keymon - GTK 的键盘和鼠标监视器窗口。

请阅读man keymon所有可用选项。

您还应该右键单击它以检查设置是否适合您。

如果您不喜欢默认位置,请将其拖动到屏幕上更合适的位置。

另一种选择是screenkey,也在 Universe 存储库中。screenkey 的一个特点是它只有在您输入内容时才会出现,如果键盘处于非活动状态,它会在几秒钟后消失。但是,与 keymon 不同,screenkey 不注册鼠标点击。

一个YouTube视频上都keymonscreenkey。该视频是德语,但仍然很容易理解。


Bea*_*nog 10

xev也是一种选择。如果尚未安装,请使用以下命令进行安装:

sudo apt install xev
Run Code Online (Sandbox Code Playgroud)

然后运行:

xev
Run Code Online (Sandbox Code Playgroud)

确保选择打开的白色小窗口,然后按任意键查看有关它的详细信息。

要限制xev的相当详细的输出,以便它只显示您按下的键,您可以将其输出传递给awk

sudo apt install xev
Run Code Online (Sandbox Code Playgroud)

无论如何,请注意,xev为您按下的每个键注册两个事件,一个用于按下该键,一个用于释放该键。


Tej*_*kar 7

有一个网站https://www.keyboardtester.com/可以让您查看您按下了哪些键,并显示了键盘布局。此外,还有一个名为的包xkeycaps可以使用。将鼠标移到某个键上描述了该键生成的键符和修饰符

还有更多可用的网站,例如


Rus*_*lan 6

要测试可能有故障的键盘,最好尽可能低级别。在不深入内核空间的情况下执行此操作的最简单方法之一是几乎直接使用/dev/input/event*设备文件。即,您可以使用evtest查看所有键盘输入。如果你在抓取模式下运行它,这会让你拦截一切——甚至是Magic SysRq组合(有趣的是,甚至SAK)!

这就是我要怎么做。首先,通过运行获取输入设备列表sudo evtest

$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Power Button
/dev/input/event1:      Power Button
/dev/input/event2:      PC Speaker
/dev/input/event3:      Video Bus
/dev/input/event4:      HDA Intel HDMI HDMI/DP,pcm=3
/dev/input/event5:      HDA Intel HDMI HDMI/DP,pcm=7
/dev/input/event6:      HDA Intel HDMI HDMI/DP,pcm=8
/dev/input/event7:      HDA Intel HDMI HDMI/DP,pcm=9
/dev/input/event8:      HDA Intel HDMI HDMI/DP,pcm=10
/dev/input/event9:      HDA Intel PCH Front Mic
/dev/input/event10:     HDA Intel PCH Rear Mic
/dev/input/event11:     HDA Intel PCH Line
/dev/input/event12:     HDA Intel PCH Line Out
/dev/input/event13:     HDA Intel PCH Front Headphone
/dev/input/event14:     HDA NVidia HDMI/DP,pcm=3
/dev/input/event15:     HDA NVidia HDMI/DP,pcm=7
/dev/input/event16:     HDA NVidia HDMI/DP,pcm=8
/dev/input/event17:     ImExPS/2 Generic Explorer Mouse
/dev/input/event18:     AT Translated Set 2 keyboard
Select the device event number [0-18]:
Run Code Online (Sandbox Code Playgroud)

不要在这里选择任何东西:只需按Ctrl+ C。这次运行evtest是在一个简单的非抓取模式下,它不会让你拦截一切。但是您现在知道您需要的设备文件(在我上面给出的情况下,它是/dev/input/event18)。

现在您实际上可以evtest在抓取模式下运行,使用该--grab选项,以便它拦截来自键盘的所有事件 - 包括Return在您将命令提交给 shell 后的释放,后续Ctrl+ C,Magic SysRq,VT 开关快捷键等。 避免被系统锁定,我们将为 设置超时evtest

sudo su -c 'sleep 1; timeout -k5 10 evtest --grab /dev/input/event18'
Run Code Online (Sandbox Code Playgroud)

此命令执行以下操作:

  • 等待 1 秒钟,以便您可以Return在抓住键盘之前松开(否则您将在控制台上快速滚动自动重复)
  • evtest在我键盘的设备文件上以抓取模式开始(用你的替换它)。
  • evtest运行时超时为 10 秒,并且在(不太可能)挂起的情况下有 5 秒的额外宽限期,之后它被 杀死SIGKILL,希望将键盘控制权归还给您。
  • sudo围绕整个命令,而不是只裹evtest以确保您输入密码(如果需要的话)之前 sleep 1,否则这种睡眠将是无用的

在 10 秒的超时时间内(当然,您可以更改为更适合您的内容)您可以按键盘上的任何东西——除了Fn驱动键,它可能以非标准方式工作——并查看它输入的内容.