# Touchpad Synaptics (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- Xorg

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.

Attention: xf86-input-synaptics n'est plus maintenu de manière active, autant que possible utilisez libinput (en).

## 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

Note: Ceci ne s’applique pas aux Macbook Air où, bien que la commande ne retourne rien, le driver Synaptics est indispensable pour faire fonctionner le touchpad.

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]

Note: Vous pouvez également installer hwinfo et examiner la sortie de:

    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

Attention: Si vous souhaitez personnaliser le comportement de votre touchpad, il vous suffit de travailler sur une copie à placer dans `/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 supporter 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: support de détection à deux-doigts
- 1: support 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.

Astuce: Certaines options de synclient, comme le debug en temps réel, nécessitent d'avoir activé le mode SHM au niveau de `/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

Astuce: Si une option persiste à rester à 0 en dépit de vos réglages, c'est que le touchpad ne gère pas cette fonctionnalité.

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/).

Category:

- Input devices (Français)