我的 ThinkPad x250 上的点击板设备或驱动程序忽略了慢速移动时的位置更新,导致跳跃、运动不精确、光标暂时卡住。这对于精确的光标调整来说尤其令人恼火。
症状:
- 当手指移动得太慢时,光标会停止移动,并在移动足够的距离后恢复,从而导致跳跃。
- 这是阈值问题,而不是分辨率问题。阈值以上,运动平稳。
- 在其工作时,evtest 会显示 ABS_MT_POSITION_X、ABS_MT_POSITION_Y、ABS_X、ABS_Y、ABS_PRESSURE、ABS_MT_PRESSURE 事件。
- 卡住期间,设备会继续发送更新,但仅发送 ABS_PRESSURE 和 ABS_MT_PRESSURE。
跳跃量取决于驱动程序设置。建议的解决方案是更改驱动程序设置,通过大幅降低可用分辨率和加速度曲线来减少这种不稳定行为导致的跳跃。这虽然不能解决阈值问题,但可以减少跳跃症状。
安德鲁·潘尼特链接此类错误报告。该错误报告中的示例视频: https://www.youtube.com/watch?v=oTgaf8tTNEc, https://i.stack.imgur.com/qgM0U.jpg
系统:Ubuntu 16.04,目前为 4.4.0-92-generic x86_64。xinput 将设备列为“SynPS/2 Synaptics TouchPad”。我在两台 X250 和 T-??? ThinkPad 上观察到了这种行为。
我的驱动程序配置是通过 synclient 和 xinput 调整的。我没有找到可以改变此行为的参数。请参阅下面的 synclient、xinput 输出:
~$ synclient
Parameter settings:
LeftEdge = 1545
RightEdge = 5399
TopEdge = 1333
BottomEdge = 4521
FingerLow = 25
FingerHigh = 30
MaxTapTime = 180
MaxTapMove = 255
MaxDoubleTapTime = 100
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 0
EmulateTwoFingerMinZ = 282
EmulateTwoFingerMinW = 7
VertScrollDelta = 116
HorizScrollDelta = 116
VertEdgeScroll = 0
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 1
MaxSpeed = 1
AccelFactor = 0.0343997
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 2
ClickFinger1 = 1
ClickFinger2 = 3
ClickFinger3 = 2
CircularScrolling = 1
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 200
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 0
TapAndDragGesture = 1
AreaLeftEdge = 2000
AreaRightEdge = 5000
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 0
VertHysteresis = 0
ClickPad = 1
RightButtonAreaLeft = 3472
RightButtonAreaRight = 0
RightButtonAreaTop = 4112
RightButtonAreaBottom = 0
MiddleButtonAreaLeft = 0
MiddleButtonAreaRight = 0
MiddleButtonAreaTop = 0
MiddleButtonAreaBottom = 0
~$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (139): 1
Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (270): 1
Device Accel Constant Deceleration (271): 1.000000
Device Accel Adaptive Deceleration (272): 1.000000
Device Accel Velocity Scaling (273): 1.000000
Synaptics Edges (295): 1545, 5399, 1333, 4521
Synaptics Finger (296): 25, 30, 0
Synaptics Tap Time (297): 180
Synaptics Tap Move (298): 255
Synaptics Tap Durations (299): 180, 100, 100
Synaptics ClickPad (300): 1
Synaptics Middle Button Timeout (301): 0
Synaptics Two-Finger Pressure (302): 282
Synaptics Two-Finger Width (303): 7
Synaptics Scrolling Distance (304): 116, 116
Synaptics Edge Scrolling (305): 0, 0, 0
Synaptics Two-Finger Scrolling (306): 1, 1
Synaptics Move Speed (307): 1.000000, 1.000000, 0.034400, 0.000000
Synaptics Off (308): 0
Synaptics Locked Drags (309): 0
Synaptics Locked Drags Timeout (310): 5000
Synaptics Tap Action (311): 2, 3, 0, 0, 1, 3, 2
Synaptics Click Action (312): 1, 3, 2
Synaptics Circular Scrolling (313): 1
Synaptics Circular Scrolling Distance (314): 0.100000
Synaptics Circular Scrolling Trigger (315): 0
Synaptics Circular Pad (316): 0
Synaptics Palm Detection (317): 0
Synaptics Palm Dimensions (318): 10, 200
Synaptics Coasting Speed (319): 20.000000, 50.000000
Synaptics Pressure Motion (320): 30, 160
Synaptics Pressure Motion Factor (321): 1.000000, 1.000000
Synaptics Resolution Detect (322): 1
Synaptics Grab Event Device (323): 0
Synaptics Gestures (324): 1
Synaptics Capabilities (325): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (326): 73, 53
Synaptics Area (327): 2000, 5000, 0, 0
Synaptics Soft Button Areas (328): 3472, 0, 4112, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (329): 0, 0
Device Product ID (260): 2, 7
Device Node (261): "/dev/input/event5"
答案1
这听起来和我在 Thinkpad X230 上遇到的问题一模一样。有一个关于此问题的错误报告这里/etc/X11/xorg.conf.d/50-touchpad.conf
这建议您创建包含以下设置的文件:
Section "InputClass"
Identifier "touchpad"
MatchProduct "SynPS/2 Synaptics TouchPad"
Driver "synaptics"
# fix touchpad resolution
Option "VertResolution" "100"
Option "HorizResolution" "65"
# disable synaptics driver pointer acceleration
Option "MinSpeed" "1"
Option "MaxSpeed" "1"
# tweak the X-server pointer acceleration
Option "AccelerationProfile" "2"
Option "AdaptiveDeceleration" "16"
Option "ConstantDeceleration" "16"
Option "VelocityScale" "32"
EndSection
调整VelocityScale
设置后,我的触摸板的行为得到了极大改善。