我把啤酒洒在我的机械键盘上,因为每当我按下它时它往往会重复“ a ”键(是的,我已经清洁过几次,使用过酒精等)。我尝试使用“弹跳键”来缓解此问题,但此功能会在按下所有键后暂时禁用它们。换句话说,“弹跳键”会干扰我在需要键入带有重复字母的单词(< 就像单词“letter”中的“t”)或重复aaa快速按退格键时快速键入的能力。
(好的,我不会在其余文本中留下重复,但你可以看到它以 m a a denning 频率发生)
如果有帮助,我使用 xev 来准确确定操作系统正在接收的命令序列,看起来每次“a”重复时都是因为键盘多次发送所需的序列(KeyPress 后跟 KeyRelease,然后 KeyPress其次是 KeyRelease 再次)。换句话说,键没有停留在“KeyPress”状态。它在重复自己,好像我多次按下并释放它一样。
我见过其他人问同样的问题,但解决方案实际上并不是我正在寻找的。例如,在这个问题的第一个答案中提出的解决方案禁用自动重复,但这对我不起作用,因为“a”没有陷入“按下”状态。同一问题中的第二个答案也不起作用,因为在按下问题键后它会禁用整个键盘。我只想暂时禁用“a”键,并且只禁用“a”键一段很短的时间(~50ms)。
幸运的是,我在打字时很少需要重复字母“a”,所以即使是使用自动更正之类的解决方案也对我有用。最好,我想使用一个使用 xbindkeys 的解决方案,因为我已经在使用该包来重新映射我的鼠标按钮。
编辑:针对下面的评论,以下是“xinput list”和“xev”的输出:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SINOWEALTH Game Mouse id=9 [slave pointer (2)]
⎜ ↳ EST Gaming keyboard id=12 [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)]
↳ SINOWEALTH Game Mouse Keyboard id=10 [slave keyboard (3)]
↳ EST Gaming keyboard id=11 [slave keyboard (3)]
↳ EST Gaming keyboard id=13 [slave keyboard (3)]
↳ Eee PC WMI hotkeys id=15 [slave keyboard (3)]
↳ EST Gaming keyboard id=16 [slave keyboard (3)]
$ xev
KeyPress event, serial 37, synthetic NO, window 0x7c00001,
root 0x4e5, subw 0x0, time 188722500, (165,-16), root:(4636,676),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x7c00001,
root 0x4e5, subw 0x0, time 188722576, (165,-16), root:(4636,676),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
在尝试实施@Raffa 的建议时,我使用“3”作为键盘 ID,并将键码保留为 38。但是,键仍然重复。