ปิดการใช้งานปุ่มกลางของเมาส์


17

ดังนั้นฉันจึงลองดูคำถามอื่น ๆ อีกมากมาย แต่พวกเขาส่วนใหญ่มุ่งเน้นไปที่การปิดใช้งานการวางเมาส์กลาง

ปุ่มกลางของเมาส์บน Logitech G500s นั้นใช้งานไม่ได้และมันจะ "คลิก" แบบสุ่มดังนั้นมันจึงทำให้พลาดโอกาสในการทำงาน

มีวิธีปิดการใช้งานหรือไม่ หรือแผนที่เพื่ออะไร

ขอขอบคุณและขออภัยหากซ้ำกัน

xinput list เอาท์พุท:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]

ดำเนินการคำสั่งนี้xinput list | grep 'id='และโพสต์เอาท์พุท
Helio

สำหรับเมาส์นี้มี ID อุปกรณ์สองรายการสำหรับเมาส์นี้ หลังจากรันการทดสอบ xinput 9 แล้วรหัสของปุ่มกลางเมาส์ของฉันคือ 2
Tom Hamilton Stubber

คำตอบ:


24

ดำเนินการคำสั่งเหล่านั้น:

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

การอธิบาย (บริจาคโดย @Yehosef ):

หมายเลขแรกคือรหัสของตัวชี้ (คุณมักจะมีเพียงหมายเลขเดียวในกรณีนี้มีสอง, 9 และ 10)

ตัวเลขถัดไปคือสิ่งที่คุณทำกับปุ่มเมาส์แรก, ที่สองและที่สาม (เช่นซ้าย, กลาง, ขวา) "1 0 3" บอกว่าปุ่มซ้ายควรคลิกซ้าย (การกระทำ 1) ปุ่มกลางไม่ควรทำอะไรและปุ่มขวาควรคลิกขวา (การกระทำ 3) หากคุณต้องการทำปุ่มกลางให้คลิกซ้ายคุณสามารถใช้ "1 1 3" หากคุณต้องการสลับการกระทำที่ถูกต้องและซ้ายคุณสามารถใช้ "3 0 1" ดูhttps://wiki.ubuntu.com/X/Config/Inputสำหรับข้อมูลเพิ่มเติม


ขอบคุณมากการพยายามค้นหาสิ่งนี้ทำให้รู้สึกหงุดหงิดมาก
Tom Hamilton Stubber

1
ขอบคุณ! สำหรับผู้ที่สงสัย - 9/10 เป็นรหัสอินพุตของเมาส์และ 1 0 3 คือการแมปสำหรับปุ่มแรก, สองและสาม หากคุณต้องการให้ปุ่มทั้งหมดทำแบบเดียวกันคุณสามารถใช้ 1 1 1 หรือถ้าคุณต้องการเปลี่ยนปุ่มขวาและซ้ายคุณสามารถใช้ 3 0 1
Yehosef

@Yehosef: ขอบคุณ! ฉันไม่ได้อธิบายว่าเกิดอะไรขึ้นเมื่อ OP รันคำสั่ง โปรดสร้างคำตอบโดยละเอียดใหม่ ping ฉันและฉันจะ upvote นี่คือคำอธิบายที่น่าสนใจ
Helio

@Helio ฉันไม่มีคำตอบที่แตกต่าง - เพียงแค่คำอธิบายเพิ่มเติมสำหรับผู้ที่สนใจ บางทีคุณอาจต้องการแก้ไขคำตอบของคุณเพื่อรวมข้อมูลนี้ไว้ ฉันกำลังคิดเกี่ยวกับการแก้ไขคำตอบของคุณ - แต่โดยทั่วไปฉันไม่ชอบเมื่อผู้คนเพิ่มรายละเอียดเพิ่มเติมในคำตอบของฉัน - ดังนั้นฉันจึงงดเว้น :)
Yehosef

2
ดังนั้นฉันจะกำหนดหมายเลขแรกได้อย่างไร ฉันเรียกใช้xinput list | grep 'id='และค้นหาสิ่งที่ดูเหมือนเมาส์ / ทัชแพดของฉันมากที่สุด มีวิธีใดที่จะบอกได้ว่ามันถูกต้องหรือไม่?
Kvothe

2

คำแนะนำต่อไปนี้อ้างอิงจากข้อมูลที่Ubuntu Wiki (เลื่อนลงไปที่ชื่อ "ตัวอย่าง: การปิดใช้งานการวางปุ่มกลางของปุ่มบนเม้าส์เลื่อนล้อเลื่อน")

ก่อนอื่นให้กำหนด id ของตัวชี้โดยแสดงรายการอุปกรณ์อินพุต:

xinput list | grep 'id='

และค้นหาบรรทัดที่มีชื่อตัวชี้ของคุณควรมี id ของอุปกรณ์ทันทีหลังจาก "id =" ตัวอย่างเช่น id ของอุปกรณ์นี้คือ 10:

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

ต่อไปรับแผนที่ปุ่มปัจจุบันของอุปกรณ์นั้น (ฉันจะใช้รหัสของอุปกรณ์ซึ่งก็คือ 10):

xinput get-button-map 10

เอาท์พุท:

1 2 3 4 5 6 7 8 9

นี่คือการแมปของปุ่มตัวชี้ไปยังการกระทำโดยที่หมายเลขแสดงถึงรหัสการกระทำและปุ่มตำแหน่ง -

เราสนใจแผนที่ที่สอง - หมายเลข 2 สอดคล้องกับการกระทำ "คลิกปุ่มกลาง" และตำแหน่งของมัน - กับปุ่มกลางจริง

หากต้องการปิดการใช้งานปุ่มกลางที่เรียกการกระทำใด ๆ ฉันจะใช้คำสั่งที่xinput set-button-mapมี ID ของอุปกรณ์และแผนที่ที่อัปเดต (รหัสการกระทำใหม่คือ 0 - ไม่มีการกระทำ) ไม่จำเป็นต้องใส่แผนที่ทั้งหมด - แผนที่จนกว่าจะถึงปุ่มที่น่าสนใจ (ส่วนที่เหลือจะไม่อัปเดต):

 xinput set-button-map 10 1 0

แค่นั้นแหละ.


สิ่งนี้ใช้ได้กับทัชแพดของฉันบน Lenovo Thinkpad T580 กับ Ubuntu 18.04
รัสเซลอังกฤษ

0

set-button-mapปิดใช้งานฟังก์ชันการคลิกกลาง หากต้องการเลียนแบบคลิกกลางโดยใช้ซ้าย + คลิกขวา (เพื่อให้คุณสามารถวางและเปิดแท็บ ฯลฯ โดยใช้เมาส์) แต่ปิดการคลิกล้อเลื่อนของเมาส์คุณสามารถแก้ไข libinput:

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • บันทึกแพทช์ด้านบนเป็น libinput-1.XX.Y/debian/patches/middle.diff
  • เพิ่มmiddle.diffไปยังdebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • รีสตาร์ท Xorg หรือรีสตาร์ทเครื่อง

และใช้xinput listและxinput set-prop 11 "libinput Middle Emulation Enabled" 1เพื่อเปิดใช้งานการจำลองซ้าย + ขวา 11เป็นจำนวนอุปกรณ์จากและคุณสามารถเพิ่มคำสั่งตั้งเสาไปxinput list~/.xstartup

หรือเพื่อหลีกเลี่ยงการสร้างใหม่ให้ใช้ไฟล์ libinput .quirks (ยังไม่ทดลอง):

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.