Я думаю, що 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)