web-dev-qa-db-fra.com

Vous voulez que les boutons gauche et droit de la souris aux deux cartes pour sélectionner

Dans Ubuntu 12.04, mon Asus N56DP a mappé les boutons droit et gauche de la souris à sélectionner ou le bouton gauche de la souris. Pour obtenir un clic droit ou un menu contextuel, je voudrais utiliser un clic à deux doigts. Je me suis vite habitué à cela.

Tout a changé avec 12.10 et plus tard. Je suis maintenant sur Ubuntu 13.10. Maintenant lmb est select et rmb est un menu contextuel.

Notez que c’est l’un de ces trackpads avec deux boutons en dessous. Mais physiquement, les boutons ne sont pas séparés, ils sont cachés sous le trackpad. Je déteste maintenant le comportement du bouton droit/gauche de la souris. En l'absence d'indices de contexte physique, vous ne savez jamais sur quel bouton vous cliquez réellement.

J'aimerais utiliser l'ancienne fonctionnalité 12.04 qui consiste à traiter cela comme un trackpad à un seul bouton, mais je ne vois pas comment le faire. Toutes les recherches que j'ai effectuées jusqu'à présent montrent comment réorganiser les boutons d'un périphérique, mais pas comment les réaffecter de manière à ce que rmb et lmb soient identiques.

récap: je veux que lmb et rmb initient select. Je veux un clic de deux doigts pour lancer le menu contextuel.

    xinput --list
 Virtual core pointer                       id=2    [master pointer  (3)]
   ↳ Virtual core XTEST pointer                 id=4    [slave  pointer  (2)]
   ↳ ETPS/2 Elantech Touchpad                   id=14   [slave  pointer  (2)]


xinput --list-props "ETPS/2 Elantech Touchpad"
Device 'ETPS/2 Elantech Touchpad':
    Device Enabled (144):   1
    Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (267): 1
    Device Accel Constant Deceleration (268):   2.500000
    Device Accel Adaptive Deceleration (269):   1.000000
    Device Accel Velocity Scaling (270):    12.500000
    Synaptics Edges (271):  136, 3284, 110, 1942
    Synaptics Finger (272): 1, 1, 0
    Synaptics Tap Time (273):   180
    Synaptics Tap Move (274):   175
    Synaptics Tap Durations (275):  180, 180, 100
    Synaptics ClickPad (276):   1
    Synaptics Middle Button Timeout (277):  0
    Synaptics Two-Finger Pressure (278):    282
    Synaptics Two-Finger Width (279):   7
    Synaptics Scrolling Distance (280): 79, 79
    Synaptics Edge Scrolling (281): 0, 0, 0
    Synaptics Two-Finger Scrolling (282):   1, 1
    Synaptics Move Speed (283): 1.000000, 1.750000, 0.050150, 0.000000
    Synaptics Off (284):    0
    Synaptics Locked Drags (285):   0
    Synaptics Locked Drags Timeout (286):   5000
    Synaptics Tap Action (287): 2, 3, 0, 0, 1, 3, 0
    Synaptics Click Action (288):   1, 3, 0
    Synaptics Circular Scrolling (289): 0
    Synaptics Circular Scrolling Distance (290):    0.100000
    Synaptics Circular Scrolling Trigger (291): 0
    Synaptics Palm Detection (292): 0
    Synaptics Palm Dimensions (293):    10, 200
    Synaptics Coasting Speed (294): 20.000000, 50.000000
    Synaptics Pressure Motion (295):    30, 160
    Synaptics Pressure Motion Factor (296): 1.000000, 1.000000
    Synaptics Resolution Detect (297):  1
    Synaptics Grab Event Device (298):  1
    Synaptics Gestures (299):   1
    Synaptics Capabilities (300):   1, 0, 0, 1, 1, 1, 1
    Synaptics Pad Resolution (301): 31, 31
    Synaptics Area (302):   0, 0, 0, 0
    Synaptics Soft Button Areas (303):  1710, 0, 1682, 0, 0, 0, 0, 0
    Synaptics Noise Cancellation (304): 19, 19
    Device Product ID (260):    2, 14
    Device Node (261):  "/dev/input/event7"

synclient -l
Parameter settings:
    LeftEdge                = 136
    RightEdge               = 3284
    TopEdge                 = 110
    BottomEdge              = 1942
    FingerLow               = 1
    FingerHigh              = 1
    MaxTapTime              = 180
    MaxTapMove              = 175
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 79
    HorizScrollDelta        = 79
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0501505
    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
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    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         = 19
    VertHysteresis          = 19
    ClickPad                = 1
    RightButtonAreaLeft     = 1710
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 1682
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0
3
Scott Marlowe

En terminal:

xinput --list

Produira quelque chose comme ceci:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [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)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ Toshiba input device                      id=11   [slave  keyboard (3)]

En utilisant le nom de périphérique que vous souhaitez modifier (par exemple, je changerai les boutons de mon pavé tactile, je vais donc utiliser "SynPS/2 Synaptics TouchPad"), procédez comme suit:

xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9 

Par exemple pour moi:

xinput set-button-map "SynPS/2 Synaptics TouchPad" 1 3 1 4 5 6 7 8 9

(Faites attention à la casse dans le nom du périphérique, car c'est important.) Ensuite, vos deux clics gauche et droit sont traités comme un clic gauche et votre clic du milieu est traité comme un clic droit. Ce n'est que temporairement, après un redémarrage, les modifications sont perdues. Pour le rendre permanent, créez simplement le fichier /etc/lightdm/touchpad_setup avec le contenu suivant:

#!/bin/bash
xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9
exit 0

et le rendre exécutable: Sudo chmod +x /etc/lightdm/touchpad_setup. Après cela, éditez le fichier /etc/lightdm/lightdm.conf et ajoutez-y la ligne suivante dans la section [SeatDefaults]:

session-setup-script=/etc/lightdm/touchpad_setup

(Si vous avez déjà un script de configuration de session dans votre fichier lightdm.conf, vous devrez alors ajouter la ligne xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9 au fichier indiqué dans ces lignes dans lightdm.conf.)


Mise à jour 1:

Aussi, vous voudrez peut-être jeter un coup d’œil sur options du pilote Synaptics . D'après ce que vous avez écrit dans les commentaires, je pense qu'en modifiant le

Option "ClickPad" "booléen"

          Whether  the  device  is  a  click  pad.  A click pad device has
          button(s) integrated into the touchpad surface.  The  user  must
          press  downward  on  the touchpad in order to generated a button
          press. This property may be set automatically  if  a  click  pad
          device  is detected at initialization time. Property: "Synaptics
          ClickPad"

ou plus probablement la

Option "TapButton2" "entier"

          Which mouse button is reported on a non-corner  two-finger  tap.
          Set to 0 to disable. Property: "Synaptics Tap Action"

cette option résoudra votre problème. Vérifiez vos réglages actuels avec xinput --list-props "ETPS/2 Elantech Touchpad" ou avec synclient -l. Modifiez ensuite vos paramètres avec xinput ou synclient, ce que vous préférez.


Mise à jour 2:

Donc, vous avez compris et il vous suffisait de désactiver la zone du bouton programmable pour le bouton droit en définissant chaque paramètre RightButtonArea * sur 0, avec synclient RightButtonAreaLeft=0, synclient RightButtonAreaTop=0. (Comme les autres étaient déjà sur 0.) La même commande avec xinput serait xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Soft Button Areas" 0 0 0 0 0 0 0 0.

5
falconer