![平滑滚动 - 它从哪里来?](https://linux22.com/image/38558/%E5%B9%B3%E6%BB%91%E6%BB%9A%E5%8A%A8%20-%20%E5%AE%83%E4%BB%8E%E5%93%AA%E9%87%8C%E6%9D%A5%EF%BC%9F.png)
我已经使用 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/