Procurando uma maneira de melhorar a detecção de palma sináptica / touchpad

17

Eu acho que a detecção de palma do meu touchpad é horrível. Configurei-o com a sensibilidade mínima para não estragar o uso do meu touchpad (PalmMinWidth = 5, PalmMinZ = 1) e ainda recebo solavancos aleatórios sempre que digito no teclado.

Prefiro usar a detecção da palma da mão do que desativar o teclado durante a digitação, porque acho que o teclado está desabilitado por um período muito longo (ou seja, eu terminei de digitar e tenho que esperar 2 segundos antes de usar o teclado novamente, o que é irritante) . Uma estratégia possível seria reduzir esse atraso, embora não tenha certeza se o touchpad permanecerá utilizável (se você souber como fazer isso, publique-o melhor do que nada :).

Sempre que uso o Windows, percebo que não estou tendo tantos problemas com o touchpad; portanto, deve haver uma maneira de melhorar a detecção da palma da mão?

Por fim, estou executando o Debian testando 64 bits no kernel do linux 3.2.0-rc7.

leve
fonte
Esta pergunta é uma duplicata da pergunta que eu respondi no SuperUser em 2011. Eu não tenho a reputação no Unix e Linux Stack Exchange para sinalizar como um idiota. superuser.com/questions/277427/…
downbeat

Respostas:

17

Eu tive problemas semelhantes e achei a resposta neste blog bastante completa e copiei os detalhes relevantes:

Configure a detecção de palma:

Ative a detecção de palma, em um tipo de terminal:

$ synclient PalmDetect=1

Defina a largura máxima que deve ser interpretada como um dedo em vez de uma palma. Eu escolhi 4, a maioria das instruções usa 10, é bom adivinhar e testar aqui:

$ synclient PalmMinWidth=4

Em seguida, defina a altura mínima de uma palma contra um dedo:

$ synclient PalmMinZ=50 

Por fim, no Ubuntu, o clique do meio com 3 dedos não é ativado por padrão; portanto, se você deseja ativá-lo, use:

$ synclient TapButton2=3 TapButton3=2

Em teoria, isso deve permitir 2 toques com o dedo do meio e 3 toques com o botão direito, mas no Ubuntu 13.04 o comportamento resultante é exatamente o oposto. Portanto, se você preferir tocar com dois dedos para clicar no meio, use:

$ synclient TapButton2=2 TapButton3=3 

Para tornar isso permanente assim que você encontrar as configurações corretas, salve-as nas 50-synaptics.confque estão localizadas no /usr/share/X11/xorg.conf.d/50-synaptics.confDebian / Ubuntu (Semplice) e /etc/X11/xorg.conf.d/50-synaptics.confnas distros baseadas no Arch Linux (a primeira parte "InputClass" é para a correção do clique do meio com vários toques , que já está ativado no Arch, para que você não precise adicioná-lo):

Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "HorizTwoFingerScroll" "on"
    Option "VertTwoFingerScroll" "on"
EndSection


#synclient PalmDetect=1
Option "PalmDetect" "1"
#synclient PalmMinWidth=4
Option "PalmMinWidth" "4"
#synclient PalmMinZ=50
Option "PalmMinZ" "50"

Desativar temporariamente o touchpad enquanto digita:

Em vez de usar comandos synclient, use o syndaemon:

$ syndaemon -K -i 0.5 -R -d 

O wiki do arch afirma que, se você salvar este comando no seu ~/.xinitrcarquivo, ele será executado automaticamente no seu próximo login. No entanto, quando fiz isso, eu não sabia que o comando deveria acontecer antes do lançamento da área de trabalho ( exec DESKTOP.sessioncomando). Depois de brincar com vários outros arquivos de configuração e aprender muito sobre o gerenciador de exibição do SLiM, finalmente percebi que o comando só precisava ser movido para mais adiante no arquivo, pois os comandos após o lançamento da área de trabalho não serão executados até a área de trabalho é sair.

