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
IdentifierWartość jest nieistotna. Identyfikator USB można znaleźć za pomocą lsusbpolecenia. Aby zobaczyć, które przyciski są dostępne, xevmożna użyć narzędzia do uzyskania identyfikatora przycisku podczas naciskania przycisków myszy. Polecenia xinput listmoż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-mapuż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 listpolecenia.
#!/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)