Myślę, że EitherMouse zasługuje na wzmiankę tutaj. Jestem z tego bardzo zadowolony, gdy muszę użyć okna systemu Windows. Sprawia, że zarządzanie konfiguracją wielu myszy nie stanowi problemu.
Możesz pobrać narzędzie z jego strony internetowej: http://www.eithermouse.com/
Dla potomności dołączę tutaj również rozwiązanie dla GNU / Linux. Moim zdaniem najlepszym sposobem jest zdefiniowanie niestandardowej konfiguracji sekcji Xorg InputClass. Będzie to obowiązywać za każdym razem, gdy mysz zostanie wykryta. Oto mój plik konfiguracyjny /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
Wartość jest nieistotna. Identyfikator USB można znaleźć za pomocą lsusb
polecenia. Aby zobaczyć, które przyciski są dostępne, xev
można użyć narzędzia do uzyskania identyfikatora przycisku podczas naciskania przycisków myszy. Polecenia xinput list
można użyć do uzyskania listy wszystkich urządzeń wejściowych w systemie i ich identyfikatora xinput. Możesz uzyskać pełną listę przycisków urządzenia za pomocą polecenia xinput get-button-map N
, gdzie N jest identyfikatorem xinput urządzenia, np xinput get-button-map 10
. Możesz eksperymentować ze zmodyfikowaniem mapowania przycisków urządzenia za pomocą xinput set-button-map N *mapping*
polecenia, takiego jak:xinput set-button-map 10 3 2 1
Będziesz musiał ponownie uruchomić sesję X, aby nowa konfiguracja Xorg była skuteczna. W przypadku problemu Xorg.log ( tail -f /var/log/Xorg.0.log
) może dać ci wskazówkę, co poszło nie tak.
Można xinput set-button-map
użyć alternatywy, ale jest ona mniej dynamiczna (nie zostanie zastosowana automatycznie po wykryciu urządzenia). Poniższy skrypt można skonfigurować do uruchamiania podczas uruchamiania (w Ubuntu istnieje interfejs GUI do uruchamiania aplikacji, aby go skonfigurować). Z niektórych powodów nie zadziała, jeśli po prostu wywołasz skrypt ze swojego pliku ~ / .profile. Zmienna MOUSE_NAME odpowiada dowolnej nazwie nadanej myszy w wynikach xinput list
polecenia.
#!/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)