Rolagem suave - de onde vem?


8

Então, eu tenho lidado com o Ubuntu e outras distribuições baseadas no Debian há um tempo e meio como o Crunchbang. Mas também observei que o Ubuntu (assim como o LMDE) vem com esse recurso sofisticado / agradável / atraente chamado "rolagem suave" (não apenas no Firefox / Chrome, estou me referindo à experiência de rolagem em todo o sistema).

Eu quero tê-lo também em Crunchbang. Estou pesquisando na Web documentação sobre o recurso há semanas, mas não consigo encontrar nada! Eu podia entender (e nem tenho certeza) que a rolagem suave tem a ver com o GTK + (e o driver Synaptics, talvez?), E nada mais.

Para deixar claro, estou me referindo à mesma diferença entre rolar no WinXP (geralmente 3 ou 5 linhas por vez) com uma roda do mouse e rolar no OSX com seus cliques (onde é mais como deslizar em uma tela sensível ao toque).

Se tiver alguma importância, estou executando o Crunchbang em um Samsung Series 9, com um clickpad da Elantech.

Você poderia me ajudar a encontrar o caminho para aprender mais? Ou você conhece algum guia para fazê-lo funcionar em Crunchbang?

Respostas:


2

Isso foi respondido em profundidade nos fóruns do Crunchbang , eles descrevem essa rolagem como "rolagem inercial suave".

É preciso configurar o driver do touchpad corretamente, e o exemplo dado, que parece universal o suficiente para configurar o seu, também usa o sincronizador de pacotes .

Eles usaram essas configurações no synclient, vinculei a página de manual acima:

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

... e adicionou isso ao início 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

Encontrei este link. Parece que você pode executar o xev e ele vomitará um monte de informações sobre sua rolagem.

Usando o xev, você pode pelo menos ver se é rolagem suave ou rolagem de evento de botão. No meu G500 com os cliques desligados, ainda não é suave. O xev mostra um evento "button" toda vez que rola.

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

Também encontrei isso.

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


2
você nunca detectará eventos de "rolagem suave" com o xev. O xev está desatualizado no caso de eventos do XInput 2. o que x está fazendo se detectar eventos de rolagem XI2 "suaves" está traduzindo-os para as "antigas" 4/5 prensas de botão para serem consistentes com o software "antigo". porque o xev "antigo" detectará apenas pressionamentos de botão 4/5, mesmo em casos de touchpad sináptico "suave" de eventos XI2.
dustin.b

@ dustin.b Que utilitário eu poderia usar para capturar eventos "brutos" suaves "" (se "eventos" ainda são a terminologia correta) do meu touchpad ou outro dispositivo para ver se o dispositivo suporta a rolagem suave?
user29020

4
@ user29020 eu recomendaria o xinput. Basta digitar >$ xinputpara reunir uma lista de dispositivos de entrada. Escolha o dispositivo com base no valor do ID mostrado nesta lista. Depois desse tipo, >$ xinput --test-xi2 <id>onde <id> é o número do dispositivo. Sem mover o mouse / pad, você já pode ver os avaliadores. você pode ver o avaliador 3 "Rel Vert Scroll" se agora mover o dispositivo para ver eventos de movimento. O movimento de um dedo resulta em sinalizadores de avaliador 0,1 (x, y). Rolagem com dois dedos na bandeira do avaliador 3.
dustin.b 01/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.