Почему ничего не связано со скоростью прокрутки в 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 список реквизитов 14 | grep -i 'свиток'
    Включена ли естественная прокрутка libinput (289):   0
    libinput Естественная прокрутка включена по умолчанию (290):   0
    Доступные методы прокрутки libinput (293):    0, 0, 1
    Метод прокрутки libinput включен (294):   0, 0, 0
    Метод прокрутки libinput включен по умолчанию (295):   0, 0, 0
    Кнопка прокрутки кнопки libinput (727): 2
    Кнопка прокрутки libinput Кнопка по умолчанию (728): 2
    Горизонтальная прокрутка libinput включена (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

2 ответа

Не исправлю, по крайней мере, это текущий статус с 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
      sudo journalctl -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.hwdb
      
    3. Скопируйте из шага (1) эти строки и добавьте их в новый файл, добавьте запись угла щелчка колесика и установите угол по своему усмотрению (по умолчанию =15 градусов / щелчок, как целочисленное значение), как показано ниже:

                 # Microsoft Comfort Mouse 4500
      mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:
       MOUSE_DPI=1000@125
       MOUSE_WHEEL_CLICK_ANGLE=15
      

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

                 mouse:usb:v <VendorID> p <ProductID> :name: <DeviceName> :
      
    4. Сохрани и закрой

      Ctrl+ O, Ctrl+X

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

                 sudo systemd-hwdb update
      sudo udevadm trigger /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
      mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:
       MOUSE_DPI=1000@125
       MOUSE_WHEEL_CLICK_ANGLE=15
       MOUSE_WHEEL_CLICK_COUNT=24
      

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

Будущее, наборы инструментов GUI (исправление высокого уровня)

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

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

    В связанном выше отчете об ошибке есть список отчетов об ошибках из наборов графического интерфейса.

udevправило работает для меня с:

      # Microsoft Comfort Mouse 4500
mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:
 MOUSE_DPI=1000@125
 MOUSE_WHEEL_CLICK_ANGLE=35

Спасибо

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