- Вопрос или проблема
- версии
- Ответ или решение
- Как настроить две кнопки для действия ScrollButton в X Windows на Logitech Trackman
- Описание проблемы
- Настройка конфигурации Xorg
- 1. Создание файла конфигурации
- 2. Добавление параметров
- 3. Применение изменений
- Проверка изменений
- Настройка через xinput
- Заключение
- Дополнительные ресурсы
Вопрос или проблема
Я использую 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
. Для этого выполните команды:
- Сначала получите идентификатор устройства:
xinput list
- Затем установите новое отображение кнопок:
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: обсуждение и решение проблем могут предоставить полезные советы.
Эта статья призвана помочь вам оптимизировать ваши устройства для комфортного использования, учитывая акценты на производительность и функциональность в рабочем процессе.