Quer os botões esquerdo e direito do mouse para mapear para selecionar

3

No Ubuntu 12.04, meu Asus N56DP mapeou os botões direito e esquerdo do mouse para selecionar, ou o botão esquerdo do mouse. Para obter um clique direito ou menu de contexto, eu usaria um clique de dois dedos. Eu rapidamente me acostumei com isso.

Tudo isso mudou com 12.10 e posterior. Eu estou agora no Ubuntu 13.10. Agora lmb é select e rmb é o menu de contexto.

Observe que esse é um desses trackpads com dois botões embaixo. Mas fisicamente os botões não estão separados, eles estão escondidos sob o trackpad. Eu agora odeio o comportamento do botão direito / esquerdo do mouse. Sem pistas de contexto físico, você nunca sabe qual botão está realmente clicando mais.

Gostaria que a antiga funcionalidade 12.04 tratasse isso como um trackpad de botão único, mas não consegue descobrir como fazer isso. Toda a pesquisa que fiz até agora mostra como reordenar os botões em um dispositivo, mas não como reatribuí-los de tal forma que rmb e lmb sejam os mesmos.

Recapitulação: Eu quero que o lmb e o rmb iniciem a seleção. Eu quero dois dedos para iniciar o menu de contexto.

    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
    
por Scott Marlowe 26.12.2013 / 23:16

1 resposta

5

No terminal:

xinput --list

Produzirá algo assim:

⎡ 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)]

Usando o nome do dispositivo que você deseja alterar (por exemplo, alterarei os botões do touchpad, por isso usarei "SynPS/2 Synaptics TouchPad" ):

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

Por exemplo:

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

(Cuidado com o caso no nome do dispositivo, porque é importante.) Depois disso, os dois cliques esquerdo e direito são tratados como um clique esquerdo e o clique do meio é tratado como um clique direito. Isto é apenas temporariamente, após uma reinicialização, as alterações são perdidas. Para torná-lo permanente, basta criar o arquivo /etc/lightdm/touchpad_setup com o seguinte conteúdo:

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

e torná-lo executável: sudo chmod +x /etc/lightdm/touchpad_setup . Depois disso, edite o arquivo /etc/lightdm/lightdm.conf e adicione a seguinte linha a ele na seção [SeatDefaults]:

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

(Se você já tinha um script de configuração de sessão no seu arquivo lightdm.conf , então você terá que adicionar a linha xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9 ao arquivo apontado naquelas linhas em lightdm.conf .)

Atualização 1:

Você também pode querer dar uma olhada nas opções do driver synaptics . Com base no que você escreveu nos comentários, acho que modificando o

  

Opção "ClickPad" "booleano"

          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 mais provavelmente o

  

Opção "TapButton2" "inteiro"

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

resolverá seu problema. Verifique suas configurações atuais com xinput --list-props "ETPS/2 Elantech Touchpad" ou com synclient -l . Em seguida, modifique suas configurações com xinput ou synclient , o que você mais gosta.

Atualização 2:

Então você descobriu e só precisou desabilitar a área do botão virtual para o botão direito, definindo cada parâmetro RightButtonArea * como 0, com synclient RightButtonAreaLeft=0 , synclient RightButtonAreaTop=0 . (Como o outro já estava em 0.) O mesmo comando com xinput seria xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Soft Button Areas" 0 0 0 0 0 0 0 0 .

    
por falconer 10.01.2014 / 13:26