Настройка Kensington Slimblade в Linux

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

РЕДАКТИРОВАНИЕ: недавно я купил еще одну трекбол (ProtoArc EM03) и мне пришлось снова сделать эту настройку. Поэтому я решил написать подробное руководство о том, как настроить любое указывающее устройство в дистрибутивах на базе Ubuntu, чтобы лучше организовать информацию в этом вопросе. И я это сделал, и поскольку этот пост часто просматривается людьми, пытающимися настроить свои указывающие устройства, я решил поделиться им здесь. Вы можете получить к нему доступ по этой ссылке: https://www.reddit.com/r/Trackballs/comments/1fp7upa/how_to_configure_any_pointing_device_on_ubuntu/

—Исходный вопрос ниже—

Я только что получил трекбол Kensington Slimblade и пытаюсь его настроить. Я адаптирую его от своей старой конфигурации Logitech Marble.

Я хочу, чтобы конфигурация была следующей:

  • Левый-нижний: Левый клик
  • Левый-верхний: Назад
  • Правый-верхний: Правый клик и блокировка прокрутки шара
  • Правый-нижний: Средний клик

Конфигурация, которую я смог выставить до сих пор:

  • Левый-нижний: Левый клик
  • Левый-верхний: Средний клик
  • Правый-верхний: Правый клик и блокировка прокрутки шара
  • Правый-нижний: Назад

Это мой скрипт конфигурации:

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 1   

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 8 4 5 6 7 

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

Перед выполнением этого скрипта xev сообщает номера кнопок как:

Левый-нижний: 1, Левый-верхний: 2, Правый-верхний: 8, Правый-нижний: 3

После выполнения этого скрипта:

Левый-нижний: 1, Левый-верхний: 2, Правый-верхний: 8, Правый-нижний: 8

Таким образом, насколько я знаю, xinput set-button-map изменяет порядок кнопок. На этой странице, я узнал, что 2-ое значение соответствует средней кнопке мыши, а 8-ое – кнопке Thumb1 (обычно связанной с функцией “назад”). Поэтому я подумал, что просто должен использовать номер 3 в качестве 2-го элемента и 2 как 8-й элемент вот так:

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 3 8 4 5 6 7 2

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

Левый-нижний: 1, Левый-верхний: 3, Правый-верхний: 2, Правый-нижний: 8. 

Кто-нибудь знает, как я могу настроить конфигурацию так, как я намеревался? Я использую Ubuntu 16.04. Спасибо.

Через несколько минут после того, как я опубликовал вопрос, я нашел ответ. Вот он, на случай если кому-то это понадобится (конфигурация для Mint 18/Ubuntu 16.04):

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 0
7 8 9 
xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 8 2 4 5 6 7 3 2
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

Редактировать

После обновления до Mint 19 (дома) и Ubuntu 18.04 (в офисе) я обнаружил, что вышеуказанная конфигурация не работает. 18.04 использует другую библиотеку для таких устройств (libinput), и даже если я переустановил Evdev, некоторые опции не работают. После болезненного поиска я нашел решение.
Создайте файл с расширением .conf в папке /usr/share/X11/xorg.conf.d/. В моем случае я назвал его 10-slimblade.conf. Вставьте эту конфигурацию в файл:

Section "InputClass"
        Identifier "Kensington Kensington Slimblade Trackball"
        MatchProduct "Kensington Kensington Slimblade Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ButtonMapping" "1 8 2 4 5 6 7 3 2"
        Option "ScrollButton" "8"
        Option "ScrollMethod" "button"
        Option "MiddleEmulation" "on"
EndSection

Перезапустите сессию, и всё.

Большое спасибо! Просто чтобы немного дополнить, я смог выяснить, что кнопки на трекболе расположены так:

---------
| 2 | 8 |
---------
| 1 | 3 |
---------

И вот порядок, в котором они находятся в строке ButtonMapping:

