Получение тысяч событий нажатия и отпускания клавиши для клавиши 204

Вопрос или проблема

ОС – 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, тем самым предотвратив ее дальнейшую обработку.

  1. Убедитесь, что xmodmap установлен. Если его нет, установите его с помощью:

    sudo apt install x11-xserver-utils
  2. Определите ваше текущее состояние клавиатуры, выполнив:

    xmodmap -pke > ~/.Xmodmap
  3. Откройте файл ~/.Xmodmap в редакторе, например:

    nano ~/.Xmodmap
  4. Найдите строку, соответствующую ключу 204, и измените ее, чтобы она ничего не делала, например:

    keycode 204 = NoSymbol
  5. Примените изменения:

    xmodmap ~/.Xmodmap

Теперь ваша система не должна обрабатывать события для клавиши 204.

3. Визуальные инструменты для отображения текущих нажатых клавиш

Для мониторинга текущих нажатий клавиш вы можете воспользоваться следующими инструментами:

  • xev — уже упомянутый вами инструмент, который позволяет видеть события клавиш в реальном времени.
  • Key-mon — графический инструмент, который показывает нажатия на клавиши в реальном времени в виде всплывающего окна. Установить его можно через apt:
    sudo apt install key-mon

4. Объяснение работы xinput при отключении устройств

xinput отображает устройства на уровне X-сервера, который может продолжать отслеживать состояния устройств даже после их отключения. Это может происходить из-за того, что X-сервер уже зарегистрировал устройства в момент их подключения. Однако реальное состояние можно проверить с помощью утилиты lsusb для USB-устройств или использования dmesg для доступа к журналу сообщений ядра.

Если проблема не исчезнет после выполнения шагов, возможно, стоит проверить настройки вашей среды рабочего стола или конфигурации ГОРА для выявления возможных конфликтов. Также может помочь запуск системы в безопасном режиме с минимальным количеством подключенных девайсов для дальнейшей диагностики.

Следуя данным рекомендациям, вы сможете эффективно справиться с проблемой нажатия клавиш и оптимизировать работу системы.

Оцените материал
Добавить комментарий

Капча загружается...