平滑滚动-它来自哪里?


8

因此,我已经与Ubuntu和其他基于Debian的发行版打交道已有一段时间了,有点像Crunchbang。但是我也一直注意到Ubuntu(以及LMDE)具有所谓的“平滑滚动”的奇特/精美/令人垂涎的功能(不只是在Firefox / Chrome中,我指的是系统范围的滚动体验)。

我也想在Crunchbang中使用它。我已经在网上搜索有关该功能的文档已有好几个星期了,但是我什么都找不到!我可以理解(而且我甚至不确定)平滑滚动与GTK +(也许还有Synaptics驱动程序?)有关,而与其他无关。

为了清楚起见,我指的是使用鼠标滚轮在WinXP中滚动(一次通常3行或5行)和使用其点击板在OSX中滚动(这更像是在触摸屏上滑动)之间的相同区别。

如果有任何重要意义,我将在带有Elantech Clickpad的Samsung Series 9中运行Crunchbang。

您能帮我找到更多的学习方法吗?还是您知道任何在Crunchbang中使用它的指南?

Answers:


2

Crunchbang论坛对此进行了深入回答,他们将这种滚动称为“平滑惯性滚动”。

必须正确配置触摸板驱动程序,并且给出的示例听起来很通用,足以配置您的触摸板驱动程序,使用包synclient

他们在synclient中使用了这些设置,我在上面链接了手册页:

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

...并将其添加到自动启动:

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

找到了此链接。看起来您可以运行xev,它将吐出大量有关滚动的输出。

使用xev,您至少可以查看它是平滑滚动还是按钮事件滚动。在我的G500上,如果关闭了咔嗒声,它仍然不平滑。xev每次滚动都会显示一个“按钮”事件。

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

也发现了这一点。

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


2
您将永远不会使用xev检测到“平滑滚动”事件。如果发生XInput 2事件,则xev已过时。如果x检测到“平滑的” XI2滚动事件,将执行的操作会将其转换为“旧的” 4/5按钮,以与“旧的”软件保持一致。因为即使在突触式触摸板“平滑” XI2事件的情况下,“旧” xev也只能检测到4/5按钮按下。
dustin.b

@ dustin.b我可以使用什么实用程序从触摸板或其他设备捕获“原始的”平滑“事件”(如果“事件”甚至不再是正确的术语),以查看该设备甚至可以支持平滑滚动?
user29020

4
@ user29020我会推荐xinput。只需键入>$ xinput即可收集输入设备的列表。根据此列表中显示的id值选择设备。在该类型之后,>$ xinput --test-xi2 <id>其中<id>是设备的编号。无需移动鼠标/垫,您已经可以看到评估器。如果现在移动设备,则可以看到评估器3“ Rel Vert Scroll”。一根手指的移动导致评估器标志0,1(x,y)。评估者标志3中的两根手指滚动。
ustin.b,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.