使用 PS2 到 USB 适配器时将 CapsLock 重新映射到 Control?

使用 PS2 到 USB 适配器时将 CapsLock 重新映射到 Control?

设置

我正在尝试重新映射该CapsLock键,以便Control使用带有 PS2 转 USB 适配器的 Model M 键盘(带有指点杆)。

问题

如果现在重新映射的控制键保持按下状态超过半秒左右,它将停止修改后续字符。也就是说,如果我按下control,按下并释放x,等待半秒钟,按下并释放c,我得到的是control-x c而不是control- x control- c。您可以想象,这对于 emacs 和 bash 用户来说可能是一个问题!

这个问题确实不是在常规 USB 键盘、内置笔记本电脑键盘、Windows 中,或者如果我不将大写锁定重新映射到控制时,就会出现这种情况。

我用过系统设置 > 输入设备 > 键盘在 Kubuntu 中进行重新映射,我也直接使用 xmodmap。行为相同。由于 setkeycodes 对 USB 键盘没有影响,因此我无法使用它。

我不感兴趣的解决方法:

  • 使用 Unicomp USB 键盘。虽然弹力弹簧机制与 IBM/Lexmark 的相同,但指点杆的质量较差,几乎无法使用。鼠标键也不可靠。真可惜,因为这本来是正确的解决方案。此外,他们把外形改得丑陋不堪。
  • 使用无屈曲弹簧键盘。显然不是一个选择!
  • 不重新映射按键。这违背我的信仰。
  • 放弃 Linux,使用 Windows(不存在这个问题)。这也违背我的宗教信仰。
  • 放弃 Linux,使用 OSX。OSX 有同样的问题,而且它违背我的信仰。

解决方案一正在考虑建造一个这些并以此方式进行重新映射,但这有点极端。我宁愿用软件来做。

答案1

后来发现这是硬件问题。后来发现另一个 PS2-USB 适配器没有这个问题,于是换了那个品牌,问题就解决了。

运行良好的设备由 Belkin 制造(实际上是重新包装),并标明自己是

ID 0d3d:0001 Tangtop Technology Co., Ltd HID Keyboard

(是的,它只说“键盘”,但lsusb -v显然表明它既有键盘又有鼠标描述符)。

答案2

您可能能够通过找出 PS/2 -> USB 适配器和键盘的各自身份来解决问题。

尝试命令

lsusb

对我来说,它表明,除其他外,

Bus 001 Device 018: ID 04d9:1400 Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller

USB 标识码 (04d9) 的第一部分标识制造商,第二部分标识产品。

现在,您可以使用该信息来发现连接到该适配器的设备的身份,方法是输入

xinput list --long | grep 04d9

我得到的是

↳ HID 04d9:1400                             id=9    [slave  pointer  (2)]

↳ HID 04d9:1400                             id=8    [slave  keyboard (3)]

我没有连接到适配器的键盘,但有我的旧轨迹球鼠标 Logitech TrackMan Marble FX。

所以我想了解更多有关上面标识的设备的信息id=9,并且我使用xinput命令来获取我想要的信息:

xinput list-props 9

清单的第一行是

Device 'HID 04d9:1400':

清单还显示了设备的属性,我使用这些属性来构建修改这些属性所需的命令。我最终得到了两个命令:

xinput set-int-prop "pointer:HID 04d9:1400" "Evdev Wheel Emulation Button" 8 3
xinput set-int-prop "pointer:HID 04d9:1400" "Evdev Wheel Emulation" 8 1

第一行将 TrackMan 鼠标的按钮 3 变成滚轮模拟按钮。(按钮 4 又名“8”似乎根本不起作用)。命令中的“指针”指的是鼠标,以避免与可以连接到同一适配器的“键盘”混淆(不在我的系统中)。

类似地,你也可以使用以下命令修改键盘的属性

xinput set-int-prop "keyboard:HID (keyboard usb-identifier) (property to be set)

等与其他个人财产

相关内容