Левый клик Средний клик Правый клик Прокрутка вверх Прокрутка вниз Прокрутка влево Прокрутка вправо Назад Вперед

Таким образом, для меня было важно, чтобы справа и слева были кнопки на нижнем ряду, с кнопкой “назад” в верхнем левом углу и средней кнопкой в верхнем правом углу:

Section "InputClass"
    Identifier "Kensington Kensington Slimblade Trackball"
    MatchProduct "Kensington Kensington Slimblade Trackball"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollButton" "8"
    Option "ScrollMethod" "button"
EndSection

Документация здесь отсутствует, поэтому это то, что я смог собрать, запустив xev -event mouse.


Вот карта от ID кнопки к её функции:

Кнопка Функция
1 левый клик
2 средний клик
3 правый клик
4 прокрутка вверх
5 прокрутка вниз
6 прокрутка влево
7 прокрутка вправо
8 назад
9 вперед

Отлично, спасибо, ребята! 🙂 Мне пришлось немного изменить, чтобы это сработало для меня. Поскольку на моей системе (Ubuntu 18.04) xinput сообщает трекбол следующим образом:

$ xinput list | grep Kensington
⎜   ↳ Kensington Slimblade Trackball            id=14   [slave  pointer  (2)]

Мне пришлось изменить MatchProduct из ваших примеров выше, чтобы это работало для меня. Также я немного упростил. У меня это выглядит так, и это сработало для меня:

Section "InputClass"
    Identifier "My Kensington Slimblade Trackball"
    MatchProduct "Kensington Slimblade Trackball"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollButton" "8"
    Option "ScrollMethod" "button"
EndSection

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

Конфигурация трекбола Kensington Slimblade в Linux, особенно в дистрибутивах на базе Ubuntu, может потребовать некоторых особых настроек. Ниже приведено детальное руководство по конфигурации, основанное на том, как правильно настроить вашу мышь.

1. Установите необходимые пакеты

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

sudo apt-get install xinput

2. Определите ваше устройство

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

xinput list

Ищите строку, содержащую "Kensington Slimblade Trackball". Обратите внимание на его id.

3. Проверка кнопок устройства

Для формирования нужной конфигурации полезно узнать, какие кнопки трекбола соответствуют номерам. Для этого запустите команду:

xev -event mouse

Нажимайте на кнопки трекбола и смотрите, какой номер кнопки срабатывает.

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

Ваша цель — перенастроить функции кнопок трекбола. Для этого используйте следующую последовательность команд. Важно: изменения в xinput могут сбрасываться после перезагрузки. Для постоянной конфигурации создайте конфигурационный файл.

Временная настройка через терминал

Если вы хотите временно настроить трекбол, выполните следующие команды (замените "Kensington Kensington Slimblade Trackball" на правильное имя устройства, если оно отличается):

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 0
xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 8 3 4 5 6 7 2 9
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

Постоянная настройка

Чтобы сделать изменения постоянными, создайте конфигурационный файл:

  1. Откройте терминал.
  2. Создайте файл конфигурации:
sudo nano /usr/share/X11/xorg.conf.d/10-slimblade.conf
  1. Вставьте следующий текст в файл:
Section "InputClass"
    Identifier "Kensington Kensington Slimblade Trackball"
    MatchProduct "Kensington Slimblade Trackball"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollButton" "8"
    Option "ScrollMethod" "button"
    Option "MiddleEmulation" "on"
EndSection
  1. Сохраните изменения и закройте редактор (в nano нажмите CTRL + X, затем Y, затем Enter).

5. Перезапустите сеанс

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

6. Проверка конфигурации

Для проверки корректности настроек используйте команду:

xev -event mouse

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

Заключение

Теперь ваш Kensington Slimblade Trackball настроен в соответствии с вашими предпочтениями. Вы можете далее настраивать его или изменять параметры по мере необходимости. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.

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

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