Reibungsloses Scrollen - woher kommt es?

8

Also habe ich mich eine Weile mit Ubuntu und anderen Debian-basierten Distributionen beschäftigt und irgendwie wie Crunchbang. Aber ich habe auch bemerkt, dass Ubuntu (wie auch LMDE) mit dieser ausgefallenen / netten / eyecandy-Funktion namens "Smooth Scrolling" ausgestattet ist (nicht nur in Firefox / Chrome beziehe ich mich auf das systemweite Scrolling-Erlebnis).

Ich möchte es auch in Crunchbang haben. Ich habe wochenlang im Internet nach Dokumentation zu dieser Funktion gesucht, aber ich kann nichts finden! Ich konnte nur verstehen (und ich bin mir nicht einmal sicher), dass reibungsloses Scrollen mit GTK + (und vielleicht mit dem Synaptics-Treiber?) Und sonst nichts zu tun hat.

Um es klar zu machen, beziehe ich mich auf den gleichen Unterschied zwischen dem Scrollen in WinXP (normalerweise 3 oder 5 Zeilen gleichzeitig) mit einem Mausrad und dem Scrollen in OSX mit ihren Clickpads (wo es eher wie Wischen auf einem Touchscreen ist).

Wenn es wichtig ist, verwende ich Crunchbang in einer Samsung-Serie 9 mit einem Elantech-Clickpad.

Könnten Sie mir bitte helfen, den Weg zu finden, um mehr zu erfahren? Oder kennen Sie einen Leitfaden, um es in Crunchbang zum Laufen zu bringen?

apsql
quelle

Antworten:

2

Dies wurde in den Crunchbang-Foren ausführlich beantwortet. Sie beschreiben dieses Scrollen als "glattes Trägheits-Scrollen".

Man muss den Touchpad-Treiber korrekt konfigurieren, und das angegebene Beispiel, das so klingt, als könnte es universell genug sein, um auch Ihren zu konfigurieren, verwendet den Paketsynclient .

Sie haben diese Einstellungen in synclient verwendet. Ich habe die Manpage oben verlinkt:

Parameter settings:
LeftEdge                = 1752
RightEdge               = 5192
TopEdge                 = 1620
BottomEdge              = 4236
FingerLow               = 25
FingerHigh              = 30
FingerPress             = 256
MaxTapTime              = 92
MaxTapMove              = 76
MaxDoubleTapTime        = 180
SingleTapTimeout        = 180
ClickTime               = 100
FastTaps                = 0
EmulateMidButtonTime    = 75
EmulateTwoFingerMinZ    = 282
EmulateTwoFingerMinW    = 7
VertScrollDelta         = 100
HorizScrollDelta        = 100
VertEdgeScroll          = 1
HorizEdgeScroll         = 0
CornerCoasting          = 0
VertTwoFingerScroll     = 1
HorizTwoFingerScroll    = 0
MinSpeed                = 0
MaxSpeed                = 1.22754
AccelFactor             = 0.0615836
TrackstickSpeed         = 0
EdgeMotionMinZ          = 30
EdgeMotionMaxZ          = 160
EdgeMotionMinSpeed      = 1
EdgeMotionMaxSpeed      = 401
EdgeMotionUseAlways     = 0
UpDownScrolling         = 1
LeftRightScrolling      = 1
UpDownScrollRepeat      = 1
LeftRightScrollRepeat   = 1
ScrollButtonRepeat      = 100
TouchpadOff             = 0
LockedDrags             = 0
LockedDragTimeout       = 5000
RTCornerButton          = 0
RBCornerButton          = 0
LTCornerButton          = 0
LBCornerButton          = 0
TapButton1              = 1
TapButton2              = 0
TapButton3              = 0
ClickFinger1            = 1
ClickFinger2            = 1
ClickFinger3            = 1
CircularScrolling       = 0
CircScrollDelta         = 0.1
CircScrollTrigger       = 0
CircularPad             = 0
PalmDetect              = 0
PalmMinWidth            = 10
PalmMinZ                = 200
CoastingSpeed           = 30
CoastingFriction        = 30
PressureMotionMinZ      = 30
PressureMotionMaxZ      = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice         = 1
TapAndDragGesture       = 1
AreaLeftEdge            = 0
AreaRightEdge           = 0
AreaTopEdge             = 0
AreaBottomEdge          = 0
HorizHysteresis         = 25
VertHysteresis          = 25
ClickPad                = 0

... und fügte dies zum Autostart hinzu:

    ## Detect and configure touchpad. See 'man synclient' for more info.
if egrep -iq 'touchpad' /proc/bus/input/devices; then
synclient VertEdgeScroll=1 &
synclient TapButton1=1 &
synclient CoastingSpeed=35 &
synclient CoastingFriction=30 &
vergaßstackxpassword
quelle
0

Diesen Link gefunden. Sieht so aus, als könnten Sie xev ausführen und es wird eine Menge Ausgabe über Ihr Scrollen kotzen.

Mit xev können Sie zumindest sehen, ob es sich um ein reibungsloses Scrollen oder ein Scrollen von Schaltflächenereignissen handelt. Auf meinem G500 mit ausgeschalteten Klicks ist es immer noch nicht glatt. xev zeigt bei jedem Bildlauf ein "Schaltflächen" -Ereignis an.

ButtonPress event, serial 32, synthetic NO, window 0x5000001,
    root 0xbd, subw 0x5000002, time 183061084, (53,58), root:(924,530),
    state 0x0, button 5, same_screen YES

ButtonPress event, serial 32, synthetic NO, window 0x5000001,
    root 0xbd, subw 0x5000002, time 183061644, (53,58), root:(924,530),
    state 0x0, button 4, same_screen YES

/ubuntu/139015/enable-smooth-scrolling-for-mouse-wheel

Fand das auch.

http://andym3.wordpress.com/2012/05/27/fixing-natural-scrolling-in-ubuntu-12-04/

LinuxProtocol
quelle
2
Sie werden mit xev niemals "Smooth Scrolling" -Ereignisse erkennen. xev ist bei XInput 2-Ereignissen veraltet. Was x tut, wenn es "glatte" XI2-Bildlaufereignisse erkennt, übersetzt sie in die "alten" 4/5-Tastendrücke, um mit der "alten" Software übereinzustimmen. Aus diesem Grund erkennt das "alte" xev nur 4/5 Tastendrücke, selbst bei "glatten" XI2-Ereignissen des synaptischen Touchpads.
Dustin.b
@ Dustin.b Mit welchem ​​Dienstprogramm kann ich "rohe" glatte "Ereignisse" (wenn "Ereignisse" überhaupt noch die richtige Terminologie ist) von meinem Touchpad oder einem anderen Gerät erfassen, um festzustellen, ob das Gerät sogar das reibungslose Scrollen unterstützt?
user29020
4
@ user29020 Ich würde xinput empfehlen. Geben Sie einfach ein >$ xinput, um eine Liste der Eingabegeräte zu erhalten. Wählen Sie das Gerät basierend auf dem in dieser Liste angezeigten ID-Wert. Nach diesem Typ, >$ xinput --test-xi2 <id>wobei <id> die Nummer des Geräts ist. Ohne die Maus / das Pad zu bewegen, können Sie bereits die Bewerter sehen. Sie können den Bewerter 3 "Rel Vert Scroll" sehen, wenn Sie jetzt das Gerät bewegen, für das Sie Bewegungsereignisse sehen. Eine Fingerbewegung führt zu Bewertungsflags 0,1 (x, y). Zwei-Finger-Schriftrolle in der Bewertungsflagge 3.
Dustin.b