web-dev-qa-db-fra.com

Vraiment désactiver le touchpad sur la région du bouton

Je viens d'installer ubuntu 16.04 en double amorçage avec Windows (préinstallé) (juste au cas où j'en aurais besoin deux fois par an ...) sur mon nouveau HP Spectre x 360 13-ac004nf . Sous Windows, le pavé tactile fonctionne correctement et intuitivement, mais il est presque inutilisable sous Ubuntu. Le problème est que la zone des boutons est sensible. En d'autres termes, le touchpad ne ressemble pas à ça:

enter image description here

mais comme ça:

enter image description here

Et chaque fois que je pose un doigt sur la zone du bouton gauche (sans cliquer), le pointeur cesse de bouger car le système détecte un geste à deux doigts. Voici la configuration retournée par synclient:

Parameter settings:
    LeftEdge                = 1605
    RightEdge               = 5337
    TopEdge                 = 1369
    BottomEdge              = 4487
    FingerLow               = 25
    FingerHigh              = 30
    MaxTapTime              = 180
    MaxTapMove              = 248
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = -113
    HorizScrollDelta        = -113
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0353857
    TouchpadOff             = 2
    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            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    ResolutionDetect        = 1
    GrabEventDevice         = 0
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 28
    VertHysteresis          = 28
    ClickPad                = 1
    RightButtonAreaLeft     = 3471
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 4087
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0

et voici ce qui est retourné par less /var/log/Xorg.0.log | grep -i range:

[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1302 - 5640 (res 37)
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1116 - 4740 (res 64)
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15

J'ai essayé de jouer avec AreaBottomEdge, mais cela ne fait que désactiver la détection de mouvement ... Cela signifie que le pavé tactile détecte toujours qu'un autre doigt le touche et qu'il passe en mode gestes à deux doigts (défilement). Je souhaite que mon pavé tactile se comporte comme un pavé tactile avec des boutons séparés (comme la première image) et ne détecte rien sur la zone des boutons. Comment y arriver?

5
Vincent

Je ne suis pas sûr qu'il existe une solution technique à votre problème. Si c’était moi, je me contenterais probablement de brancher une souris, d’éteindre le pavé tactile et de l’appeler un jour.

solution non technique

Si vous ne trouvez pas de solution logicielle, changez de vitesse. Essayez d’obtenir du papier cartonné ou quelque chose du genre. Plus lourd que le papier d'imprimante et plus léger que le carton. Déterminez le nombre de couches dont vous aurez besoin. Découpez juste assez pour recouvrir les boutons de la zone des boutons du pavé tactile et fixez-les sur le pavé tactile avec un peu de colle chaude ou autre chose qui sera facile à enlever plus tard.

Ce n'est peut-être pas joli, mais vos boutons ne seront plus sensibles au toucher, et vous pourrez toujours appuyer dessus pour un clic gauche et droit.

1
b_laoshi

exécuter la première liste xinput pour trouver votre périphérique (j'ai un HP x360 i7-6500u)

 ~/devops > xinput list                                                         
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen Pen                      id=10   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [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 
....

Vous pouvez voir, dans mon cas, l'id est 14 (SynPS/2 Synaptics TouchPad)

maintenant, voir à nouveau les capacités de cet appareil

 ~/devops > xinput list-props "14" | grep Capabilities
    Synaptics Capabilities (330):   1, 0, 0, 1, 1, 1, 1

si votre troisième nombre est égal à zéro (comme moi), vous n'avez pas de bouton droit physique et vous devez le "simuler" par logiciel.

maintenant, copiez /usr/share/X11/xorg.conf.d/50-synaptics.conf dans /etc/X11/xorg.conf.d/

 Sudo cp -ax /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/

et maintenant, dans le nouveau fichier /etc/X11/xorg.conf.d/50-synaptics.conf, localisez ce paragraphe:

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# 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"
     Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
   EndSection

Ajoutez deux lignes supplémentaires avant l'option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0":

 Option "ClickPad"         "true"
 Option "EmulateMidButtonTime" "0"

le premier doit activer le clic droit et le second clic du milieu.

Vous avez activé dans vos paramètres "Défilement à deux doigts", désactivez-le pour avoir uniquement le défilement à droite et en bas de votre pavé tactile.

Maintenant, déconnectez-vous, redémarrez, reconnectez-vous et avec un peu de chance, vos régions gauche/droite doivent être activées.

0
Yonsy Solis