ทำให้การเคลื่อนไหวของเมาส์เลื่อนเมื่อกดปุ่มกลางค้างไว้


29

ใน Windows ฉันเคยคลิกปุ่มกลางและมันเสนอตัวเลือก "เลื่อนเร็ว" ขึ้นหรือลง ฉันจะรับพฤติกรรมนี้บน Linux ได้อย่างไร ขณะนี้ดูเหมือนว่าจะใช้ปุ่มย้อนกลับเมื่อคลิกที่กึ่งกลางแทน

ฉันใช้ Gnome ภายใต้ CentOS


อะไรที่ใช้ไม่ได้ผล? หนู Unix มีสามปุ่มตั้งแต่วันแรกดังนั้นปุ่มกลางของเมาส์จึงใช้งานได้ตามปกติ
Gilles 'หยุดความชั่วร้าย'

ฉันเคยคลิกปุ่มกลางแล้วมันเสนอตัวเลือก "เลื่อนเร็ว" ขึ้นหรือลง ขณะนี้ดูเหมือนว่าจะใช้ปุ่มย้อนกลับเมื่อคลิกที่กึ่งกลางแทน
some1

2
อ่าดังนั้นคุณต้องการให้พฤติกรรมของ Windows ของปุ่มกลาง (หรือแทนที่จะกดล้อ) แทนที่จะเป็นลักษณะการทำงานของ Unix (โดยปกติปุ่มกลางจะวางเนื้อหาคลิปบอร์ดไว้) คุณจำเป็นต้องพูดสิ่งนี้ในคำถามของคุณเราไม่สามารถอ่านความคิดของคุณ! สิ่งนี้ต้องการการสนับสนุนจากแอปพลิเคชัน คุณใช้แอปพลิเคชันใด สภาพแวดล้อมเดสก์ท็อปใด (เช่น Gnome, KDE, XFCE, …)
Gilles 'หยุดความชั่วร้าย'

ฉันคิดว่าจะมีแผงการกำหนดค่าอยู่ที่ไหนสักแห่งที่ฉันสามารถตั้งค่าได้ แต่ฉันไม่สามารถทำได้ไกลขนาดนั้น เดสก์ท็อปคือ Gnome ฉันถือว่าเป็นค่าเริ่มต้นหรือไม่ และปัญหาอยู่ใน Firefox
some1

1
สำหรับ Firefox มีวิธีแก้ปัญหาในที่คำถามที่ซ้ำกันอยู่ใกล้กับ
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


26

ฟีเจอร์ Windows นี้ไม่เคยนำมาสู่โลกของ Unix ในโลก Unix จุดประสงค์หลักของปุ่มกลางของเมาส์คือการวางเนื้อหาของคลิปบอร์ด (หรือมากกว่านั้นอย่างแม่นยำคือข้อความที่เลือกด้วยเมาส์ซึ่งคัดลอกอัตโนมัติ) แอปพลิเคชั่นข้ามแพลตฟอร์มสองสามตัวเช่น Firefox และ Chrome ที่สนับสนุนปุ่มกลางของเมาส์สไตล์ Linux ภายใต้ Windows และในทางกลับกัน แต่นอกเหนือจากนั้นแอปพลิเคชันส่วนใหญ่ไม่รองรับการเลื่อนแบบละเอียดแบบนี้

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

หากต้องการเล่นกับการกำหนดค่านี้ให้ใช้โปรแกรมxinput (ฉันไม่ทราบว่ามีส่วนหน้าของ GUI หรือไม่) ก่อนอื่นให้เรียกใช้คำสั่งต่อไปนี้เพื่อดูชื่ออุปกรณ์ชี้ตำแหน่งของคุณ:

