Thinkpad x250 synaptics clickpad 在缓慢移动时省略位置更新。动态死区、光标冻结、跳跃?

Thinkpad x250 synaptics clickpad 在缓慢移动时省略位置更新。动态死区、光标冻结、跳跃?

我的 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=oTgaf8tTNEchttps://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设置后,我的触摸板的行为得到了极大改善。

相关内容