Gestos multitoque no touchpad

11

Queria saber como configurar gestos multi-touch no Ubuntu. No Windows, eu posso fazer isso usando o software do driver synaptics.

Eu já usei synclientpara configurar os toques, detecção de palma, rolagem etc. Mas também gostaria de suporte de gestos. Isso é possível?

Informações do sistema: Ubuntu 12.10, Synaptics clickpad

kapad
fonte
queria especificar alguns detalhes: O que eu queria fazer era poder configurar um gesto para os botões voltar / avançar do navegador / nautilus. No Windows, posso fazer isso com um toque de três dedos. Da mesma forma, para minimizar / abrir todas as janelas. No Win7, isso pode ser feito com um toque de quatro dedos para cima ou para baixo. Eu quero coisas semelhantes ao Mac. Isso é possível?
kapad

Respostas:

11

Atualizar os aplicativos auxiliares e experimente o comportamento do kernel pronto para uso com a interface do usuário do touchpad para o seu gerenciador de área de trabalho. Ele deve fazer o que você precisa e, se você quiser mais gestos e outras coisas, adicione um toque fácil que funcione bem. Ele está classificado nos drivers de entrada do kernel padrão agora e funciona sem problemas desde pelo menos o 4.1.32, embora alguns dos kernels 4.0 anteriores não funcionassem. O atual kernel do LTS, 4.4, funciona bem, assim como 4.7.

atualização 9/2015 ... os kernels acima de 3,14 ou mais têm a maioria dos multitoques incorporados agora, portanto, tente desinstalar o mtrack se você tiver problemas. apenas o driver multitoque embutido e o easystroke estão funcionando bem para mim desde o kernel 3.14, embora o 4.0 e superior pareçam ter uma regressão que quebra o trackpad da apple. O kernel 3.18 funciona muito bem.

Existem inúmeras soluções, a maioria das quais ainda está meio cozida. Muitos dos documentados estão desatualizados, portanto, verifique a data do que você pesquisar no Google.

O Ubuntu incorporou suporte a gestos rudimentares (2 dedos) no applet de configurações do mouse / touchpad.
Eu o encontrei aleatoriamente desconectado e a rolagem com dois dedos seria misteriosamente acinzentada, desencadeando-me em uma longa cadeia de buscas para talvez recuperá-lo.
Então tentei o touchegg, que às vezes funcionava.
É o mais fácil de configurar e existem boas instruções, mas é baseado em uma solução daemon mais antiga para o problema.
O howto multitoque do ubuntu (você precisará pesquisar no Google, pois só posso incluir dois links) estava desatualizado, mas está lentamente sendo aprimorado. Ele oferece outro conjunto de soluções irregulares, mas está em processo de atualização.

A solução que estou usando atualmente é o mtrack (nos repositórios ) combinado com o easystroke (precisa compilar a partir do código-fonte).
O Mtrack suporta a versão do kernel do multitouch, em vez de uma solução ad hoc como touchegg e ginn, se bem entendi, mas o easystroke é outra solução daemon que parece funcionar bem no topo do mtrack.

A abordagem de Mtrack parece ser a direção que o desenvolvimento está tomando.

desinstale o outro material (ginn, touchegg) se você o usar e, em seguida, instale o mtrack a partir do nome completo dos repositórios: xserver-xorg-input-mtrack .

É uma dor de configurar e eu não tenho três dedos para deslizar. Veja o link no final do tópico para os vários arquivos de configuração das pessoas. Eu uso um trackpad mágico da apple e é muito bom para isso, embora ele tenha uma falha irritante no toque duplo e arraste, por exemplo, para mover uma janela, é irregular. A solução alternativa é usar um clique de botão real para mover as janelas ou hesitar uma fração de segundo após o toque duplo e segure antes de mover a janela.

Acabei de encontrar o golpe fácil , e até o mtrack obter uma interface gráfica, você pode tentar isso se for aventureiro o suficiente para tentar compilar um programa.

Uma vez compilado executando make -j2e instalado sudo make install, inicie-o easystroke -gpara obter a GUI e vá para a página wiki para obter instruções.

Outra questão que você pode precisar resolver é os drivers.

Se você usa o mtrack , pode ser necessário renumerar os arquivos para que o driver do mtrack seja lido por último ou as configurações dos sinápticos capturam tudo.

Esses drivers são armazenados em /usr/share/X11/xorg.conf.d .

copie o driver mtrack para /etc/X11/xorg.conf.d , edite as configurações nessa pasta (consulte o thread vinculado e o README para saber como) para obter a qualidade de três dedos, se você pode (ou use o toque fácil ) e renomeie o arquivo para um número maior, para que 50-mtrack.conf se torne 60-mtrack.conf , caso contrário, descobri que o driver sináptico pegará seu touchpad metade do tempo.

Colocar o arquivo em / etc significa que ele não será sobrescrito em atualizações como os arquivos / usr e que será lido por último e, portanto, terá prioridade sobre os drivers padrão em / usr .

Espero que isto ajude. Esta é uma área de desenvolvimento bastante ativo, portanto, o que eu escrever provavelmente ficará obsoleto dentro de um ano, espero que para melhor.

Richard Rath
fonte
Ei, obrigado por esta ótima resposta. Desculpe demorou um pouco para verificar isso :)
kapad
Alguma notícia sobre uma solução adequada sobre esse assunto? Ainda não é possível obtê-lo para aceptable trabalho ..
Tomyo
Atualmente, parece haver um pacote easystroke, e a opção -g não é conhecida por ele. Sem o argumento, ele inicia uma GUI. :) PS: Eu corro Mint 16.
Herbert
2

Eu só queria sugerir o uso da continuação do mtrack disponível no github: https://github.com/p2rkw/xf86-input-mtrack , pois ele suporta arrastar 3 dedos (instruções na parte inferior do leia-me).

Também estou usando-o em conjunto com o easystroke, mas tive que modificar o easystroke para remover algumas restrições sobre dispositivos absolutos, com essa alteração simples (não me lembro exatamente o motivo para fazer isso, desculpe):

diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
        }
 protected:
        void move_back() {
-               if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+               if (!prefs.move_back.get())
                        return;
                XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
        }

Também reduzi a margem de erro para gestos:

diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
                return -1;
        score = MAX(1.0 - 2.5*cost, 0.0);
        if (a->timeout)
-               return score > 0.85;
+               return score > 0.95;
        else
-               return score > 0.7;
+               return score > 0.92;
 }

... e funciona muito bem.

Nota lateral sobre uma configuração dolorosa: você pode usar o xinput para configurá-lo em tempo real e editar o xorg.conf de acordo, ou criar um script de inicialização com invocações do xinput.

p2rkw
fonte