Como corrigir rejeição de palma no Ubuntu 16.04 LTS?

14

Recentemente, baixei o Ubuntu no meu laptop Dell Inspiron 7559 e notei a rejeição da palma da mão. O software funciona ts parcialmente; o cursor não se move quando tento usar o track pad com a palma da mão, por isso reconhece claramente a palma da mão, mas quando coloco a palma da mão no track pad, não necessariamente tocando, apenas colocando-o ali, um clique ocorre automaticamente. Isso faz com que as janelas desapareçam, então eu tenho que procurá-las para recuperá-las.

Esse é um problema especificamente estranho que não consegui encontrar mais ninguém. Inicializo duas vezes o Windows e o Ubuntu e não tenho esse problema ao inicializar o Windows 10. Existe uma configuração que posso alterar ou um driver que posso atualizar? Qualquer ajuda seria apreciada.

Editar:

Verifiquei meus dispositivos usando a lista xinput e percebi que aparentemente tinha duas entradas do touchpad:

↳ ELAN1010: 00 04F3: 3012 Id do touchpad = 12 [ponteiro escravo (2)]

↳ ETPS / 2 Elantech Touchpad id = 14 [ponteiro escravo (2)]

Então, o sistema operacional está ouvindo o driver errado? E se sim, como faço para usar o correto?

Quadrado irregular
fonte

Respostas:

12

Primeiro, você deseja encontrar o driver do seu touch pad. Você pode fazer isso digitando no terminal:

xinput

Lá você receberá uma lista de drivers. Na lista Ponteiro central virtual, procure a palavra-chave TouchPad. Essa variável será o {id}, por exemplo, a minha é "SynPS / 2 Synaptics TouchPad".

Em seguida, vá para Preferências dos aplicativos de inicialização, selecione "Adicionar", você pode colocar o nome, usei "Palm Detection" e o cmd que deseja colocar:

xinput set-prop "{id}" "Synaptics Palm Detection" 1

Além disso, adicione outro para definir as dimensões. Chame-o de "Dimensões da palma" (você pode substituir o valor como desejar, pode querer jogar com o valor para obter a melhor experiência):

xinput set-prop "{id}" "Synaptics Palm Dimensions" 3, 3

Agora você pode reiniciar o seu laptop e boa sorte :)

PS Acho que o ID do touch pad correto a ser usado é o que começa com ETPS / 2. Caso contrário, você pode apenas tentar os dois e espero que funcione.

Izzie Cao
fonte
1
Então, isso funcionou mesmo que o OP tenha um touchpad da Elantech? Estou perguntando, porque eu tenho um CyPS / 2 Cypress Trackpad e estou frustrado com a terrível detecção de palma no Ubuntu Gnome.
Dan
Funciona perfeitamente para mim com um touchpad da Elantech. A única alteração necessária do meu lado é que eu defino o tamanho da palma da mão para 7x7; com 3x3 é rejeita mesmo um único dedo.
tglas
2
Para esclarecer a situação de @ Dan, você pode executar xinput list-props {id}e ver as propriedades disponíveis. Meu touchpad da Elantech de fato lista muitas propriedades do Synaptics.
Gertlex
3

Para o meu XPS 13 2017 com Ubuntu 16.04, a solução é instalar dconf-editore ir para

org > gnome > desktop > peripherals > touchpad

e defina click-methodcomo fingersou se a chave disable-while-typingestiver disponível, apenas defina-a true.


Outra solução é adicionar novos atalhos acessando Keyboard > Shortcuts > Custom Shortcuts. Meus atalhos são

Ctrl + Shift + M -> gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true

Ctrl + Shift + N -> gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false

Portanto, sempre que desejar ativar o toque para clicar, basta pressionar Ctrl+ Shift+ Me Ctrl+ Shift+ Npara desativá-lo.

quacker
fonte
2

Se você possui um laptop Dell moderno, essas instruções podem ajudar. Eles são diretamente da Dell, Precision / XPS: Ubuntu General Touchpad / Mouse Issue Fix

A primeira parte fez maravilhas para mim. Aqui está o script que eles sugerem adicionar sudo gedit /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf. Não recomendo seguir as soluções da resposta aceita, pois essa rota parece criar outros problemas.

# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
    Identifier "SynPS/2 Synaptics TouchPad"
    MatchProduct "SynPS/2 Synaptics TouchPad"
    MatchIsTouchpad "on"
    MatchOS "Linux"
    MatchDevicePath "/dev/input/event*"
    Option "Ignore" "on"
EndSection

Para comparação de compatibilidade, eu tenho um Dell Inspiron 13 7000 series com xinput list

jonathan@Dell:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=11   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=13   [slave  pointer  (2)]
⎜   ↳ DELL0741:00 06CB:7E7E Touchpad            id=14   [slave  pointer  (2)]
...

O Synaptics não está nessa lista porque foi desativado pelo script acima. Antes de adicionar este script, sugiro executar xinput --test <id>"(para mim 14). Se você obtiver saída em um terminal, isso significa que seu dispositivo está funcionando (seu dispositivo está "ligado").

Jon
fonte
Parece funcionar bem. Eu não tinha o problema do "driver dual trackpad", então pulei para a próxima seção.
Raffi Khatchadourian
2

Para mim, todas as soluções acima não funcionaram. Portanto, se alguém estiver em uma situação semelhante, isso poderá ajudar a reduzir a área de ativação do seu touchpad nas bordas. Isso não criou efeitos colaterais negativos, já que você raramente começa clicando nas bordas e quando o touchpad é tocado, você ainda pode usar a área nas bordas. Isso pode ser feito assim:

Primeiro, use this ( xinput list-props "ETPS/2 Elantech Touchpad"|grep Edges) para obter as dimensões das bordas do touchpad. Retorna 4 valores (esquerda, direita, cima, baixo), por exemploSynaptics Edges (274): 100, 2408, 71, 1249

Segundo, esses valores podem ser usados ​​assim:

synclient AreaTopEdge=71
synclient AreaLeftEdge=100
synclient AreaRightEdge=2408
xelaos
fonte
Funcionou para mim como um encanto no Ubuntu 18.04. Obrigado! Para outras pessoas como eu, os comandos acima (com seus próprios valores de posição) precisam ser executados na inicialização. Para fazer isso, crie um shell script com os comandos acima e adicione-o ao auto-start (usando qualquer método que possa ser encontrado se você pesquisar no google).
Diadochos 26/09/19