Ändern Sie die Bildlaufgeschwindigkeit mit libinput

16

Mein Mausrad scrollt zu langsam, deshalb möchte ich die Anzahl der Zeilen für jeden Scroll "Tick" erhöhen. Ich lese , dass dies möglich ist , durch die Einstellung Evdev Scrolling Distancemit xinput, aber ich verwende , libinputund ich sehe zu scrollen Abstand nicht alles im Zusammenhang.

Ausgabe von xinput list-propsauf meiner Maus:

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                                                  

Wie kann ich meine Bildlaufgeschwindigkeit ändern? Ich verwende Arch Linux, Xfce 4.12.

Andrew Sun.
quelle
1
Es gibt jetzt eine Feature-Anfrage für libinput, um dies zu implementieren (mit freundlicher Genehmigung von @clel ).
25.

Antworten:

4

Es gibt derzeit keine API zum Ändern der Bildlaufgeschwindigkeit für libinput-Geräte. In diesem Blog wird jedoch erläutert, wie Mausradklicks einem Bewegungswinkel entsprechen, den Sie per Maus in der udev-Konfigurationsdatei von systemd ändern können /usr/lib/udev/hwdb.d/70-mouse.hwdb. Lesen Sie die Kommentare zu MOUSE_WHEEL_CLICK_ANGLEam Anfang dieser Datei.

Erstellen Sie eine neue Datei, um eine lokale Änderung vorzunehmen

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

und fügen Sie Ihre übergeordnete Regel hinzu. Wenn Sie zum Beispiel die ImExPS / 2-Maus haben, können Sie die Standardeinstellung von 15 Grad pro Klick auf 30 Grad mit verdoppeln

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

Laden Sie die udev-Datenbank neu

 sudo udevadm hwdb --update
 sudo udevadm trigger /dev/input/event1
meuh
quelle
1
There is no current api for changing the scroll speed for libinput devices: hat sich das seitdem geändert?
Orschiro
1
@orschiro Ich habe den Eindruck, dass eine API nicht die Absicht ist. Die Hoffnung wäre, dass alle Geräte in udev korrekt identifiziert und konfiguriert werden und dann keine Benutzerkonfiguration erforderlich ist. Schauen Sie sich alle libinput-Blogs an . Insbesondere 1.4 entspricht dem Beenden der anfänglichen TODO-Liste für libinput.
Meuh
4
In Ubuntu 16.10 befindet sich das System udev conf in /lib/udev/hwdb.d/70-mouse.hwdb
Jonas Berlin
2
trotzdem das selbe mit einem touchpad machen?
Francesco
1
@daboross Ja. Es sind zwei Aspekte zu berücksichtigen: Bei der obigen Antwort wird lediglich versucht, die Ausgabe eines Geräts zu normalisieren, sodass das System trotz der Berichte berechnen kann, dass zwei verschiedene Mäuse dieselbe Bewegungsgröße aufweisen von der Hardware ist anders. Der zweite Aspekt ist dann, wie viel Bildschirmbewegung dies darstellen sollte, und das wird durch die komplexe Menge an Software bestimmt, mit der der Benutzer konfrontiert ist, wie z. B. das Grafik-Toolkit, das Fenstersystem, die Auflösung des Bildschirms usw.
Meuh
3

Libinput hat kein "für jedes Rad Scroll, mach n Linien / Grad" -Konzept als gemeinsame Partei, die Einstellung scheint vorerst gerätespezifisch zu sein, da einige Logitech den Parameter haben Evdev Scrolling Distance (278), der möglicherweise mit dem "alten" ausgeliefert wurde. Evdev-Treiber enthält.

Dies wird meiner Meinung nach als Regression für die Benutzererfahrung angesehen, bei der zunächst die Aufnahme einer konfigurierbaren Maus-Scroll-Empfindlichkeit in das allgemeine Toolkit (libinput) abgelehnt wurde. Es ist nun Teil einer Pull-Anforderung , in zukünftigen Versionen zu sein - Eventuell müssen die Funktionsaufrufe in jeder Desktop-Umgebung implementiert werden.

Es gibt viele Möglichkeiten, ein solches Problem zu beheben, dies hängt jedoch von der Linux-Distribution ab.

  1. Seien Sie glücklich und haben Sie eine fahrerspezifische Scrollempfindlichkeit - überprüfen Sie dies, indem Sie nach allen Eingaben mit Scrollvariablen suchen:

    xEingabeliste | cut -f2 | cut -f2 -d '=' | \
                xargs -d $ '\ n' -I '{}' sh -c "xinput list-requisiten '{}' | grep -iq scroll && \
                                        (echo Listing dev id '{}'; xinput list-requisiten '{}') "
    und Einstellen der spezifischen Variablen durch , wobei der Gerätename und der Einstellungsname sein können.xinput --set-prop <ID> <SUB-ID> <values><ID><SUB-ID>

  2. Eine allgemeine Fix Kabel umstecken den libinput Code und den Wiederaufbau .

  3. Sie können versuchen, ein Rollback auf udevadm / evdev-Schnittstellen mit X11 durchzuführen, und dann die X11-Variable MOUSE_WHEEL_CLICK_ANGLE versuchen .

  4. Von Bezug des letzten Punkt zu verwenden , seine mögliche imwheelzu emulieren Maus blättern Klicks in multiplizieren Wert.

    # 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. Es gibt spezielle Anwendungseinstellungen für die Empfindlichkeit des Mausrads , wie Chrome SmoothScroll und Firefox SmoothWheel ref .

Mateus Matucuma Teixeira
quelle
Die Umstellung auf Libinput war in vielerlei Hinsicht eine UX-Regression, die fast ausschließlich auf die Kontrolle der Benutzer über das Verhalten ihrer Hardware zurückzuführen ist.
Douglas Gaskell