kbd-tst.py 是一个简单的键盘测试程序。它测试所有按键的功能,向用户提供图形(好吧,文本终端中只有 ASCII 半图形)反馈,例如:
简单且用户友好的键盘测试,无需外部依赖项()仅使用标准系统实用程序)...
有一种方法可以在没有任何此类实用程序的情况下测试键盘,例如仅使用文本编辑器即可。在这种情况下,您必须记住哪些键已经过测试,并且不要错过任何未测试的键。通过 kbd-test 在屏幕上实时显示视觉反馈,一切都变得更加容易。
以下是一些典型的:
尽管实现简约,但仍存在以下要求:
注意:由于 xinput 依赖性,kbd-tst 只能在具有 Xorg 的类 Linux 系统上运行
整个 kbd-tst 实现以“xinput test”为中心。 Xinput 作为子进程执行,输出事件被解析并可视化为屏幕键盘布局,并带有附加信息和统计数据。视觉部分是使用 ANSI 转义序列来控制文本终端光标位置和颜色来实现的。键盘布局由外部 ASCII 布局 (*.lay) 文件提供,例如“apple.lay”或“at101.lay”。
为了让 kbd-tst 工作,我们必须以某种方式指定以下内容:
要显示使用帮助,我们可以提供标准的“-h”或“--help”参数
= Keyboard Test Program version 2017.7.28 = (c) 2017 by Robert P =
Usage: kbd-tst.py [id] [layout] [-h|--help]
kbd-tst.py [-h|--help] [layout] [id]
-h ... shows this usage help and quits
--help ... shows this usage help and quits
id ... optional keyboard device id as shown in 'xinput list' output (default user assisted autodetection)
layout ... optional keyboard ASCII layout file [*.lay] (default the first file in kbd-tst dir)
Notes:
* parameters are optional
* not providing device id will initiate a user assisted autodetection sequence requiring physical disconneting
and reconecting the keyboard under test (KUT)
* not providing the layout file is usefull if there is only single layout file in kbd-tst directory
* all unrecognized keys from layout file are shown as errors and counted as [ missing_keycodes ]
* all parameters can be supplied in arbitrary order
* in case of multiple specification the last one wins,
for example in sequence of parameters 'id1 layout1 layout2 id2' id2/layout2 pair wins
* test ends when all successfully recognized keys from layout file are tested [ to_go = 0 ]
* to end test prematurely just type phrase 'quit' (without the quotes)
Known issues:
- keys ike apple keyb VOL+/VOL-/MUTE/EJECT do not generate xinput events and therefore cannot be tested right now
- if more than one device id is found by autodetection sequence only the first one is used, which is some cases
might be incorrect. In this case provide the correct device id as a parameter (id can be found by trial and error
from 'xinput list' and verified by 'xinput test id' to show 'key press xx' and 'key release xx' events)
[ xinput double entries related bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/277946 ]
测试过程简单地包括以下步骤:
由于 xinput id 的动态特性和热插拔支持,我们必须找到 KUT(测试中的 keyboatd)的正确设备 id,这是测试过程中最重要的部分,在某些情况下也是最困难的部分。
幸运的是,有内置的用户辅助自动检测模式。如果尚未连接 KUT,则需要连接 KUT(被测键盘)。如果KUT已经连接,则需要重新连接。自动检测功能是在KUT连接时监视系统,然后它可以自动识别xinput id。然而,在某些情况下,HAL 创建了两个设备,这使得自动检测无法选择。然后通过自动检测选择第一个。如果这不是正确的,您必须手动提供 xinput id 作为命令行参数:
> kbd-tst.py 12
布局文件是物理键盘布局的简单 ASCII 艺术视觉表示。每个按键都用方括号表示,里面的按键标签用空格括起来,例如:数字为 1 的按键表示为 [ 1 ],视觉上看起来像键帽。该布局文件被加载、解析(如果有的话,会显示解析错误),然后也用于屏幕上的视觉反馈。检查提供的布局文件以了解详细信息(apple.lay、at101.lay)
必须将要加载的所需布局文件的名称指定为参数:
> kbd-tst.py at101.lay
如果没有提供布局文件参数,则采用目录中的第一个布局文件。如果目录中只有单个文件,这很有用。
布局文件中的按钮图例必须可以通过布局类中的 rev_xmodmap 字典进行翻译。这允许使用较短的按钮标签来正确设计 ASCII 键盘布局。如果布局文件中的按钮标签在 rev_xmodmap 字典中没有条目,则会显示错误消息。测试将继续,但无法测试所有按键。因此,此类执行将以(黄色/橙色)警告结束(请参见下面的屏幕截图,其中包含有关布局加载和测试报告的警告)。
请随意将您自己的特定布局文件贡献到布局目录中...
测试结束时会生成带有摘要的单行报告:
以下文件:
希望它有帮助...
版本 2017.07.27 - 2017 年首次 GitHub 发布
关键字:键盘、测试、kbdtst、布局、kbd-tst、python、xinput、xmodmap