Я пролил пиво на свою механическую клавиатуру, и с тех пор она имеет тенденцию повторять клавишу "a" всякий раз, когда я нажимаю (да, несколько раз чистил, использовал aa спирт и т. д.). Я попытался смягчить эту проблему, используя «дребезги», но эта функция временно отключает все клавиши после их повторного нажатия aa .Другими словами, «отскок» мешает моей способности быстро печатать всякий раз, когда мне нужно ввести слово с повторяющейся буквой (<как «т» в слове «буква») или повторить ааа медленно нажать быстро вернуться на место.
(хорошо, я не буду оставлять повторы в оставшемся тексте, но вы можете видеть, что это происходит с частотой m aa denning)
В случае, если это помогает, я использовал xev для точного определения какую последовательность команд получает ОС, и похоже, что каждый раз, когда "a" повторяется, это связано с тем, что клавиатура отправляет желаемую последовательность несколько раз (KeyPress, затем KeyRelease, затем KeyPress, затем снова KeyRelease). Другими словами, клавиша не застревает в состоянии «Нажатие клавиши». Он повторяется , как будто я нажимал и отпускал его несколько раз.
Я видел, как другие люди задавали тот же вопрос, но решения на самом деле не то, что я ищу. Например, решение, предложенное в первом ответе на этот вопрос , отключает автоповтор, но это не сработает для меня, потому что «a» не застревает в состоянии «Pressed». Второй ответ в том же вопросе также не работает, потому что он отключает всю клавиатуру после нажатия проблемной клавиши. Я просто хочу временно отключить клавишу «a» и только клавишу «a» на очень короткий период времени (~ 50 мс).
К счастью, мне редко приходится повторять букву «а» при наборе текста, поэтому даже решение, использующее что-то вроде автокоррекции, подойдет мне.Я бы предпочел использовать решение, использующее 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» для идентификатора клавиатуры, и я оставил код клавиши 38. Тем не менее, ключ все еще дублируется.