Desplazamiento suave: ¿de dónde viene?


8

Entonces, he estado lidiando con Ubuntu y otras distribuciones basadas en Debian por un tiempo y un poco como Crunchbang. Pero también he notado que Ubuntu (así como LMDE) viene con esa característica elegante / agradable / llamativa llamada "desplazamiento suave" (no solo en Firefox / Chrome, me refiero a la experiencia de desplazamiento en todo el sistema).

Quiero tenerlo en Crunchbang también. He estado buscando en la web documentación sobre la función durante semanas, ¡pero no puedo encontrar nada! Podía entender (y ni siquiera estoy seguro) que el desplazamiento suave tenga que ver con GTK + (¿y el controlador Synaptics quizás?), Y nada más.

Para que quede claro, me refiero a la misma diferencia entre desplazarse en WinXP (comúnmente 3 o 5 líneas a la vez) con una rueda del mouse y desplazarse en OSX con sus botones de control (donde es más como deslizar el dedo en una pantalla táctil).

Si es de alguna importancia, estoy ejecutando Crunchbang en un Samsung Series 9, con un clickpad Elantech.

¿Podrías ayudarme a encontrar la manera de aprender más? ¿O conoces alguna guía para que funcione en Crunchbang?

Respuestas:


2

Esto fue respondido en profundidad en los foros de Crunchbang , describen este desplazamiento como "desplazamiento inercial suave".

Uno tiene que configurar el controlador del panel táctil correctamente, y el ejemplo dado, que parece que podría ser lo suficientemente universal como para configurar el suyo también, usa el sincronizador del paquete .

Han utilizado esta configuración en sincronía, he vinculado la página del manual, arriba:

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

... y agregó esto al inicio automático:

    ## 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 &

0

Encontré este enlace. Parece que puedes ejecutar xev y generará un montón de resultados sobre tu desplazamiento.

Usando xev, al menos puede ver si se trata de un desplazamiento suave o de un evento de botón. En mi G500 con los clics apagados, todavía no es suave. xev muestra un evento de "botón" cada vez que se desplaza.

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

También encontré esto.

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


2
nunca detectará eventos de "desplazamiento suave" con xev. xev está desactualizado en caso de eventos XInput 2. lo que hace x si detecta eventos de desplazamiento XI2 "suaves" es traducirlos a las "4" prensas de botón "antiguas" para que sean coherentes con el software "antiguo". porque el "viejo" xev solo detectará 4/5 pulsaciones de botón incluso en casos de eventos XI2 "suaves" del panel táctil sináptico.
dustin.b

@ dustin.b ¿Qué utilidad podría usar para capturar eventos "suaves" "sin procesar" (si "eventos" es incluso la terminología correcta) desde mi panel táctil u otro dispositivo para ver que el dispositivo podría soportar el desplazamiento suave?
user29020

44
@ user29020 recomendaría xinput. Simplemente escriba >$ xinputpara recopilar una lista de dispositivos de entrada. Elija el dispositivo según el valor de identificación que se muestra en esta lista. Después de ese tipo, >$ xinput --test-xi2 <id>donde <id> es el número del dispositivo. Sin mover el mouse / pad ya puede ver los evaluadores. puede ver el valuator 3 "Rel Vert Scroll" si ahora mueve el dispositivo y ve eventos de movimiento. El movimiento de un dedo da como resultado los indicadores de valoración 0,1 (x, y).
Desplazamiento con
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.