Одноклавишные нажатия Linux запускают комбинации из нескольких клавиш - PullRequest
2 голосов
/ 28 декабря 2011

Я понимаю, что новые клавиатуры можно заказать онлайн, но теперь, когда эта проблема оказалась сложной, я полностью очарован ею.

Многие старые клавиатуры ноутбуков из-за их износа имеют устойчивые шорты, которые заставляют реагировать несколько клавиш при нажатии одной клавиши. Например, на компьютере моей младшей сестры, если вы нажмете «r», система выведет «vr», «i» выведет «i» и т. Д.

Если предположить, что пользователь не является опытным пользователем vim / emacs, клавиатура все еще может быть восстановлена. Похоже, что если бы драйвер клавиатуры был изменен таким образом, чтобы нажатие клавиши «r» приводило к тому, что компьютер принимал «backspace r», то «v» исчезало бы и больше не доставляло хлопот.

Xmodmap XKB и другие системы, похоже, предполагают, что каждое нажатие одной клавиши приведет к одной команде. Кто-нибудь понимает отсутствующую ссылку, где более чем один символ может прийти от одного нажатия клавиши? Кажется, в стеке есть много мест, где это можно осуществить, но ни одно из них не особенно четко задокументировано. Еще одним забавным фактом является то, что вы не можете принудительно вызвать это в редакторе сочетаний клавиш Ubuntu, Ubuntu не позволит вам вводить изменения там, исходя из того, что «это сделает невозможным ввод».

Взлом в xev показывает, что компьютер считает, что когда вы нажимаете и отпускаете «r», он получает событие нажатия клавиши для «v», затем событие нажатия клавиши для «r», затем событие освобождения ключа для «v», а затем событие для 'р'. Если бы вы могли изменить конфигурацию так, чтобы игнорировать первое нажатие клавиши, если до нажатия следующей клавиши не было отпущено соответствующей клавиши, это также сработало бы.

...