Сопоставление двух кнопок с действием ScrollButton

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

Я использую Logitech Trackman на X Windows. Trackman имеет следующую стандартную настройку кнопок:

вставьте описание изображения здесь

Что я хочу, так это чтобы обе кнопки 8 и 9 включали прокрутку. То есть, если я зажму любую из кнопок 8 или 9 и буду двигать шарик вверх и вниз, страница должна прокручиваться так, как будто я использовал колесо прокрутки мыши.

Это почти работает:

Section "InputClass"
  Identifier "Logitech USB Trackball"
  MatchProduct "Logitech USB Trackball"
  Driver "libinput"
  Option "ButtonMapping" "1 2 3 4 5 6 7 9 9"
  Option "Scrollmethod" "button"
  Option "ScrollButton" "9"
EndSection

Если я проверяю ButtonMapping с помощью xev, то показывает, что нажатие любой из маленьких кнопок регистрируется как 9.

Однако ScrollButton этого не учитывает. Она все еще прокручивает только когда я зажимаю правую кнопку, т.е. оригинальную 9. Она не прокручивает, когда я зажимаю левую кнопку, т.е. оригинальную 9, которую я переназначил на 8.

Существует ли способ добиться того, что я хочу, или это просто невозможно с libinput?

2024-08-09 – обновление с результатом xinput

Device 'Logitech USB Trackball':
    Device Enabled (193):   1
    Coordinate Transformation Matrix (195): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Natural Scrolling Enabled (328):   0
    libinput Natural Scrolling Enabled Default (329):   0
    libinput Scroll Methods Available (330):    0, 0, 1
    libinput Scroll Method Enabled (331):   0, 0, 1
    libinput Scroll Method Enabled Default (332):   0, 0, 1
    libinput Button Scrolling Button (333): 9
    libinput Button Scrolling Button Default (334): 8
    libinput Button Scrolling Button Lock Enabled (335):    0
    libinput Button Scrolling Button Lock Enabled Default (336):    0
    libinput Rotation Angle (337):  0.000000
    libinput Rotation Angle Default (338):  0.000000
    libinput Accel Speed (339): 0.000000
    libinput Accel Speed Default (340): 0.000000
    libinput Accel Profiles Available (341):    1, 1
    libinput Accel Profile Enabled (342):   1, 0
    libinput Accel Profile Enabled Default (343):   1, 0
    libinput Left Handed Enabled (344): 0
    libinput Left Handed Enabled Default (345): 0
    libinput Send Events Modes Available (313): 1, 0
    libinput Send Events Mode Enabled (314):    0, 0
    libinput Send Events Mode Enabled Default (315):    0, 0
    Device Node (316):  "/dev/input/event5"
    Device Product ID (317):    1133, 50184
    libinput Drag Lock Buttons (346):   <нет элементов>
    libinput Horizontal Scroll Enabled (347):   1
    libinput Scrolling Pixel Distance (348):    15
    libinput Scrolling Pixel Distance Default (349):    15
    libinput High Resolution Wheel Scroll Enabled (350):    1

2024-09-26 – обновление с xinput во второй раз

$ xinput --set-button-map 9 1 2 3 4 5 6 7 9 9

