O dispositivo ou driver clickpad no meu thinkpad x250 omite as atualizações de posição em movimentos lentos, levando a saltos, movimento impreciso, cursor preso temporariamente.
Isso é especialmente irritante para ajustes de precisão no cursor.
Sintomas:
- Ao mover o dedo muito devagar, o cursor pára de se mover e é retomado após distância suficiente percorrida, resultando em um salto.
- Esse é um problema de limite, não de resolução. O movimento é suave acima do limite.
- Enquanto ele funciona, evtest mostra eventos para ABS_MT_POSITION_X, ABS_MT_POSITION_Y, ABS_X, ABS_Y, ABS_PRESSURE e ABS_MT_PRESSURE.
- Enquanto está preso, o dispositivo continua enviando atualizações, mas apenas ABS_PRESSURE e ABS_MT_PRESSURE.
A quantidade de jumpiness depende das configurações do driver.
A solução proposta altera as configurações do driver para reduzir os saltos desse comportamento errático ao reduzir amplamente os perfis utilizáveis de resolução e aceleração. Isso não aborda o limiar, mas reduz o sintoma de salto.
Andrew.punnett liga esse relatório de bug.
Exemplos de vídeos desse relatório de bug:
link ,
link
Sistema: Ubuntu 16.04, atualmente em 4.4.0-92-genérico x86_64.
xinput lista o dispositivo como "SynPS / 2 Synaptics TouchPad".
Eu observei o comportamento em dois X250s e em T - ??? thinkpad.
Minha configuração de driver é ajustada via synclient e xinput.
Não encontrei nenhum parâmetro para alterar esse comportamento.
Veja a saída do synclient, xinput abaixo:
~$ 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"