Я думаю, что 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 ID. Вы можете получить полный список кнопок устройства, используя команду xinput get-button-map N
, где N - это xinput ID вашего устройства, например 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 есть графический интерфейс для запуска приложений). По некоторым причинам это не сработает, если вы просто вызовете скрипт из своего файла ~ / .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)