Bence EitherMouse burada belirtilmeyi hak ediyor. Bir Windows kutusu kullanmam gerektiğinde çok mutluyum. Çoklu farelerin kurulumunu kolaylaştırır.
Aracı web sitesinden indirebilirsiniz: http://www.eithermouse.com/
Gelecek kuşak için GNU / Linux çözümünü de buraya ekleyeceğim. Bence en iyi yol, özel bir Xorg InputClass bölüm yapılandırması tanımlamaktır. Bu, fare her algılandığında geçerli olacaktır. İşte yapılandırma dosyam /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
Değeri çok önemli değildir. USB kimliği lsusb
komut kullanılarak bulunabilir . Hangi düğmelerin kullanılabilir olduğunu görmek için, xev
araç farenizin düğmelerine basarken düğme kimliğini almak için kullanılabilir. Komut xinput list
, sisteminizdeki tüm giriş cihazlarının ve xinput ID'lerinin listesini almak için kullanılabilir. Komutu kullanarak cihazın düğmelerinin tam listesini yapabilirsiniz xinput get-button-map N
; burada N, cihazınızın xinput kimliğidir xinput get-button-map 10
. Aşağıdaki xinput set-button-map N *mapping*
komutu kullanarak cihazınızın düğmelerinin eşlemesini değiştirmeyi deneyebilirsiniz :xinput set-button-map 10 3 2 1
Yeni Xorg yapılandırmanızı etkili hale getirmek için X oturumunuzu yeniden başlatmanız gerekecek. Sorun olması durumunda, Xorg.log ( tail -f /var/log/Xorg.0.log
) yöntemi neyin yanlış gittiğine dair bir ipucu verebilir.
Bir xinput set-button-map
alternatif kullanılabilir, ancak daha az dinamiktir (cihazınız algılandığında otomatik olarak uygulanmayacaktır). Aşağıdaki komut dosyası başlangıçta çalışacak şekilde yapılandırılabilir (Ubuntu'da kurmak için bir Başlangıç Uygulamaları GUI'si vardır). Bazı nedenlerden dolayı ~ / .profile dosyanızdan komut dosyasını çağırırsanız çalışmaz. MOUSE_NAME değişkeni, xinput list
komutun çıktısında farenize verilen ada karşılık gelir .
#!/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)