ฉันจะสลับปุ่มเมาส์เพื่อถนัดซ้ายจากเครื่องเทอร์มินัลได้อย่างไร


30

ฉันเป็นคนถนัดมือซ้าย
ดังนั้นฉันต้องการแลกเปลี่ยนปุ่มเมาส์ทั่วไปสำหรับการคลิกขวาและซ้าย

ผมต้องการที่จะทำเช่นนี้ผ่านทางสถานี มีคนช่วยแนะนำคำสั่งให้หน่อยได้ไหม

เป็นไปได้หรือไม่ที่จะแลกเปลี่ยนการคลิกเหล่านี้ที่หน้าจอเข้าสู่ระบบด้วย? ฉันใช้ Ubuntu 12.04

คำตอบ:


26
xmodmap -e "pointer = 3 2 1"

ในสถานีควรทำงาน หากคุณต้องการเรียกใช้คำสั่งนั้นที่จุดเริ่มต้นของ lightdm (หน้าจอเข้าสู่ระบบเริ่มต้น) คุณสามารถแก้ไขได้/etc/lightdm/lightdm.confตามที่อธิบายไว้ที่นี่ - ใช้xmodmapคำสั่งแทนxbacklightในสคริปต์ของหลักสูตร


2
มันใช้งานได้กับเซสชั่นปัจจุบัน .. จะทำอย่างไรให้ถาวร ???
Fookraa

2
/etc/lightdm/lightdm.confมันควรจะเป็นแบบถาวรถ้าคุณวางไว้ใน หากไม่มีคุณสามารถวางไว้ใน Startup Applications หรือสร้างไฟล์ .desktop ใน ~ / .config / autostart จากเทอร์มินัล
elmicha

ฉันไม่มีไฟล์ /etc/lightdm/lightdm.conf มีเทมเพลตอยู่ที่ไหน?
Mateusz Konieczny

25

คุณสามารถใช้xinputการทำเช่นนี้

มันจะเปลี่ยนปุ่มบนเมาส์หนึ่งตัวเท่านั้น

ใช้ครั้งแรก -

xinput list

เมื่อต้องการดูว่าเมาส์ของคุณอยู่ตรงไหน

"USB Mouse"     id=12       [slave pointer]

ดังนั้นใช้หมายเลขประจำตัวสำหรับคำสั่งถัดไปเพื่อสลับการกำหนดปุ่ม

xinput set-button-map 12 3 2 1

ดังนั้นคุณจะสลับออก 12 ด้วยหมายเลขรหัสของเมาส์

ที่มา: 1


2
ฉันพบว่ามีประโยชน์เพราะฉันมักจะมีหนูสองตัวซ้ายและขวา เทคนิคนี้ช่วยให้สามารถตั้งค่าให้เป็นภาพสะท้อนของกันและกัน
Rick-777

และจากนั้นคุณสามารถทำให้เป็นแบบถาวรได้โดยสร้างการกำหนดค่าอุปกรณ์ Xorg ตามที่อธิบายไว้ที่นี่: linus.haxx.se/2013/03/07/mouse-button-mapping-in-xorg-conf
Apteryx

หรือเพียงแค่สคริปต์เริ่มต้นหากคุณต้องการ
Mateo

2
ในกรณีที่อุปกรณ์ตัวชี้ของฉันเปลี่ยนรหัสฉันค้นหา ID เป็นส่วนหนึ่งของบรรทัดคำสั่ง: xinput set-button-map $ (รายการ xinput - เป็นเพียง "Kensington Kensington Expert Mouse") เท่านั้น 3 2 1 สตริงในเครื่องหมายคำพูดมา จาก "รายการ xinput" ด้านบน
akom

ควรทำเครื่องหมายเป็นคำตอบแทนที่จะใช้ xmodmap
ptgamr

7

xmodmapเป็นคำสั่งให้เปลี่ยนการแมปปุ่มเมาส์ :

xmodmap -e "pointer = 3 2 1"

จะทำการแมปสามปุ่มแรกด้านซ้ายกลางและขวาเพื่อทำหน้าที่เหมือนขวากลางและซ้าย - ไม่เปลี่ยนการแมปปุ่มกลางจริง ๆ

ที่ใช้การเปลี่ยนแปลงไปยังเซสชันปัจจุบัน - แม่นยำมากขึ้นเพื่อการแสดงผล X ปัจจุบันสำหรับ :0exanple

หากต้องการบันทึกการเปลี่ยนแปลงที่คงอยู่ตลอดเซสชันให้วางการแมปลงในไฟล์

~/.Xmodmap

หากไม่มีอยู่ให้สร้างขึ้นใหม่เช่นtouch ~/.Xmodmap

แก้ไขเพื่อเพิ่มบรรทัด

pointer = 3 2 1

หากมีpointerเส้นอยู่แล้วมันอาจมีฟังก์ชั่นบางอย่างแน่นอน แทนที่จะแทนที่มันควรแก้ไขค่าสามอันดับแรกให้ดีขึ้นโดยเก็บความคิดเห็นไว้กับค่าเก่า:

ตัวอย่างเช่น,

pointer = 1 2 3 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24

กลายเป็น

!pointer = 1 2 3 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24
pointer = 3 2 1 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24


ฉันคุ้นเคยกับ~/.Xmodmapallways แค่ทำงาน แต่ดู. Xmodmap ใช้งานได้เฉพาะเมื่อการเข้าสู่ระบบอัตโนมัติถูกปิดใช้งาน? ถ้าไม่ได้


-1

ดำเนินการรหัสนี้ในพร้อมท์คำสั่งมันจะลบและรีเซ็ตออปติคัลเมาส์และทัชแพดเป็นคลิกซ้ายเริ่มต้นสำหรับคลิกและคลิกขวาสำหรับตัวเลือก

modprobe -r psmouse
modprobe psmouse proto=imps

-1

สำหรับ Ubuntu ~ 12.04 และก่อนหน้า

#!/usr/local/bin/tcsh -fb

# switches between right and left mouse
set leftMouseHand = `gconftool-2 --get /desktop/gnome/peripherals/mouse/left_handed`
if ( "$leftMouseHand" == "false" ) then
    gconftool-2 --set /desktop/gnome/peripherals/mouse/left_handed true --type boolean
    gconftool-2 --set /desktop/gnome/peripherals/mouse/cursor_theme Oxygen_White_Big --type string
else
    gconftool-2 --set /desktop/gnome/peripherals/mouse/left_handed false --type boolean
    gconftool-2 --set /desktop/gnome/peripherals/mouse/cursor_theme Oxygen_White_Big --type string
endif
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.