ฉันคิดว่า 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 ID สามารถพบได้โดยใช้lsusb
คำสั่ง เพื่อดูว่ามีปุ่มใดบ้างที่xev
สามารถใช้เครื่องมือนี้เพื่อรับ ID ปุ่มขณะที่คุณกดปุ่มของเมาส์ คำสั่งxinput list
สามารถใช้เพื่อรับรายการของอุปกรณ์อินพุตทั้งหมดในระบบของคุณและ xinput ID คุณสามารถเป็นรายการที่สมบูรณ์ของปุ่มของอุปกรณ์ที่ใช้คำสั่ง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)