Touchpad Synaptics (Français)
Cet article détaille l'installation et la configuration des drivers des touchpad Synaptics (et ALPS) que l'on trouve sur la plupart des PC portables.
Vérification
Afin de vérifier que vous avez bien un touchpad Synaptics vous pouvez lancer la commande suivante :
dmesg | grep -i Synaptics
Si rien n'est retourné, c'est que vous n'avez pas de touchpad Synaptics. Si vous avez une sortie ressemblant à celle-ci, vous en avez un :
[ 5.690741] Synaptics Touchpad, model: 1, fw: 7.0, id: 0x280b1, caps: 0xd04711/0xe0040d/0x20000 [ 5.733273] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input11
La plupart des touchpads sont en PS/2, mais certains sont en USB. Pour savoir, faites :
lsusb | grep -i Synaptics
Si vous avez un touchpad synaptics USB, vous obtiendrez quelque chose, par exemple :
Bus 001 Device 006: ID 413c:8162 Dell Computer Corp. Integrated Touchpad [Synaptics]
hwinfo --mouse
Sur des ordinateurs portables de plus de 5 ans, votre touchpad peut aussi être sur un bus ISA. En fait, si vous avez un touchpad sur un ordinateur x86 récent qui n'est pas un Apple, il y a de fortes chances que ce soit un synaptics.
Installation
Les drivers Synaptics sont disponibles dans le paquet xf86-input-synaptics du dépôt [extra]
pacman -S xf86-input-synaptics
Configuration
Lors de l'installation du paquet, un fichier de configuration par défaut, /usr/share/X11/xorg.conf.d/70-synaptics.conf
, est installé avec les paramètres suivants:
/usr/share/X11/xorg.conf.d/70-synaptics.conf
# Example xorg.conf.d snippet that assigns the touchpad driver # to all touchpads. See xorg.conf.d(5) for more information on # InputClass. # DO NOT EDIT THIS FILE, your distribution will likely overwrite # it when updating. Copy (and rename) this file into # /etc/X11/xorg.conf.d first. # Additional options may be added in the form of # Option "OptionName" "value" # Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" # This option is recommend on all Linux systems using evdev, but cannot be # enabled by default. See the following link for details: # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html MatchDevicePath "/dev/input/event*" EndSection Section "InputClass" Identifier "touchpad ignore duplicates" MatchIsTouchpad "on" MatchOS "Linux" MatchDevicePath "/dev/input/mouse*" Option "Ignore" "on" EndSection # This option enables the bottom right corner to be a right button on # non-synaptics clickpads. # This option is only interpreted by clickpads. Section "InputClass" Identifier "Default clickpad buttons" MatchDriver "synaptics" Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0" # To disable the bottom edge area so the buttons only work as buttons, # not for movement, set the AreaBottomEdge # Option "AreaBottomEdge" "82%" EndSection # This option disables software buttons on Apple touchpads. # This option is only interpreted by clickpads. Section "InputClass" Identifier "Disable clickpad buttons on Apple touchpads" MatchProduct "Apple|bcm5974" MatchDriver "synaptics" Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" EndSection
/etc/X11/xorg.conf.d/
:
cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf
Le driver Synaptics dispose d'une multitude d'options pour configurer les différents comportements de votre touchpad. Heureusement, celles-ci sont explicites et bien documentées dans la documentation officielle.
man synaptics
Voici un exemple de configuration possible:
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" Option "VertEdgeScroll" "on" Option "VertTwoFingerScroll" "on" Option "HorizEdgeScroll" "on" Option "HorizTwoFingerScroll" "on" Option "CircularScrolling" "on" Option "CircScrollTrigger" "2" Option "EmulateTwoFingerMinZ" "0" ...autres lignes... EndSection
Pour en arriver à déterminer ce type de configuration, xinput et synclient sont les outils appropriés.
xinput
Selon votre modèle, le touchpad peut gérer plus ou moins de fonctionnalités. xinput
(présent dans xorg-xinput que vous devriez déjà avoir installé :-) ) peut vous permettre de voir lesquelles.
Pour trouver le nom de votre touchpad (X doit être lancé):
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ USB2.0 UVC 1.3M WebCam id=10 [slave keyboard (3)] ↳ Asus EeePC extra buttons id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
Puis sa configuration actuelle et ses caractéristiques:
xinput list-props "SynPS/2 Synaptics TouchPad"
Par exemple:
Device 'SynPS/2 Synaptics TouchPad': Device Enabled (135): 1 Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (256): 1 Device Accel Constant Deceleration (257): 2.500000 Device Accel Adaptive Deceleration (258): 1.000000 Device Accel Velocity Scaling (259): 12.500000 Synaptics Edges (260): 1775, 5505, 1648, 4602 Synaptics Finger (261): 25, 30, 256 Synaptics Tap Time (262): 180 Synaptics Tap Move (263): 243 Synaptics Tap Durations (264): 180, 180, 100 Synaptics Tap FastTap (265): 0 Synaptics Middle Button Timeout (266): 75 Synaptics Two-Finger Pressure (267): 282 Synaptics Two-Finger Width (268): 7 Synaptics Scrolling Distance (269): 110, 110 Synaptics Edge Scrolling (270): 0, 0, 0 Synaptics Two-Finger Scrolling (271): 1, 0 Synaptics Move Speed (272): 1.000000, 1.750000, 0.036160, 40.000000 Synaptics Edge Motion Pressure (273): 30, 160 Synaptics Edge Motion Speed (274): 1, 442 Synaptics Edge Motion Always (275): 0 Synaptics Off (276): 0 Synaptics Locked Drags (277): 0 Synaptics Locked Drags Timeout (278): 5000 Synaptics Tap Action (279): 0, 0, 0, 0, 1, 2, 3 Synaptics Click Action (280): 1, 1, 1 Synaptics Circular Scrolling (281): 1 Synaptics Circular Scrolling Distance (282): 0.100000 Synaptics Circular Scrolling Trigger (283): 0 Synaptics Circular Pad (284): 0 Synaptics Palm Detection (285): 0 Synaptics Palm Dimensions (286): 10, 200 Synaptics Coasting Speed (287): 20.000000, 50.000000 Synaptics Pressure Motion (288): 30, 160 Synaptics Pressure Motion Factor (289): 1.000000, 1.000000 Synaptics Grab Event Device (290): 1 Synaptics Gestures (291): 1 Synaptics Capabilities (292): 1, 0, 1, 1, 1, 1, 1 Synaptics Pad Resolution (293): 136, 80 Synaptics Area (294): 0, 0, 0, 0 Synaptics Noise Cancellation (295): 27, 27 Device Product ID (296): 2, 7 Device Node (297): "/dev/input/event10"
La ligne Capabilities
indique ici:
- 1: le périphérique a un bouton gauche physique
- 0: pas de bouton du milieu physique
- 1: un bouton droit physique est présent
- 1: prise en charge de détection à deux-doigts
- 1: prise en charge de détection à trois-doigts
- 1: configuration possible de la résolution verticale
- 1: configuration possible de la résolution horizontale
synclient
synclient
est fourni avec xf86-input-synaptics et vous permet de configurer à la volée votre touchpad lors de votre session graphique. Consultez man synclient
et man synaptics
pour connaître les options et leurs valeurs possibles.
/etc/X11/xorg.conf.d/10-synaptics.conf
:
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" ...autres lignes... Option "SHMConfig" "on" ...autres lignes... EndSection
Pour connaître la configuration actuelle de votre touchpad:
synclient
Parameter settings: LeftEdge = 1775 RightEdge = 5505 TopEdge = 1648 BottomEdge = 4602 FingerLow = 25 FingerHigh = 30 FingerPress = 256 MaxTapTime = 180 MaxTapMove = 243 MaxDoubleTapTime = 180 SingleTapTimeout = 180 ClickTime = 100 FastTaps = 0 EmulateMidButtonTime = 75 EmulateTwoFingerMinZ = 282 EmulateTwoFingerMinW = 7 VertScrollDelta = 110 HorizScrollDelta = 110 VertEdgeScroll = 0 HorizEdgeScroll = 0 CornerCoasting = 0 VertTwoFingerScroll = 1 HorizTwoFingerScroll = 0 MinSpeed = 1 MaxSpeed = 1.75 AccelFactor = 0.0361598 TrackstickSpeed = 40 EdgeMotionMinZ = 30 EdgeMotionMaxZ = 160 EdgeMotionMinSpeed = 1 EdgeMotionMaxSpeed = 442 EdgeMotionUseAlways = 0 TouchpadOff = 0 LockedDrags = 0 LockedDragTimeout = 5000 RTCornerButton = 0 RBCornerButton = 0 LTCornerButton = 0 LBCornerButton = 0 TapButton1 = 1 TapButton2 = 2 TapButton3 = 3 ClickFinger1 = 1 ClickFinger2 = 1 ClickFinger3 = 1 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 GrabEventDevice = 1 TapAndDragGesture = 1 AreaLeftEdge = 0 AreaRightEdge = 0 AreaTopEdge = 0 AreaBottomEdge = 0
Par exemple, pour activer le défilement horizontal à deux doigts:
synclient HorizTwoFingerScroll=1
Une fois vos réglages trouvés, il ne vous restera qu'à les fixer dans /etc/X11/xorg.conf.d/10-synaptics.conf
. Ainsi:
Section "InputClass" Identifier "touchpad catchall" Driver "synaptics" MatchIsTouchpad "on" ...autres lignes... Option "HorizTwoFingerScroll" "on" ...autres lignes... EndSection
Gnome
L'environnement de bureau Gnome a ses propres réglages qui, par défaut, surpassent ceux de X. Ils sont accessibles depuis le panneau de contrôle de gnome (gnome-control-center
), rubrique «souris et pavé tactile» (ou par dconf-editor
, dans /org/gnome/settings-daemon/plugins/mouse/).