เปลี่ยนความเร็วการเลื่อนด้วย libinput


16

ล้อเลื่อนของเมาส์เลื่อนช้าเกินไปดังนั้นฉันต้องการเพิ่มจำนวนบรรทัดสำหรับการเลื่อน "ติ๊ก" แต่ละครั้ง ฉันอ่านว่าสิ่งนี้เป็นไปได้โดยการตั้งค่าEvdev Scrolling Distanceด้วยxinputอย่างไรก็ตามฉันกำลังใช้งานอยู่libinputและฉันไม่เห็นสิ่งที่เกี่ยวข้องกับระยะการเลื่อน

ผลลัพธ์ของxinput list-propsเมาส์:

Device Enabled (139):   1                                                                                                       
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (275): -0.640000                                                                                           
libinput Accel Speed Default (276): 0.000000                                                                                    
libinput Accel Profiles Available (277):    1, 1                                                                                
libinput Accel Profile Enabled (278):   1, 0                                                                                    
libinput Accel Profile Enabled Default (279):   1, 0                                                                            
libinput Natural Scrolling Enabled (280):   0                                                                                   
libinput Natural Scrolling Enabled Default (281):   0                                                                           
libinput Send Events Modes Available (259): 1, 0                                                                                
libinput Send Events Mode Enabled (260):    0, 0                                                                                
libinput Send Events Mode Enabled Default (261):    0, 0                                                                        
libinput Left Handed Enabled (282): 0                                                                                           
libinput Left Handed Enabled Default (283): 0                                                                                   
libinput Scroll Methods Available (284):    0, 0, 1                                                                             
libinput Scroll Method Enabled (285):   0, 0, 0                                                                                 
libinput Scroll Method Enabled Default (286):   0, 0, 0                                                                         
libinput Button Scrolling Button (287): 2                                                                                       
libinput Button Scrolling Button Default (288): 274                                                                             
libinput Middle Emulation Enabled (289):    0                                                                                   
libinput Middle Emulation Enabled Default (290):    0                                                                           
Device Node (262):  "/dev/input/event1"                                                                                         
Device Product ID (263):    1133, 50487                                                                                         
libinput Drag Lock Buttons (291):   <no items>                                                                                  
libinput Horizonal Scroll Enabled (264):    1                                                  

ฉันจะเปลี่ยนความเร็วการเลื่อนได้อย่างไร ฉันทำงานบน Arch Linux, Xfce 4.12


1
ขณะนี้มีการร้องขอคุณสมบัติสำหรับ libinput เพื่อดำเนินการนี้ (ได้รับความอนุเคราะห์จาก@clel )
n.st

คำตอบ:


4

ไม่มี API ปัจจุบันสำหรับการเปลี่ยนความเร็วการเลื่อนสำหรับอุปกรณ์ libinput แต่บล็อกนี้อธิบายว่าการคลิกล้อเลื่อนของเมาส์สอดคล้องกับมุมของการเคลื่อนไหวที่คุณสามารถเปลี่ยนต่อเมาส์ในไฟล์การกำหนดค่า udev ของ systemd ได้/usr/lib/udev/hwdb.d/70-mouse.hwdbอย่างไร อ่านความคิดเห็นเกี่ยวกับMOUSE_WHEEL_CLICK_ANGLEที่จุดเริ่มต้นของไฟล์นี้

หากต้องการทำการเปลี่ยนแปลงในท้องถิ่นให้สร้างไฟล์ใหม่

 /etc/udev/hwdb.d/71-mouse-local.hwdb

และเพิ่มกฎการเอาชนะของคุณ ตัวอย่างเช่นหากคุณมีเมาส์ ImExPS / 2 คุณสามารถเพิ่มค่าเริ่มต้น 15 องศาต่อคลิกเป็น 30 องศาเป็นสองเท่า

# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250
 MOUSE_WHEEL_CLICK_ANGLE=30

โหลดฐานข้อมูล udev อีกครั้ง

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1

1
There is no current api for changing the scroll speed for libinput devices: สิ่งนี้มีการเปลี่ยนแปลงตั้งแต่นั้นมา?
orschiro

1
@orschiro ฉันได้รับความประทับใจว่า api ไม่ใช่ความตั้งใจ หวังว่าอุปกรณ์ทั้งหมดจะได้รับการระบุและกำหนดค่าอย่างเหมาะสมใน udev และไม่จำเป็นต้องมีการกำหนดค่าผู้ใช้ ตรวจสอบบล็อก libinputทั้งหมด โดยเฉพาะอย่างยิ่ง1.4สอดคล้องกับการสิ้นสุดรายการสิ่งที่ต้องทำเริ่มต้นสำหรับ libinput
meuh

