У меня проблема с повторными нажатиями клавиш. Когда я использую медиа-клавишу на своей клавиатуре, например, паузу (для чего мне на самом деле нужно нажать две клавиши, одну справа от клавиши alt, я буду называть ее модификатором, и F7), команда паузы, отправленная в медиаплеер, повторяется, что приводит к циклу паузы/воспроизведения. Это, очевидно, нежелательно. Если я нажимаю клавиши очень быстро, я могу избежать повторения, но я не всегда могу правильно рассчитать время. Я думаю, это как-то связано с тем, что модификатор повторяется и не отпускается после отправки команды. Вот вывод xev
:
Outer window is 0x5200001, inner window is 0x5200002
...
MappingNotify event, serial 37, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16607317, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 37, synthetic NO, window 0x5200001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 38, synthetic NO, window 0x5200001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 38, synthetic NO, window 0x0,
keys: 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyPress event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16607493, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16607995, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16607995, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16608025, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16608025, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 38, synthetic NO, window 0x5200001,
root 0x506, subw 0x0, time 16608056, (714,467), root:(864,619),
state 0x10, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
...
И нажатие/отпускание клавиши повторяется до тех пор, пока я не нажму другую клавишу.
Итак, как мне это исправить, сохраняя повтор на всех "нормальных" клавишах включенным? Я использую Ubuntu 19.04
решение1
Возможность настройки задержки и скорости дляиндивидуальные ключитолько, если это вообще возможно, не показываются пользователю. Общие настройки задержки и скорости клавиатуры, однако, можно найти в разделе «Универсальный доступ» в «Настройках». Нажмите «Повторить клавиши». Появится диалоговое окно, позволяющее вам настроить «Задержку» (т. е. как долго нужно удерживать клавишу, прежде чем она начнет повторяться) и Скорость (т. е. как быстро будет повторяться клавиша).
Значение по умолчанию для "Delay" составляет 500 мс, т. е. полсекунды. Для человека без инвалидности этого вполне достаточно, чтобы нажать и отпустить клавишу Pause без повторов. Вероятно, в какой-то момент у вас было установлено очень низкое значение. Однако если проблема со способностью связана с тем, что время по умолчанию не работает, попробуйте увеличить значение Delay или вообще отключить его.