平滑滚动 - 它从哪里来?

平滑滚动 - 它从哪里来?

我已经使用 Ubuntu 和其他基于 Debian 的发行版有一段时间了,有点像 Crunchbang。但我也注意到 Ubuntu(以及 LMDE)附带了一种奇特/漂亮/养眼的功能,称为“平滑滚动”(不仅仅是在 Firefox/Chrome 中,我指的是系统范围的滚动体验)。

我也想在 Crunchbang 中拥有它。几周来我一直在网上搜索有关该功能的文档,但什么也没找到!我只能理解(我什至不确定)平滑滚动与 GTK+(也许还有 Synaptics 驱动程序?)有关,除此之外别无其他。

为了清楚起见,我指的是在 WinXP 中使用鼠标滚轮滚动(通常一次 3 或 5 行)与在 OSX 中使用触控板滚动(更像是在触摸屏上滑动)之间的差异。

如果有什么重要的话,我会在配备 Elantech 触控板的 Samsung Series 9 上运行 Crunchbang。

您能帮我找到了解更多信息的方法吗?或者你知道有什么指南可以让它在 Crunchbang 中工作吗?

答案1

这个问题在官网得到了深入的解答Crunchbang 论坛,他们将这种滚动描述为“平滑惯性滚动”。

人们必须正确配置触摸板驱动程序,并且给出的示例(听起来它也可以通用到足以配置您的驱动程序)使用该软件包同步客户端

他们在 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 &

答案2

找到了这个链接。看起来你可以运行 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

https://askubuntu.com/questions/139015/enable-smooth-scrolling-for-mouse-wheel

还发现了这个。

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

相关内容