$ xinput --list       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Generic USB Mouse                         id=8    [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

Generic USB mouseยกตัวอย่างเช่นในการส่งออกดังกล่าวข้างต้นอุปกรณ์ตัวชี้คือ คุณสามารถรันคำสั่งต่อไปนี้เพื่อแสดงรายการคุณสมบัติที่สามารถปรับได้:

xinput --list-props 'Generic USB Mouse'

ชุดของคุณสมบัติที่คุณต้องการคือ“ Evdev Wheel Emulation” ด้วยการตั้งค่าต่อไปนี้เมื่อกดปุ่มกลางของเมาส์ (ปุ่ม 2) การเลื่อนเมาส์จะส่งเหตุการณ์วงล้อ (4 = ขึ้น, 5 = ลง, 6 = ซ้าย, 7 = ขวา)

xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5

คุณอาจต้องการปรับแต่งพารามิเตอร์อื่น ๆ (ความเฉื่อย, การหมดเวลา)

คุณสามารถใส่คำสั่งเหล่านี้ในสคริปต์ เพิ่ม#!/bin/shเป็นบรรทัดแรกและทำให้ไฟล์สคริปต์สามารถทำงานได้ (เช่นchmod +x ~/bin/activate-wheel-emulation.sh) จากนั้นเพิ่มสคริปต์นั้นในรายการคำสั่งเพื่อเรียกใช้เมื่อเริ่มเซสชันของคุณ ( gnome-session-propertiesให้คุณกำหนดค่านั้น)

หากคุณมีการเข้าถึงรากและคุณต้องการที่จะทำให้การเปลี่ยนแปลงสำหรับผู้ใช้ทั้งหมด (ได้รับการยอมรับในเครื่องที่บ้าน) ก็ง่ายที่จะทำมันได้ผ่านทางไฟล์การกำหนดค่าเซิร์ฟเวอร์ X.org เป็นรากสร้างไฟล์ที่เรียกว่า/etc/X11/xorg.conf.d/wheel-emulation.confมีการตั้งค่าสำหรับโปรแกรมควบคุมเมาส์ การตั้งค่าเหมือนกัน แต่มีการจัดระเบียบแตกต่างกันเล็กน้อย

Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "Generic USB Mouse"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

คุณจะต้องใช้ความระมัดระวังเมื่อปรับแต่งพารามิเตอร์อื่น ๆ หากคุณลดEvdev Wheel Emulation Timeoutพารามิเตอร์มากเกินไปคุณอาจสูญเสียการทำงานของปุ่มกลางของเมาส์ (คลิก) ไปพร้อมกัน ตัวอย่างเช่นหากคุณลดค่าEvdev Wheel Emulation Timeoutให้ต่ำกว่าค่าEvdev Middle Button Timeoutคุณจะไม่สร้างเหตุการณ์คลิกปุ่มกลางอีกต่อไป จากประสบการณ์ส่วนตัวสิ่งต่อไปนี้ดูเหมือนว่าจะทำงานได้ดีพอสมควร:
agnussmcferguss

xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100. ที่มีฟังก์ชั่นคลิกและเลื่อนที่สมเหตุสมผล แต่ถ้าคุณพบว่ามันทำงานเร็วเกินไปให้ลองเพิ่มขึ้นEvdev Wheel Emulation Timeout(ฉันคิดว่า 200 เป็นค่าเริ่มต้น)
agnussmcferguss

กิลล์ฉันคิดว่ามีบางอย่างผิดปกติในไฟล์กำหนดค่า xorg.conf.d ที่คุณแนะนำ เมื่อฉันใช้มัน X.Org ของฉันถูกบูทด้วยหน้าจอสีดำ ฉันมารุ่นซึ่งทำงานโดยการเพิ่มDevice "evdev"และการวางราคาสองครั้งรอบค่าของ"EmulateWheelButton" "2"(ขอโทษฉันไม่ได้มีเวลาที่จะตรวจสอบว่าหนึ่งหรือทั้งสองเหล่านี้การแก้ไขปัญหาการเปลี่ยนแปลง.)
Arkanon

@Arkanon เครื่องหมายคำพูดคู่ที่ขาดหายไปนั้นเป็นข้อผิดพลาดทางไวยากรณ์ ฉันไม่คิดว่าDevice "evdev"เข้าท่าคุณหมายถึงDriver "evdev"อะไร? ฉันคิดว่านี่เป็นอีกทางเลือกหนึ่งของMatchProductคำสั่งที่ตั้งค่าตัวเลือกสำหรับอุปกรณ์อินพุตทั้งหมดไม่ใช่แค่เมาส์ USB ทั่วไป
Gilles 'SO- หยุดความชั่วร้าย'

1
@ Wallacoloo ฉันไม่รู้ว่าคุณจะได้รับผลกระทบที่แน่นอนนี้หรือไม่ แต่คุณสามารถให้แป้นพิมพ์ตัวเลขเลื่อนเมาส์ได้โดยพิมพ์Pointer_EnableKeys(google หรือถามคำถามใหม่ที่นี่) และคุณสามารถตั้งค่าพฤติกรรมนักเล่นด้วย XKB (ค้นหาแป้นคำ : mousekeys หรือถามคำถามใหม่ที่นี่เพื่ออธิบายสิ่งที่คุณต้องการและสิ่งที่คุณจะได้รับหากคุณไม่สามารถทำได้อย่างแน่นอน
Gilles 'หยุดความชั่วร้าย'

25

ปรากฎว่าสิ่งนี้สามารถทำได้ผ่านการตั้งค่า Firefox

  1. จากเมนูแบบเลื่อนลง: แก้ไข -> การตั้งค่า
  2. จากนั้นเลือกแท็บ: ขั้นสูง -> ทั่วไป
  3. จากนั้นทำเครื่องหมายที่ "Use autrollrolling"

ภาพหน้าจอ

   เอสเอส


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