J'ai récemment un nouveau Lenovo Y50 et j'utilise Ubuntu 14.04. Sur mon précédent Dell XPS 17, le pavé tactile avait une excellente réponse même lorsque je bougeais légèrement le doigt - en déplaçant mon doigt sur une très courte distance, je pouvais déplacer la souris pixel par pixel, ce qui était très utile pour, par exemple, saisir les bordures de fenêtre étroites. Cependant, sur cette nouvelle machine, la souris ne répond pas tant que mon doigt n’a pas déplacé mon doigt d’environ un demi-centimètre; la souris sautera alors d’une dizaine de pixels environ. Une fois que la souris bouge de cette manière, je suis capable de la déplacer de manière arbitraire à des distances précises en déplaçant mon doigt plus lentement. J'aimerais avoir cette précision serrée même si je ne déplace pas déjà la souris. (Remarque: ce problème ne se produit pas lors de l'utilisation d'une souris USB.)
Je pensais que la désactivation de noise cancellation
dans xinput
pourrait être utile, alors j’ai réglé les valeurs d’annulation du bruit sur zéro, mais cela n’a pas aidé. La détection de paume est également mise à zéro. Est-ce que quelqu'un sait comment atteindre la précision de la souris pour les petits mouvements du pavé tactile?
Je vous remercie!
Pour référence, xinput
properties:
$ xinput list-props 'ETPS/2 Elantech Touchpad'
Device 'ETPS/2 Elantech Touchpad':
Device Enabled (155): 1
Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (278): 1
Device Accel Constant Deceleration (279): 1.750000
Device Accel Adaptive Deceleration (280): 1.000000
Device Accel Velocity Scaling (281): 12.500000
Synaptics Edges (282): 127, 3061, 112, 1973
Synaptics Finger (283): 1, 1, 0
Synaptics Tap Time (284): 180
Synaptics Tap Move (285): 10
Synaptics Tap Durations (286): 180, 180, 100
Synaptics ClickPad (287): 1
Synaptics Middle Button Timeout (288): 0
Synaptics Two-Finger Pressure (289): 282
Synaptics Two-Finger Width (290): 7
Synaptics Scrolling Distance (291): 45, 45
Synaptics Edge Scrolling (292): 0, 0, 0
Synaptics Two-Finger Scrolling (293): 1, 1
Synaptics Move Speed (294): 1.000000, 1.750000, 0.052507, 0.000000
Synaptics Off (295): 0
Synaptics Locked Drags (296): 0
Synaptics Locked Drags Timeout (297): 5000
Synaptics Tap Action (298): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (299): 1, 3, 0
Synaptics Circular Scrolling (300): 0
Synaptics Circular Scrolling Distance (301): 0.100000
Synaptics Circular Scrolling Trigger (302): 0
Synaptics Circular Pad (303): 0
Synaptics Palm Detection (304): 0
Synaptics Palm Dimensions (305): 1000, 1000
Synaptics Coasting Speed (306): 20.000000, 50.000000
Synaptics Pressure Motion (307): 30, 160
Synaptics Pressure Motion Factor (308): 1.000000, 1.000000
Synaptics Resolution Detect (309): 1
Synaptics Grab Event Device (310): 1
Synaptics Gestures (311): 1
Synaptics Capabilities (312): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (313): 32, 32
Synaptics Area (314): 0, 0, 0, 0
Synaptics Soft Button Areas (315): 1594, 0, 1709, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (316): 0, 0
Device Product ID (271): 2, 14
Device Node (272): "/dev/input/event5"
Pour référence, synclient
paramètres:
$ synclient
Parameter settings:
LeftEdge = 127
RightEdge = 3061
TopEdge = 112
BottomEdge = 1973
FingerLow = 1
FingerHigh = 1
MaxTapTime = 180
MaxTapMove = 100
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 0
EmulateTwoFingerMinZ = 282
EmulateTwoFingerMinW = 7
VertScrollDelta = 45
HorizScrollDelta = 45
VertEdgeScroll = 0
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0525072
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 3
ClickFinger3 = 0
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 1000
PalmMinZ = 1000
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 0
VertHysteresis = 0
ClickPad = 1
RightButtonAreaLeft = 1594
RightButtonAreaRight = 0
RightButtonAreaTop = 1709
RightButtonAreaBottom = 0
MiddleButtonAreaLeft = 0
MiddleButtonAreaRight = 0
MiddleButtonAreaTop = 0
MiddleButtonAreaBottom = 0
Mon Lenovo t540p présentait les mêmes problèmes avec le profil d’accélération par défaut = 1 (en fonction du périphérique).
Cela semble être lié à l'accélération du pointeur de XOrg et "profil d'accélération" . Si vous définissez le profil d'accélération du périphérique sur -1 (aucun), le symptôme de point mort semble disparaître bien que le curseur de la souris se déplace sur de très petites distances à l'écran, ce qui le rend très précis mais relativement inutile.
Je suis passé à un profil d'accélération linéaire (AccelerationProfile 6
) et j'ai constaté une amélioration immédiate. L'hésitation initiale du mouvement est toujours là, mais le curseur ne saute pas comme auparavant.
Des recherches supplémentaires sur la cause du "point mort" sont justifiées, mais cela peut être dû au comportement du microprogramme. Le page de manuel synaptics mentionne la suppression du bruit du microprogramme qui peut être difficile ou impossible à contrôler à l'heure actuelle:
Annulation de bruit
Le synaptics a une annulation de bruit intégrée basée sur l'hystérésis. Cela signifie que les coordonnées entrantes déplacent en réalité une zone de dimensions prédéfinies de manière à couvrir les coordonnées entrantes, et que seul le centre de la boîte est utilisé en entrée. Évidemment, plus la boîte est petite, mieux cela vaut, mais la probabilité de mouvement du bruit augmente également.
Voici un script que j'utilise pour modifier les paramètres de mon système:
#!/bin/bash
DEVICE="SynPS/2 Synaptics TouchPad"
xinput --set-prop "$DEVICE" "Device Accel Profile" 6
xinput --set-prop "$DEVICE" "Device Accel Constant Deceleration" 12
xinput --set-prop "$DEVICE" "Device Accel Velocity Scaling" 20
Une fois que vous avez trouvé les paramètres qui vous conviennent, vous pouvez choisir de les ajouter à votre fichier /etc/X11/xorg.conf.d/51-synaptics-quirks.conf
(copié à partir de /usr/share/X11/xorg.conf.d
) ou de créer un nouveau fichier .conf distinct avec un nom tel que 99-your-config-file-name.conf
.
Option "AccelerationProfile" "6"
# May want to set "ConstantDeceleration" and "VelocityScale" or other
# values here as well
Je pourrais résoudre le problème pour moi (ThinkPad T460s) en exécutant:
$ synclient HorizHysteresis=0
$ synclient VertHysteresis=0
Utilisation du logiciel de configuration synaptics synclient
.
Ces paramètres ont déjà été définis sur 0
dans la question initiale par @MichaelTingley, mais dans mon cas, ils ont été définis sur 28. Leur réglage à zéro a éliminé la nécessité de déplacer le doigt un peu avant que la souris ne bouge réellement.
Ces paramètres peuvent être définis de manière permanente en ajoutant ceci à votre /etc/X11/xorg.conf.d/70-synaptics.conf
:
Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
Option "HorizHysteresis" "0"
Option "VertHysteresis" "0"
EndSection
Et grâce à la réponse complète de @Inactivist qui m'a orienté dans la bonne direction.