4
ใน Ubuntu 16.10 ระบบ udev conf อยู่ใน /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin

2
จะทำเช่นเดียวกันกับทัชแพดหรือไม่?
ฟรานเชสโก

1
@daboross ใช่ มีสองด้านที่ควรพิจารณา: คำตอบข้างต้นเป็นเพียงการพยายามทำให้ปกติผลลัพธ์จากอุปกรณ์เพื่อให้เมื่อผู้ใช้ทำการเคลื่อนไหวในจำนวนที่เท่ากันบนเมาส์ 2 ตัวที่แตกต่างกันตัวอย่างเช่นระบบสามารถคำนวณว่าพวกมันเทียบเท่า จากฮาร์ดแวร์ที่แตกต่าง ด้านที่สองคือจำนวนการเคลื่อนไหวที่น่าพึงพอใจที่ควรนำเสนอและนั่นถูกกำหนดโดยจำนวนเชิงซ้อนของซอฟต์แวร์ที่ผู้ใช้ต้องเผชิญเช่นชุดเครื่องมือกราฟิกระบบหน้าต่างระบบ dpi ของหน้าจอเป็นต้น
meuh

3

Libinputไม่ได้มีชนิดของใด ๆ "สำหรับคนที่เลื่อนล้อทำnเส้น / องศาแนวคิด" เป็นบุคคลที่ร่วมกันตั้งค่าน่าจะเป็นเฉพาะอุปกรณ์สำหรับตอนนี้เป็นบางส่วนของ Logitechมีพารามิเตอร์Evdev Scrolling Distance (278)ที่อาจจะมาพร้อมกับ "เก่า" รวมถึงไดรเวอร์ Evdev

นี่จะถือว่าเป็นการถดถอยสำหรับประสบการณ์ของผู้ใช้ในความคิดของฉันซึ่งในตอนแรกการรวมความไวของการเลื่อนเมาส์ที่กำหนดค่าไว้ในชุดเครื่องมือทั่วไป (libinput) ถูกปฏิเสธตอนนี้มันเป็นส่วนหนึ่งของคำขอดึงที่จะอยู่ในรุ่นอนาคต - อาจต้องมีการเรียกใช้ฟังก์ชันในทุกสภาพแวดล้อมเดสก์ท็อป

มีความเป็นไปได้มากมายในการแก้ไขปัญหาดังกล่าว แต่ขึ้นอยู่กับการแจกจ่าย Linux

  1. เป็นคนโชคดีและมีความไวในการเลื่อนเฉพาะไดรเวอร์ - ตรวจสอบโดยทำการค้นหาอินพุตทั้งหมดที่มีตัวแปรเลื่อน:

    รายการ xinput ตัด -f2 | cut -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput รายการอุปกรณ์ประกอบฉาก '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    และการตั้งค่าตัวแปรเฉพาะโดยที่สามารถเป็นชื่ออุปกรณ์และสามารถเป็นชื่อการตั้งค่าxinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. การแก้ไขทั่วไปrepatchingรหัส libinput และสร้างใหม่

  3. คุณสามารถลองย้อนกลับไป udevadm / evdev อินเตอร์เฟซกับ X11 แล้วลองตัวแปร X11 MOUSE_WHEEL_CLICK_ANGLE

  4. จากการอ้างอิงของไอเท็มสุดท้ายเป็นไปได้ที่จะใช้imwheelเพื่อจำลองการคลิกเมาส์เลื่อนในค่าทวีคูณ

    # Should use imwheel --kill --buttons "4 5" to restart imwheel,
    # if the mouse has back/forward buttons, otherwhise imwheel --kill is enough.
    # imwheel must be set to autostart in your DE tools.
    #Edit ~/.imwheelrc to include, where '3' is a multiplier
    ".*"
    None,      Up,   Button4, 3
    None,      Down, Button5, 3
    Control_L, Up,   Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    
  5. มีการตั้งค่าโปรแกรมเฉพาะเพื่อความไวของล้อเมาส์เช่นมีChrome SmoothScrollและFirefox SmoothWheel โทษ


1
การเปลี่ยนแปลง Libinput เป็นการถดถอยของ UX ในหลาย ๆ ทางซึ่งเกือบทั้งหมดมาจากการที่ผู้ใช้ควบคุมพฤติกรรมของฮาร์ดแวร์ของพวกเขา ...
Douglas Gaskell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.