Libinput ile kaydırma hızını değiştirme


16

Fare tekerleğim çok yavaş kaydırıyor, bu yüzden her kaydırma "tik" için satır sayısını artırmak istiyorum. Bunu Evdev Scrolling Distanceile ayarlayarak mümkün olduğunu okudum xinput, ancak kullanıyorum libinputve kaydırma mesafesi ile ilgili hiçbir şey görmüyorum.

Faremin çıktısı 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                                                  

Kaydırma hızımı nasıl değiştirebilirim? Arch Linux, Xfce 4.12 üzerinde çalışıyorum.


1
Bir anda var özellik isteği bu (nezaket uygulamaya libinput için @clel ).
n.st

Yanıtlar:


4

Libinput aygıtları için kaydırma hızını değiştirmek için geçerli bir API yoktur, ancak bu blog fare tekerleği tıklamalarının sistemd'nin udev yapılandırma dosyasında fare başına değiştirebileceğiniz bir hareket açısına nasıl karşılık geldiğini açıklar /usr/lib/udev/hwdb.d/70-mouse.hwdb. MOUSE_WHEEL_CLICK_ANGLEBu dosyanın başlangıcındaki yorumları okuyun .

Yerel bir değişiklik yapmak için yeni bir dosya oluşturun

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

ve geçersiz kılma kuralınızı ekleyin. Örneğin, ImExPS / 2 fareniz varsa, tıklama başına varsayılan 15 dereceyi 30 dereceye kadar ikiye katlayabilirsiniz.

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

Udev veritabanını yeniden yükleyin

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

1
There is no current api for changing the scroll speed for libinput devices: o zamandan beri değişti mi?
orschiro

1
@orschiro Bir API'nin niyet olmadığı izlenimini edindim. Umarım tüm cihazlar udev'de düzgün bir şekilde tanımlanır ve yapılandırılır ve kullanıcı yapılandırmasına gerek kalmaz. Tüm libinput bloglarına göz atın . Özellikle 1.4 , libinput için ilk TODO listesinin sonlandırılmasına karşılık gelir.
meuh

4
Ubuntu 16.10'da udev conf sistemi /lib/udev/hwdb.d/70-mouse.hwdb içinde
Jonas Berlin

2
yine de bir touchpad ile aynı şeyi yapmak için?
Francesco

1
@daboross Evet. Dikkate alınması gereken iki husus vardır: yukarıdaki cevap bir cihazdan çıktıyı normalleştirmeye çalışmaktır, böylece bir kullanıcı 2 farklı farede aynı miktarda hareket yaptığında, sistem raporlara rağmen eşdeğer olduğunu hesaplayabilir donanımdan farklı. İkinci yön, bunun ne kadar ekran hareketi temsil etmesi gerektiğidir ve bu, grafik araç takımı, pencereleme sistemi, ekran dpi'si ve benzeri gibi kullanıcının karşılaştığı karmaşık yazılım miktarı tarafından belirlenir.
2018

3

Libinput'un ortak bir parti olarak " her tekerlek kaydırma için n satır / derece yap" kavramı yoktur, bazı Logitech'inEvdev Scrolling Distance (278) muhtemelen "eski" ile birlikte gelen parametreye sahip olması nedeniyle, ayar şimdilik cihaza özgü gibi görünmektedir. Evdev sürücüsü içerir.

Bu , ilk bakışta, ortak araç setine (libinput) yapılandırılabilir bir fare kaydırma hassasiyetinin dahil edilmesinin reddedildiği, şimdi gelecek sürümlerde olması için bir çekme isteğinin parçası olduğu fikrime göre, kullanıcı deneyimi için bir gerileme olarak kabul edilecektir. - büyük olasılıkla işlev çağrılarının her Masaüstü Ortamında uygulanması gerekecektir.

Bu sorunu çözmek için birçok olasılık vardır, ancak Linux dağıtımına bağlıdır.

  1. Şanslı olun ve sürücüye özgü kaydırma hassasiyetine sahip olun - kaydırma değişkenlerine sahip tüm girişler için arama yaparak kontrol edin:

    giriş listesi | kesim -f2 | kesim -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-props '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-props '{}') "
    ve belirli bir değişkenin ayarlanması; burada cihaz adı ve ayar adı olabilir.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Genel düzeltme olduğunu Tekrar yapıştırma libinput kodu ve yeniden inşa .

  3. X11 ile udevadm / evdev arabirimlerine geri dönmeyi deneyebilir ve ardından MOUSE_WHEEL_CLICK_ANGLE X11 değişkenini deneyebilirsiniz .

  4. Gönderen son öğenin referans , olası kullanımı imwheelçarpın değerindeki taklit fare kaydırma tıklamaya.

    # 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. Fare tekerleği hassasiyeti için Chrome SmoothScroll ve Firefox SmoothWheel ref gibi belirli uygulama ayarları vardır .


1
Libinput geçişi birçok yönden UX regresyonu olmuştur, neredeyse hepsi donanımlarının davranışını kullanıcı kontrolüne bırakmıştır ... Bunun gerçekleştiği platform göz önüne alındığında talihsiz bir durumdur.
Douglas Gaskell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.