Ubah kecepatan gulir dengan libinput


16

Roda mouse saya bergulir terlalu lambat, jadi saya ingin menambah jumlah garis untuk setiap "centang" gulir. Saya membaca bahwa ini dimungkinkan dengan mengatur Evdev Scrolling Distancedengan xinput, namun, saya menggunakan libinputdan saya tidak melihat apa pun yang terkait dengan jarak gulir.

Output dari xinput list-propspada mouse saya:

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                                                  

Bagaimana saya bisa mengubah kecepatan gulir saya? Saya berjalan di Arch Linux, Xfce 4.12.


1
Sekarang ada permintaan fitur untuk libinput untuk mengimplementasikan ini (milik @clel ).
n.st

Jawaban:


4

Tidak ada api saat ini untuk mengubah kecepatan gulir untuk perangkat libinput, tetapi blog ini menjelaskan bagaimana klik roda mouse sesuai dengan sudut gerakan yang dapat Anda ubah per mouse dalam file konfigurasi udev systemd /usr/lib/udev/hwdb.d/70-mouse.hwdb. Baca komentar tentang MOUSE_WHEEL_CLICK_ANGLEdi awal file ini.

Untuk membuat perubahan lokal, buat file baru

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

dan tambahkan aturan utama Anda. Misalnya jika Anda memiliki mouse ImExPS / 2, Anda dapat menggandakan standar 15 derajat per klik menjadi 30 derajat

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

Muat ulang basis data 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: sudahkah ini berubah sejak saat itu?
orschiro

1
@orschiro Saya mendapat kesan bahwa api bukanlah niat. Harapannya adalah bahwa semua perangkat dapat diidentifikasi dan dikonfigurasikan dengan benar di udev dan tidak perlu ada konfigurasi pengguna. Periksa semua blog libinput . Khususnya 1,4 terkait dengan penyelesaian daftar TODO awal untuk libinput.
meuh

4
di Ubuntu 16.10 sistem udev conf di /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin

2
lagi pula untuk melakukan hal yang sama dengan touchpad?
Francesco

1
@aboross Ya. Ada dua aspek yang perlu dipertimbangkan: jawaban di atas hanya mencoba untuk menormalkan output dari perangkat sehingga ketika pengguna melakukan jumlah gerakan yang sama pada 2 tikus yang berbeda, misalnya, sistem dapat menghitung bahwa mereka setara, meskipun ada laporan dari perangkat keras yang berbeda. Aspek kedua adalah berapa banyak gerakan screeen ini harus mewakili, dan yang ditentukan oleh jumlah kompleks perangkat lunak yang dihadapi pengguna, seperti toolkit grafis, sistem windowing, dpi layar dan sebagainya.
meuh

3

Libinput tidak memiliki konsep "untuk setiap roda gulir, jangan n garis / derajat" sebagai pihak umum, pengaturannya tampaknya khusus untuk perangkat saat ini, karena beberapa Logitech memiliki parameter Evdev Scrolling Distance (278)yang mungkin datang dengan "lama" Driver evdev termasuk.

Ini akan dianggap sebagai regresi untuk pengalaman pengguna menurut pendapat saya, di mana pada awalnya, dimasukkannya sensitivitas gulir mouse yang dapat dikonfigurasi ke dalam toolkit umum (libinput), ditolak, sekarang merupakan bagian dari permintaan tarik untuk berada di versi mendatang. - mungkin pemanggilan fungsi harus diterapkan di setiap Lingkungan Desktop.

Ada banyak kemungkinan untuk memperbaiki masalah seperti itu, tetapi tergantung pada distribusi Linux.

  1. Beruntung dan memiliki sensitivitas gulir khusus driver - periksa dengan melakukan pencarian untuk semua input dengan variabel gulir:

    daftar xinput | cut -f2 | cut -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-props '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    dan mengatur variabel tertentu dengan , di mana bisa nama perangkat dan bisa menjadi nama pengaturan.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Perbaikan umum adalah pengiriman ulang kode libinput dan pembangunan kembali .

  3. Anda dapat mencoba untuk mengembalikan ke antarmuka udevadm / evdev dengan X11, dan kemudian mencoba variabel X11 MOUSE_WHEEL_CLICK_ANGLE .

  4. Dari referensi item terakhir , dimungkinkan untuk digunakan imwheeluntuk meniru klik gulir mouse dalam nilai berlipat ganda.

    # 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. Ada pengaturan aplikasi khusus untuk sensitivitas roda mouse, seperti Chrome SmoothScroll dan Firefox SmoothWheel ref .


1
Transisi Libinput telah menjadi regresi UX dalam banyak hal, hampir semuanya turun ke kontrol pengguna atas perilaku perangkat keras mereka ... Yang disayangkan mengingat platform tempat ini terjadi.
Douglas Gaskell
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.