Клавиша цифровой клавиатуры постоянно повторяется [дубликат]

Я пролил пиво на свою механическую клавиатуру, и с тех пор она имеет тенденцию повторять клавишу "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. Тем не менее, ключ все еще дублируется.

2
задан 24 April 2020 в 00:26

0 ответов

Другие вопросы по тегам:

Похожие вопросы: