Вопрос или проблема
ОС – Debian 12. Менеджер окон – MATE.
Получаю десятки тысяч сообщений, подобных этому, в xev:
Событие нажатия клавиши, серийный номер 54, синтетическое НЕТ, окно 0xca00001,
корень 0x421, подокно 0x0, время 1421331971, (-1246,908), корень:(1255,1254),
состояние 0x0, код клавиши 204 (символ клавиши 0x0, NoSymbol), тот же экран ДА,
XLookupString возвращает: 0 байт:
XmbLookupString возвращает: 0 байт:
XFilterEvent возвращает: Ложь
Событие отпускания клавиши, серийный номер 54, синтетическое НЕТ, окно 0xca00001,
корень 0x421, подокно 0x0, время 1421332005, (-1246,908), корень:(1255,1254),
состояние 0x0, код клавиши 204 (символ клавиши 0x0, NoSymbol), тот же экран ДА,
XLookupString возвращает: 0 байт:
XFilterEvent возвращает: Ложь
Я отключил свою клавиатуру и мышь, и они продолжают поступать.
xinput показывает только мою мышь и клавиатуру, хотя по какой-то причине они перечислены дважды, и мышь с клавиатурой по-прежнему отображаются, даже когда они отключены.
Как мне решить эту проблему без перезагрузки? Могу ли я как-то полностью отключить клавишу 204?
Также есть ли какой-нибудь визуальный инструмент, показывающий, какие клавиши в настоящее время нажаты?
И почему xinput показывает мои устройства, даже когда они отключены?
Ответ или решение
Решение проблемы с событиями нажатия клавиш в Debian 12 с MATE
Если вы сталкиваетесь с десятками тысяч сообщений о нажатии и отпускании клавиши 204 (ключа, который, по-видимому, не предоставляет символов), и даже после отключения клавиатуры и мыши события продолжают появляться, мы можем предпринять несколько шагов для диагностики и решения этой проблемы.
1. Причины возникновения проблемы
События клавиш, такие как KeyPress и KeyRelease, могут быть вызваны несколькими факторами, включая:
- Полифонические и виртуальные устройства, которые могут продолжать генерировать события.
- Установленные параметры конфигурации, указывающие на потенциальные конфликты в обработке устройств ввода.
- Неисправности оборудования, остающиеся даже после отключения.
Ваше наблюдение о том, что xinput
обнаруживает устройства даже после отключения, может объясняться рабочими конфигурациями X-сервера, загруженными в память.
2. Как отключить клавишу 204
Хотя не существует прямого способа отключить конкретные клавиши в Linux, вы можете использовать xmodmap
, чтобы заблокировать клавишу 204, тем самым предотвратив ее дальнейшую обработку.
-
Убедитесь, что
xmodmap
установлен. Если его нет, установите его с помощью:sudo apt install x11-xserver-utils
-
Определите ваше текущее состояние клавиатуры, выполнив:
xmodmap -pke > ~/.Xmodmap
-
Откройте файл
~/.Xmodmap
в редакторе, например:nano ~/.Xmodmap
-
Найдите строку, соответствующую ключу 204, и измените ее, чтобы она ничего не делала, например:
keycode 204 = NoSymbol
-
Примените изменения:
xmodmap ~/.Xmodmap
Теперь ваша система не должна обрабатывать события для клавиши 204.
3. Визуальные инструменты для отображения текущих нажатых клавиш
Для мониторинга текущих нажатий клавиш вы можете воспользоваться следующими инструментами:
- xev — уже упомянутый вами инструмент, который позволяет видеть события клавиш в реальном времени.
- Key-mon — графический инструмент, который показывает нажатия на клавиши в реальном времени в виде всплывающего окна. Установить его можно через apt:
sudo apt install key-mon
4. Объяснение работы xinput
при отключении устройств
xinput
отображает устройства на уровне X-сервера, который может продолжать отслеживать состояния устройств даже после их отключения. Это может происходить из-за того, что X-сервер уже зарегистрировал устройства в момент их подключения. Однако реальное состояние можно проверить с помощью утилиты lsusb
для USB-устройств или использования dmesg
для доступа к журналу сообщений ядра.
Если проблема не исчезнет после выполнения шагов, возможно, стоит проверить настройки вашей среды рабочего стола или конфигурации ГОРА для выявления возможных конфликтов. Также может помочь запуск системы в безопасном режиме с минимальным количеством подключенных девайсов для дальнейшей диагностики.
Следуя данным рекомендациям, вы сможете эффективно справиться с проблемой нажатия клавиш и оптимизировать работу системы.