ELAN Touchpad - Desativar enquanto digita não funciona?

1

Eu amo meu novo laptop. Processador rápido, m.2 ssd, memória de sobra, o xUbuntu roda muito bem.

No entanto, o tocuhpad está me deixando louca! Como eu estou digitando o mouse clica em qualquer janela que acabou. A pior parte é que o recurso "Desativar o Touchpad durante a digitação", que deve cuidar disso, não funciona.

Vamos começar com algumas especificações:

#uname -a
Linux PickledPeanuts 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
#cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

#ps ax|grep syndaemo
13764 pts/6    S+     0:00 syndaemon -i 3 -KR
13793 pts/2    S+     0:00 grep --color=auto syndaemo
#xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1010:00 04F3:3012 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech 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 (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=15   [slave  keyboard (3)]
    ↳ DELL Wireless hotkeys                     id=16   [slave  keyboard (3)]
#ps ax|grep wm
 2062 ?        S      0:15 xfwm4 --replace
13860 pts/2    S+     0:00 grep --color=auto wm
#dmesg|grep -i elan
[    1.604814] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x4d5f02)
[    1.617181] psmouse serio1: elantech: Synaptics capabilities query result 0x00, 0x15, 0x10.
[    1.629063] psmouse serio1: elantech: Elan sample query result 0c, 02, 75
[    1.692084] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input6
[    2.194620] input: ELAN1010:00 04F3:3012 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-4/i2c-ELAN1010:00/0018:04F3:3012.0001/input/input12
[    2.194862] hid-multitouch 0018:04F3:3012.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN1010:00 04F3:3012] on i2c-ELAN1010:00
#
#synclient 
Parameter settings:
    LeftEdge                = 128
    RightEdge               = 3092
    TopEdge                 = 130
    BottomEdge              = 2292
    FingerLow               = 1
    FingerHigh              = 1
    MaxTapTime              = 180
    MaxTapMove              = 177
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 80
    HorizScrollDelta        = 80
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0496401
    TouchpadOff             = 1
    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         = 20
    VertHysteresis          = 20
    ClickPad                = 1
    RightButtonAreaLeft     = 1610
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 1986
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0
#

Observe que o ETPS / 2 Elantech Touchpad está desativado na janela de configurações do mouse e do touchpad. Quando o ELAN1010: 00 04F3: 3012 Touchpad estiver desativado, o touchpad não funciona mais (então é o que é usado).

O que eu tentei (sem fazer diferença):

  • Opção padrão "Desativar touchpad durante a digitação" na interface
  • desativando acima e executando o syndaemon -i 3 -DK
  • desativando acima e executando o syndaemon -i 3
  • executando o syndaemon como root (apenas no caso)

Como sei se funciona / não funciona:

  • Toque continuamente em uma tecla em uma janela
  • enquanto faz o acima, toque no touchpad em outra janela
  • se o foco mudar para a outra janela, o touchpad não será desativado durante a digitação

Uma teoria sobre o que pode estar acontecendo:

  • O driver do touchpad simplesmente não funciona corretamente
  • syndaemon desabilitando a entrada errada do touchpad (como testar / corrigir?)
  • syndaemon não detectando a atividade do teclado (como testar / corrigir?)

Eu não quero ser um idiota ao pedir ajuda, mas antes que alguém sugira a opção "criar um arquivo em lotes para desativar o touchpad e mapeá-lo para uma chave". Eu já sei disso, mas não é uma solução viável para mim. A maior parte do meu tempo é gasto clicando, digitando algumas linhas, clicando novamente. Estou procurando especificamente para desativar o touchpad enquanto digita o trabalho. Eu sou bastante técnico, tenho usado diferentes sabores de linux por cerca de 18 anos, e tenho programado por 20 anos. No entanto, eu não conheço as bases de código envolvidas e adoraria alguma ajuda para conseguir isso.

    
por user1582288 09.11.2016 / 13:42

1 resposta

0

Oi eu tive o mesmo problema e descobri uma solução. Eu li em algum lugar que os drivers para o mouse ficam confusos quando há mais de um hardware de mouse listado em xinput.

Então eu testei agora e fiz o seguinte para impedir que o cursor se mova para outro lugar durante a digitação:

Do seu comando xinput list , vejo que o seu touchpad que precisa ser desativado é o ID 14. Portanto, basta executar no terminal:

xinput set-prop 14 "Device Enabled" 0

Seu mouse ainda deve funcionar com o toque e o clique físico. Agora, se você digitar, tente tocar onde não deve perder o foco (clique físico ainda vai fazer perder o foco, mas eu ainda não descobri o porquê. Mas isso não é um grande problema para mim, porque eu nunca me inclino no bloco duro o suficiente durante a digitação para fazê-lo clicar dessa maneira). Agora você só precisa executar isso na inicialização para que não haja dois mouses diferentes detectados ao mesmo tempo.

    
por Tarantula78 14.03.2017 / 10:20