$ xinput --list-props 9
Device 'Logitech USB Trackball':
        Device Enabled (193):   1
        Coordinate Transformation Matrix (195): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (328):       0
        libinput Natural Scrolling Enabled Default (329):       0
        libinput Scroll Methods Available (330):        0, 0, 1
        libinput Scroll Method Enabled (331):   0, 0, 1
        libinput Scroll Method Enabled Default (332):   0, 0, 1
        libinput Button Scrolling Button (333): 9
        libinput Button Scrolling Button Default (334): 8
        libinput Button Scrolling Button Lock Enabled (335):    0
        libinput Button Scrolling Button Lock Enabled Default (336):    0
        libinput Rotation Angle (337):  0.000000
        libinput Rotation Angle Default (338):  0.000000
        libinput Accel Speed (339):     0.000000
        libinput Accel Speed Default (340):     0.000000
        libinput Accel Profiles Available (341):        1, 1
        libinput Accel Profile Enabled (342):   1, 0
        libinput Accel Profile Enabled Default (343):   1, 0
        libinput Left Handed Enabled (344):     0
        libinput Left Handed Enabled Default (345):     0
        libinput Send Events Modes Available (313):     1, 0
        libinput Send Events Mode Enabled (314):        0, 0
        libinput Send Events Mode Enabled Default (315):        0, 0
        Device Node (316):      "/dev/input/event3"
        Device Product ID (317):        1133, 50184
        libinput Drag Lock Buttons (346):       <нет элементов>
        libinput Horizontal Scroll Enabled (347):       1
        libinput Scrolling Pixel Distance (348):        15
        libinput Scrolling Pixel Distance Default (349):        15
        libinput High Resolution Wheel Scroll Enabled (350):    1

версии

Мне удалось воспроизвести это на двух системах:

  • Linux Mint 21.3
  • X.Org X Server 1.21.1.4

.. и …

  • FreeBSD 14.1-RELEASE-p4
  • X.Org X Server 1.21.1.13

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

Как настроить две кнопки для действия ScrollButton в X Windows на Logitech Trackman

Настройка кнопок для выполнения специфических функций ввода на устройствах, таких как трекбол Logitech Trackman, может быть сложной задачей, особенно в среде X Windows. В данной статье мы рассмотрим, как правильно настроить две кнопки (8 и 9) для активации прокрутки, имитируя действия прокрутки колеса мыши.

Описание проблемы

При настройке вашего Logitech Trackman через libinput вы столкнулись с проблемой, где только кнопка, изначально привязанная к номеру 9, отвечает за прокрутку. При этом, нажатие клавиши 8, переназначенной на 9, не обеспечивает нужного результата. Мы разберем, как можно решить эту проблему с помощью правильной конфигурации.

Настройка конфигурации Xorg

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

1. Создание файла конфигурации

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

sudo nano /etc/X11/xorg.conf.d/99-logitech-trackman.conf

2. Добавление параметров

Вставьте в созданный файл следующий код:

Section "InputClass"
    Identifier "Logitech USB Trackball"
    MatchProduct "Logitech USB Trackball"
    Driver "libinput"
    Option "ButtonMapping" "1 2 3 4 5 6 7 8 9"
    Option "ScrollMethod" "button"
    Option "ScrollButton" "8" # Установите 8 в качестве кнопки прокрутки
EndSection

Обратите внимание, что мы назначили кнопку 8 для прокрутки.

3. Применение изменений

После этого сохраните файл и перезапустите сервер X, чтобы изменения вступили в силу. Это можно сделать, выбрав «Перезагрузить сеанс» в вашем графическом окружении или использовать комбинацию клавиш клавиш (например, Ctrl + Alt + Backspace, если она включена).

Проверка изменений

Вы можете использовать утилиту xev для проверки, какие события регистрируются при нажатии кнопок:

xev

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

Настройка через xinput

Кроме настройки файла Xorg, вы можете управлять вашей конфигурацией через xinput. Для этого выполните команды:

  1. Сначала получите идентификатор устройства:
xinput list
  1. Затем установите новое отображение кнопок:
xinput --set-button-map <ID> 1 2 3 4 5 6 7 8 8

Замените <ID> на ID вашего Trackman, который отображается в списке.

Заключение

Таким образом, следуя этим шагам, вы сможете настроить ваш Logitech Trackman так, чтобы обе кнопки 8 и 9 выполняли действие прокрутки. В случае, если изменения всё равно не вступают в силу, рекомендуется обратиться к документации libinput или к сообществу разработчиков, чтобы узнать о возможных ограничениях, связанных с конкретной версией драйвера или X Server.

Дополнительные ресурсы

  • Документация libinput: libinput Documentation
  • Форумы сообществ Linux: обсуждение и решение проблем могут предоставить полезные советы.

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

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

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