libinput debounce не работает (двойные клики вместо одиночных)

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

У меня есть мышь плохого качества (Razer Basilisk V3 X Hyperspeed), которая стоила для меня слишком много, чтобы заменить ее на еще более дорогую мышь более высокого качества, и я хотел бы попробовать исправить ее проблемы с помощью программного обеспечения.

У нее много проблем:

  • чем быстрее я прокручиваю, тем вероятнее, что мышь отправит два события прокрутки: одно в правильном направлении, другое в противоположном. Это значит, что очень быстрая прокрутка приводит к тому, что контейнер прокрутки просто дрожит и остается примерно на одном и том же вертикальном уровне прокрутки. Этого не происходит на Windows (но я не использую Windows).
  • совсем недавно основной клик стал срабатывать дважды более чем в половине случаев, из-за чего мышь практически стала непригодной к использованию.
  • при перетаскивании мышь иногда отправляет ложное событие отпуска, отменяя перетаскивание на полпути. Это невозможно реально дебаунсить, но, возможно, программное обеспечение может задерживать все отпускания на несколько миллисекунд, чтобы проверить, будет ли нажатие сразу после этого?

libinput предположительно дебаунсит быстрые события в соответствии с некоторыми предыдущими ответами на этот вопрос, но мои проблемы подтверждают, что это не так на моем компьютере. Как я могу настроить задержку дебаунса? Я использую Linux Mint Cinnamon с Xorg и libinput 1.25.0.

Ответ или решение

Когда речь идет о проблемах с качеством мыши, особенно с такой, как Razer Basilisk V3 X Hyperspeed, решение задач через настройку программного обеспечения может оказаться более доступным и экономически целесообразным, чем ее замена. Ваши проблемы с двойными кликами, случайными событиями прокрутки и некорректной работой при перетаскивании могут быть улучшены путём корректировки параметров, связанных с дебаунсом (debounce) в libinput.

Понимание проблемы

1. Двойные клики: Ваша мышь, похоже, генерирует больше нажатий, чем необходимо, что приводит к нежелательной активации двойного клика. Это может быть связано с низким качеством переключателей в конструкции устройства.

2. Проблемы с прокруткой: Возникшие при быстрой прокрутке проблемы также могут быть проявлением некорректного времени срабатывания мыши, что вызывает дублирование событий.

3. Прерывание перетаскивания: Активация события отпускания без фактического отключения кнопки может свидетельствовать о необходимости обработки событий на программном уровне.

Решения и настройки libinput

Хотя libinput должен обеспечивать некоторые механизмы дебаунса, его возможности могут не покрывать все ваши потребности. Изменение настроек может быть сложным, так как настройки дебаунса непосредственно не доступны через интерфейсы libinput. Однако рассмотрим несколько возможных путей решения:

1. Настройки debounce:

К сожалению, в libinput нет встроенной настройки для контроля времени дебаунса. Однако вы можете проверить и изменить параметры устройства в конфигурационных файлах Xorg. Создайте файл конфигурации, например /etc/X11/xorg.conf.d/99-mouse.conf, и добавьте следующие строки:

Section "InputClass"
    Identifier "MyMouse"
    MatchProduct "Razer Basilisk V3 X Hyperspeed"
    Option "ButtonMapping" "1 2 3"
    Option "DragLockButtons" "2"
    Option "ScrollMethod" "button"
    Option "ClickMethod" "click"
EndSection

2. Использование утилит для настройки мыши:

Программное обеспечение, такое как imwheel, может помочь вам настроить поведение прокрутки. Вы можете установить его с помощью:

sudo apt install imwheel

Затем создайте конфигурационный файл ~/.imwheelrc и добавьте настройки:

".*"
None, Up, Button4
None, Down, Button5

Эти параметры настроят поведение прокрутки с использованием кнопок мыши, что может помочь устранить нежелательные события.

3. Использование другого программного обеспечения:

Если libinput и Xorg не обеспечивают желаемого результата, попробуйте использовать xorg-xinput для настройки параметров устройства. Вы можете получить ID мыши и изменить её свойства:

xinput list
xinput set-prop <device_id> <property_name> <value>

4. Дебаунс на уровне пользовательского интерфейса:

Если ваша проблема с двойными кликами не решается с помощью libinput, возможно, нужно рассмотреть возможность использования программного обеспечения на уровне пользовательского интерфейса для "задержки" кликов. Приложения, такие как xvkbd, могут быть использованы для перехвата событий и создания пользовательских задержек.

Заключение

Хотя ситуация с использованием низкокачественной мыши действительно затруднительна, вышеуказанные варианты могут значительно улучшить ее работу в вашей системе Linux Mint с Xorg. Экспериментируя с конфигурациями и используя дополнительные утилиты, вы можете настроить механизм работы мыши так, чтобы минимизировать нежелательные двойные клики и обеспечить более плавную работу при прокрутке и перетаскивании. Со временем это позволит вам преодолеть сложности без необходимости инвестировать в новую мышь.

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

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