virtualxtc
fonte
5

Encontrei uma maneira de modificar o tempo durante o qual o touchpad é desativado durante a digitação. Para qualquer pessoa que esteja procurando por ele aqui está:

Nota: uma pesquisa no Google fornece a resposta com rapidez suficiente

Basta executar o programa syndaemon -de adicionar como uma opção em -i wait_timeque wait_time é o tempo de espera antes de reativar o touchpad. Outros parâmetros úteis para fornecer ao syndaemon incluem -Knunca desativar o touchpad quando as teclas são do modificador de formato + tecla e -tdesativar apenas os cliques e não os movimentos do mouse.

Portanto, no meu caso, adicionei o seguinte a um script executado no login:

#Get rid of previous syndaemon
killall syndaemon
#More aggressive behavior, allow for mod+key combos, enable mouse movements
syndaemon -i 0.2 -K -t -d

Com todas essas modificações, especialmente a -tbandeira, eu posso viver com o touchpad como está por enquanto!

leve
fonte
Estou descobrindo que preciso de -t pelo menos (-t Desative apenas tocar e rolar, não os movimentos do mouse, em resposta à atividade do teclado) ou então enlouqueci. Estou no Fedora 16. Como você torna suas alterações permanentes?
precisa
@PhilipDurbin Coloquei-os em um script chamado durante a inicialização (usando as propriedades do gnome-session-properties), mas preciso fazer isso para cada usuário. A maneira mais tradicional é colocá-los em um arquivo xorg.conf, mas não consegui encontrar uma maneira de definir as syndaemonopções nele, apenas as synclientopções.
Levesque
3

Eu tenho um laptop moderno com um grande Touchpad e, na metade do tempo, minha palma da mão direita estava no limite e fazia cliques falsos enquanto digitava. O método SynDient PalmDetect = 1 não estava funcionando para mim (não importa o que eu defina PalmMinWidth e PalmMinZ como). Talvez tenha sido o fato de minha palma estar tocando a almofada da direita e a detecção de palma pode estar verificando-a de cima. Eu não tenho certeza.

Resolvi o problema criando uma zona morta na borda direita. É assim que se faz:

synclient 

fornecerá as configurações atuais do touch pad. de interesse são estes resultados aqui:

LeftEdge                = 1572
RightEdge               = 5370
TopEdge                 = 1376
BottomEdge              = 4480

Obviamente, os números variam dependendo do hardware. Procure a borda que você deseja. No meu caso, era a borda direita. Peguei uma quantia que queria fazer a barba. Você deseja cortar o menor número possível, enquanto ainda bloqueia cliques falsos na palma da mão. Um teste muito fácil seria encontrar uma imagem clicável na Web, passar o mouse sobre o centro e descansar a palma da mão onde você normalmente digita. Para simular a digitação, bata (levemente!) Na borda do touch pad com a parte da palma da mão que geralmente se sobressai quando você digita. Se você receber cliques, saberá imediatamente. Será tentativa e erro, continue jogando até chegar ao ponto ideal. No meu caso, raspar 30 fez o truque:

synclient AreaRightEdge=5340

Para modificar as outras arestas, altere AreaBottomEdge, AreaLeftEdge ou AreaTopEdge. Definir esses valores de volta para 0 os desativará.

thebunnyrules
fonte
A página de manual menciona que o recurso de detecção de palma precisa de suporte de hardware. Eu encontrei discussões em que as pessoas discutiam touchpads que, em teoria, têm suporte de hardware, mas na prática simplesmente não funcionaram. Então tentei, PalmDetect=1mas não consegui fazê-lo funcionar. Defino os parâmetros para que todas as entradas sejam tratadas como golpes acidentais na palma da mão, mas todas as entradas ainda sejam passadas. Portanto, meu touchpad não é compatível ou é de buggy. No final, usei os Area...Edgeparâmetros para raspar a área do touchpad. E isso funcionou.
Louis