Thay đổi tốc độ cuộn với libinput


16

Con lăn chuột của tôi cuộn quá chậm, vì vậy tôi muốn tăng số lượng dòng cho mỗi lần cuộn "đánh dấu". Tôi đọc được rằng điều này là có thể bằng cách cài đặt Evdev Scrolling Distancevới xinput, tuy nhiên, tôi đang sử dụng libinputvà tôi không thấy bất cứ điều gì liên quan đến khoảng cách cuộn.

Đầu ra xinput list-propstrên chuột của tôi:

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                                                  

Làm cách nào để thay đổi tốc độ cuộn của tôi? Tôi đang chạy trên Arch Linux, Xfce 4.12.


1
Hiện tại có một yêu cầu tính năng cho libinput để thực hiện điều này (lịch sự của @clel ).
21 giờ 43 phút

Câu trả lời:


4

Không có api hiện tại để thay đổi tốc độ cuộn cho các thiết bị libinput, nhưng blog này giải thích cách nhấp chuột lăn tương ứng với góc di chuyển mà bạn có thể thay đổi trên mỗi con chuột trong tệp cấu hình udev của systemd /usr/lib/udev/hwdb.d/70-mouse.hwdb. Đọc các ý kiến ​​về MOUSE_WHEEL_CLICK_ANGLEkhi bắt đầu tập tin này.

Để thực hiện thay đổi cục bộ, hãy tạo một tệp mới

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

và thêm quy tắc ghi đè của bạn. Ví dụ: nếu bạn có chuột ImExPS / 2, bạn có thể tăng gấp đôi 15 độ mỗi lần nhấp chuột lên 30 độ với

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

Tải lại cơ sở dữ liệu 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: điều này đã thay đổi kể từ đó?
orschiro

1
@orschiro Tôi có ấn tượng rằng một api không phải là ý định. Hy vọng sẽ là tất cả các thiết bị được xác định và cấu hình đúng trong udev và sau đó không cần cấu hình người dùng. Kiểm tra tất cả các blog libinput . Cụ thể 1.4 tương ứng với việc hoàn thành danh sách TODO ban đầu cho libinput.
meuh

4
trong Ubuntu 16.10, hệ thống udev conf nằm trong /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin

2
Dù sao để làm điều tương tự với một bàn di chuột?
Francesco

1
@daboross Có. Có hai khía cạnh cần xem xét: câu trả lời trên chỉ là cố gắng bình thường hóa đầu ra từ một thiết bị để khi người dùng thực hiện cùng một chuyển động trên 2 con chuột khác nhau, ví dụ, hệ thống có thể tính toán rằng chúng tương đương nhau, mặc dù có báo cáo từ phần cứng là khác nhau. Khía cạnh thứ hai sau đó là mức độ chuyển động của màn hình này, và điều đó được xác định bởi số lượng phần mềm phức tạp mà người dùng phải đối mặt, như bộ công cụ đồ họa, hệ thống cửa sổ, dpi của màn hình, v.v.
meuh

3

Libinput không có bất kỳ loại khái niệm "cho mỗi cuộn bánh xe, làm n dòng / độ" như một bữa tiệc thông thường, cài đặt dường như là dành riêng cho thiết bị, vì một số Logitech có tham số Evdev Scrolling Distance (278)có thể đi kèm với "cũ" Trình điều khiển Evdev bao gồm.

Theo quan điểm của tôi, đây sẽ được coi là hồi quy cho trải nghiệm người dùng, khi đầu tiên, việc đưa độ nhạy cuộn chuột có thể định cấu hình vào bộ công cụ chung (libinput), đã bị từ chối, giờ đây nó là một phần của yêu cầu kéo trong các phiên bản trong tương lai - có thể các lệnh gọi hàm sẽ phải được thực hiện trong mọi Môi trường màn hình.

Có nhiều khả năng để khắc phục vấn đề như vậy, nhưng phụ thuộc vào bản phân phối Linux.

  1. Hãy may mắn và có độ nhạy cuộn dành riêng cho trình điều khiển - kiểm tra bằng cách tìm kiếm tất cả các đầu vào với các biến cuộn:

    danh sách xin thông tin | cắt -f2 | cắt -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "danh sách xin-danh sách đạo cụ '{}' | grep -iq cuộn && \
                                        (echo Liệt kê dev id '{}'; xinput list-props '{}') "
    và đặt biến cụ thể theo , nơi có thể là tên thiết bị và có thể là tên cài đặt.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Một sửa chữa chung là sắp xếp lại mã libinput và xây dựng lại .

  3. Bạn có thể thử quay lại giao diện udevadm / evdev với X11, sau đó thử biến X11 MOUSE_WHEEL_CLICK_ANGLE .

  4. Từ tham chiếu của mục cuối cùng , có thể sử dụng imwheelđể mô phỏng các lần nhấp chuột trong giá trị nhân.

    # 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. Có các cài đặt ứng dụng cụ thể cho độ nhạy của bánh xe chuột, như Chrome SmoothScrollFirefox SmoothWheel ref .


Quá trình chuyển đổi Libinput đã là một hồi quy UX theo nhiều cách, hầu hết tất cả đều do người dùng kiểm soát hành vi phần cứng của họ ... Điều không may xảy ra với nền tảng này đang xảy ra.
Douglas Gaskell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.