Почему в xinput для мыши Microsoft Comfort Mouse 4500 нет ничего, связанного со скоростью прокрутки?

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

Не могли бы вы просветить меня?

Ubuntu 18.04.1 LTS x64, GNOME 3.28.2 (не уверен, что это имеет значение). Своевременно.

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=11   [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Comfort Mouse 4500   id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ HP TrueVision HD Camera: HP Tru           id=8    [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ HP Wireless hotkeys                       id=12   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=13   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® Comfort Mouse 4500   id=15   [slave  keyboard (3)]
    ↳ Chicony USB Keyboard                      id=16   [slave  keyboard (3)]
    ↳ Chicony USB Keyboard                      id=17   [slave  keyboard (3)]

Подробности мыши в разделе «указатели»:

$ xinput list-props 14
Device 'Microsoft Microsoft® Comfort Mouse 4500':
    Device Enabled (142):   1
    Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Natural Scrolling Enabled (289):   0
    libinput Natural Scrolling Enabled Default (290):   0
    libinput Scroll Methods Available (293):    0, 0, 1
    libinput Scroll Method Enabled (294):   0, 0, 0
    libinput Scroll Method Enabled Default (295):   0, 0, 0
    libinput Button Scrolling Button (727): 2
    libinput Button Scrolling Button Default (728): 2
    libinput Middle Emulation Enabled (729):    0
    libinput Middle Emulation Enabled Default (730):    0
    libinput Accel Speed (296): -0.258993
    libinput Accel Speed Default (297): 0.000000
    libinput Accel Profiles Available (731):    1, 1
    libinput Accel Profile Enabled (732):   1, 0
    libinput Accel Profile Enabled Default (733):   1, 0
    libinput Left Handed Enabled (298): 0
    libinput Left Handed Enabled Default (299): 0
    libinput Send Events Modes Available (266): 1, 0
    libinput Send Events Mode Enabled (267):    0, 0
    libinput Send Events Mode Enabled Default (268):    0, 0
    Device Node (269):  "/dev/input/event16"
    Device Product ID (270):    1118, 1900
    libinput Drag Lock Buttons (300):   <no items>
    libinput Horizontal Scroll Enabled (301):   1

Только части, связанные с прокруткой:

$ xinput list-props 14 | grep -i 'scroll'
    libinput Natural Scrolling Enabled (289):   0
    libinput Natural Scrolling Enabled Default (290):   0
    libinput Scroll Methods Available (293):    0, 0, 1
    libinput Scroll Method Enabled (294):   0, 0, 0
    libinput Scroll Method Enabled Default (295):   0, 0, 0
    libinput Button Scrolling Button (727): 2
    libinput Button Scrolling Button Default (728): 2
    libinput Horizontal Scroll Enabled (301):   1

Подробности мыши в разделе «клавиатура»:

$ xinput list-props 15
Device 'Microsoft Microsoft® Comfort Mouse 4500':
    Device Enabled (142):   1
    Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (266): 1, 0
    libinput Send Events Mode Enabled (267):    0, 0
    libinput Send Events Mode Enabled Default (268):    0, 0
    Device Node (269):  "/dev/input/event16"
    Device Product ID (270):    1118, 1900
3
задан 23 October 2018 в 18:00

1 ответ

Не исправит, по крайней мере, это текущий статус с libinput

  • Отчет об ошибке восходящего потока: freedesktop - libinput - Поддержка настройки скорости прокрутки # 185

    1. Производитель мышей использует другое высокое разрешение реализации прокрутки
    2. Скорость прокрутки должна быть переменной и контролироваться приложениями в зависимости от контекста
  • Старое решение работало с evdev

  • Метод настройки: xinput, xorg.conf .d

Временное решение с использованием Udev HWDB (исправление низкого уровня)

  • (1) Настройка HWDB в udev для конкретной модели мыши.

    Источник: U&L: изменение скорости прокрутки с помощью libinput

    Подтверждаю, это текущее решение из репозитория исходного кода udev

    1. Проверьте идентификацию мыши: идентификатор производителя, идентификатор продукта, имя устройства

      Пока мышь подключена

      sudo lsusb
      

      Выполните одну из приведенных ниже команд, затем снова подключите мышь

      sudo udevadm monitor -u
      судожурналctl -k -b -f
      

      И проверьте systemd/hwdb.d/70-mouse.hwdb или найдите локальный файл /lib/udev/hwdb.d/70-mouse.hwdb в вашей системе . Поиск такого же или похожего устройства.

    2. Откройте терминал, создайте файл 71-mouse-local.hwdb

      sudo nano /etc/udev/hwdb.d/71-mouse-local.хвдб
      
    3. Скопируйте из шага (1) эти строки и добавьте их в новый файл. Добавьте запись угла поворота колесика и установите нужный угол (по умолчанию = 15 градусов/щелчок, целочисленное значение), как показано ниже:

      # Мышь Microsoft Comfort 4500
      мышь:usb:v045ep076c:имя:Microsoft Microsoft® Comfort Mouse 4500:
      МЫШЬ_DPI=1000@125
      MOUSE_WHEEL_CLICK_ANGLE=15
      

      Если вы не можете найти свое устройство в 70-mouse.hwdb, создайте его в этом формате с информацией, собранной на шаге (1)

      mouse:usb:v  p < ProductID> :name:  :
      
    4. Сохранить и закрыть

      Ctrl+O , Ctrl+X

    5. Обновить базу данных оборудования udev, активировать изменение для соответствующего узла событий

      обновление sudo systemd-hwdb
      sudo udevadm триггер /dev/input/event16
      

      event16, как сообщается в выводе xinput.

    Примечание

    Этот ответ настроен для случая OP, но может быть настроен для другой модели. Уже израсходовал его, чтобы быть более общим.

    • Полные инструкции для основной ветки разработки находятся здесь: systemd/hwdb.d/70-mouse.hwdb или найдите локальный файл 70-mouse.hwdb в вашей системе. Также вы можете посмотреть другие расширенные функции там.

    • Существует MOUSE_WHEEL_CLICK_COUNT, который переопределяет MOUSE_WHEEL_CLICK_ANGLE. Используйте его, когда параметр угла недостаточно точен.

      MOUSE_WHEEL_CLICK_COUNT по умолчанию=24 щелчка/поворот или щелчок/360 градусов, принимает целочисленное значение

      Пример:

      # Microsoft Comfort Mouse 4500
      мышь:usb:v045ep076c:имя:Microsoft Microsoft® Comfort Mouse 4500:
      МЫШЬ_DPI=1000@125
      MOUSE_WHEEL_CLICK_ANGLE=15
      MOUSE_WHEEL_CLICK_COUNT=24
      

      MOUSE_WHEEL_CLICK_ANGLE является обязательным по соображениям совместимости, даже если его значение не действует с объявленным MOUSE_WHEEL_CLICK_COUNT.

В будущем наборы инструментов для графического интерфейса пользователя (исправление высокого уровня)

  • (2) Вероятно, будут реализованы на уровне наборов инструментов для графического интерфейса. Справедливые надежды, что когда дело доходит до сотрудничества между большими бесплатными проектами сообщества, как в случае с произвольным вводом Unicode, это было реализовано только в GTK.

    Некоторые приложения этого не ждут, например, некоторые браузеры и игры (Firefox, Chromium, игры SDL и т. д.).

    В приведенном выше отчете об ошибках есть список отчетов об ошибках из наборов GUI.

3
ответ дан 18 April 2020 в 11:09

Другие вопросы по тегам:

Похожие вопросы: