我有一台 Microsoft 无线键盘 1000。在SpaceAlt Gr和MenuCtrl键之间,有一个键,上面画有 3 个应用程序窗口,它显示所有打开的窗口的 3D 覆盖层并循环浏览它们(在窗口下)。
事实是,我已经使用 Linux 几个月了。现在我在这个有用的地方有这个未使用的密钥。
我想将它映射到其他东西,但当我启动时xev
,该键(确切地说只有这个键)保持沉默。没有 X Window 事件,因此无法获取键码并重新映射它。
您是否知道我可以做些什么以便 X Window 跟踪此 MS 特定键的事件?
我看过在 Virtualbox VM 中的 Ubuntu 10.04 中,xev 和 showkey -k 均未检测到密钥dmesg|tail -5
提示使用密钥后尝试。但我没有收到相关消息。
答案1
扫描码被映射到键码,然后根据所用的键盘布局映射到键符。大多数按键应该已经有键码,或者至少有扫描码。没有扫描码的按键不会被内核识别;这些按键可能包括“游戏”键盘的附加按键等。
首先安装 evtest
sudo apt install evtest
运行 evtest 并选择你的键盘
sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Power Button
/dev/input/event1: AT Translated Set 2 keyboard
/dev/input/event2: VirtualPS/2 VMware VMMouse
/dev/input/event3: VirtualPS/2 VMware VMMouse
/dev/input/event4: VMware VMware Virtual USB Mouse
Select the device event number [0-4]:
并尝试按下键盘键;您应该看到扫描码被打印到输出中。如果没有,那么您需要弄清楚如何与键盘对话,它必须具有专有功能。这可能涉及编写自定义驱动程序和/或正确的 USB 通信。在 Windows 上嗅探 USB 以开始您的旅程。或者您可以换一个键盘。查看https://github.com/qmk/qmk_firmware,您可以在键盘上创建键盘映射,并从每个键中获取自定义功能。我现在正在使用 qmk 打字。
參考文獻:https://wiki.archlinux.org/index.php/extra_keyboard_keys