Я думаю, що EitherMouse заслуговує на згадку тут. Я дуже задоволений цим, коли мені потрібно використовувати вікно Windows. Це змушує керувати налаштуваннями кількох мишей легким вітром.
Завантажити інструмент можна на його веб-сайті: http://www.eithermouse.com/
Заради нащадків я сюди включу рішення для GNU / Linux. Найкращий спосіб, на мою думку, - це визначити власну конфігурацію розділу Xorg InputClass. Це діятиме в будь-який час, коли миша буде виявлена. Ось мій файл конфігурації /etc/X11/xorg.conf.d/50-mouses-config.conf:
Section "InputClass"
Identifier "Lachesis Left Handed"
MatchUSBID "1532:000c"
Option "ButtonMapping" "3 2 1"
EndSection
IdentifierЗначення НЕ має значення. Ідентифікатор USB можна знайти за допомогою lsusbкоманди. Щоб побачити, які кнопки доступні, xevінструмент можна використовувати для отримання ідентифікатора кнопки під час натискання кнопок миші. Команда xinput listможе бути використана для отримання списку всіх пристроїв введення у вашій системі та їх ідентифікатора xinput. Ви можете отримати повний перелік кнопок пристрою за допомогою команди xinput get-button-map N, де N - ідентифікатор xinput вашого пристрою, наприклад xinput get-button-map 10. Ви можете експериментувати, змінюючи відображення кнопок вашого пристрою за допомогою xinput set-button-map N *mapping*команди, наприклад:xinput set-button-map 10 3 2 1
Вам доведеться перезапустити свій X сеанс, щоб нова конфігурація Xorg була ефективною. У разі проблеми Xorg.log ( tail -f /var/log/Xorg.0.log) може дати вам зрозуміти, що пішло не так.
xinput set-button-mapАльтернатива може бути використана, але це менш динамічний (воно не буде застосовуватися автоматично при виявленні пристрої). Наступний скрипт можна налаштувати для запуску при запуску (в Ubuntu є GUI програм для запуску для його налаштування). З якихось причин це не спрацює, якщо ви просто зателефонуєте до скрипту зі свого файлу ~ / .profile. Змінна MOUSE_NAME відповідає тому, яке ім'я дається вашій миші у висновку xinput listкоманди.
#!/bin/bash
MOUSE_NAME="Razer Razer Lachesis"
BUTTONS_MAP="3 2 1"
while read -r line; do
raw_line=$(grep "$MOUSE_NAME" | grep "pointer")
if [ ! -z "$raw_line" ]; then
mouse_id=$(echo "$raw_line" | cut -d '=' -f2 | sed 's/\t.*//g')
echo "Found ${MOUSE_NAME}'s id: $mouse_id"
xinput set-button-map $mouse_id $BUTTONS_MAP
break
fi
done < <(xinput list)