Desativar realmente o touchpad na região do botão

5

Acabei de instalar o ubuntu 16.04 como uma inicialização dupla com o Windows (pré-instalado) (caso eu precise dele duas vezes por ano ...) no meu novo HP Spectre x360 13-ac004nf . No Windows, o touchpad funciona bem e intuitivamente, mas no Ubuntu é quase inutilizável. O problema é que a zona dos botões é sensível. Em outras palavras, o touchpad não se parece com isso:

mas assim:

E toda vez que coloco um dedo na zona do botão esquerdo (sem clicar), o ponteiro pára de se mover porque o sistema detecta um gesto com dois dedos. Aqui está a configuração retornada por 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

e aqui está o que é retornado por 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

Eu tentei tocar com AreaBottomEdge , mas desative apenas a detecção de movimento ... O que significa que o touchpad ainda detecta que há outro dedo tocando nele e entra no modo de gesto com dois dedos (rolagem). Eu gostaria que meu touchpad se comportasse como um touchpad com botões separados (como a primeira imagem) e não detectasse nada sobre a zona dos botões. Como fazer isso acontecer?

    
por Vincent 16.04.2017 / 06:04

2 respostas

1

Não sei se existe uma solução técnica para o seu problema. Se fosse eu, eu provavelmente apenas conectaria um mouse, desligaria o touch pad e o chamaria por um dia.

Solução não técnica

Quando você não consegue encontrar uma solução baseada em software, mude de marcha. Tente obter algum cartão ou algo assim. Mais pesado que o papel da impressora e mais leve que o papelão. Descobrir quantas camadas você vai precisar. Recorte apenas o suficiente para cobrir os botões na área do botão do touch pad e fixe-o ao touch pad com um pouco de cola quente ou qualquer outra coisa que seja fácil de remover depois.

Pode não ser bonito, mas seus botões não serão mais sensíveis ao toque, e você ainda poderá empurrá-los para clicar com o botão esquerdo e direito.

    
por b_laoshi 06.05.2017 / 04:10
0

primeiro execute a lista de xinput para encontrar o seu dispositivo (eu tenho um 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 
....

Você pode ver, no meu caso, o id é 14 ( SynPS/2 Synaptics TouchPad )

agora, veja novamente os recursos deste dispositivo

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

se o seu terceiro número for zero (como eu), então você não tem um botão direito físico e isso precisa ser "emulado" pelo software.

agora, copie /usr/share/X11/xorg.conf.d/50-synaptics.conf para /etc/X11/xorg.conf.d /

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

e agora, no novo arquivo /etc/X11/xorg.conf.d/50-synaptics.conf , localize este parágrafo:

# 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

Adicione duas linhas extras antes da Opção "SoftButtonAreas" "50% 0 82% 0 0 0 0 0":

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

o primeiro deve ativar o clique direito e o segundo clique do meio.

Você tem em suas configurações ativadas "Rolagem com dois dedos", desative esta opção para rolar apenas a parte inferior e direita do touchpad.

Agora, faça logout, reinicie, faça login novamente e, com sorte, suas regiões esquerda / direita devem estar ativadas.

    
por Yonsy Solis 05.05.2017 / 02:54