Solução para o problema do clique mais arrastamento no touchpad no Ubuntu 11.10

O novo Ubuntu 11.10 Oneiric Ocelot trouxe-nos muitas novidades e funcionalidades. No entanto, também trouxe muitas diferenças que não foram ou bem recebidas ou não estão 100% funcionais para os utilizadores.

Um dos aspetos bastante criticados referem-se à alteração do comportamento do touchpad aquando da deslocação das janelas com duplo clique no touchpad arrastando o segundo clique (utilizando apenas o touchpad e não os botões do mesmo). Este problema foi bastante sentido na deslocação de janelas, no entanto, ele aplica-se em todos os casos que você tentar realizar um clique seguido de outro arrastando-o, nomeadamente quando quer selecionar algum texto apenas com o touchpad ou então simplesmente arrastar um ficheiro ou pasta para algum sítio, sem utilizar os botões do touchpad.

Assim, neste artigo, explica-se como resolver este pequeno inconveniente de uma forma bastante simples e não só!

Movimento: duplo clique com o segundo a ser arrastadoEsta situação deve-se ao facto de os programadores do Ubuntu terem definido um tempo de “timeout” bastante reduzido para exercer essa ação. Um “timeout “ é um intervalo de tempo estipulado que caso não se realize o pretendido dentro desse tempo, então considera-se que não foi bem sucedido.

Assim, a solução apresentada neste artigo reflete exatamente a correção desse tempo de espera: aumentando-o para que seja possível realizar, então, o movimento das janelas com o duplo clique e arrastamento durante o segundo clique sem levantar o dedo do touchpad. Esta ação, em inglês, é chamada de “double tap dragging”, para o caso de você precisar de procurar algo no Google.

Antes de apresentar esta solução, ela é da autoria dos participantes nos debates relativos aos erros do Ubuntu apresentados pelos utilizadores. Para mais informações sobre esses erros e discussões, veja as referências no fundo deste artigo.

 

Solução para o clique+arrastamento com o touchpad

Para resolver este pequeno inconveniente, você inevitavelmente terá de utilizar o terminal. Infelizmente, para modificar as opções do touchpad do Ubuntu, não existe nenhuma interface gráfica. Para além disso, esta modificação poderá ser simples e complexa. Porquê? Muito simples, conforme cada touchpad o Ubuntu tenta apresentar as suas configurações, uma vez que cada marca define os seus valores e depois o Ubuntu, conforme cada uma tenta apresentar um resultado uniforme e independente do hardware.

Porque dizer este aspeto? Porque, caso escolha a opção complexa, você terá de ter bons conhecimentos do funcionamento do Ubuntu mas terá a vantagem de não atrasar o arranque do Ubuntu nuns milésimos de segundo. Caso prefira a solução simples, que a equipa do Ubuntued recomenda vivamente, você terá um pequeno atraso no arranque, provavelmente na ordem dos milissegundos.

Antes de apresentar as soluções, apenas apresentamos-lhe aqui qual o problema e como solucionar. O Ubuntu, na sua versão 11.10, traz duas opções do touchpad com uns certos valores e nós queremos mudá-las para que a utilização do touchpad seja mais cómoda, ou seja:

Valor PadrãoValor desejado
TapAndDragGesture01
SingleTapTimeout180320

No caso da primeira opção, ela retrata exatamente a questão deste artigo e o zero significa desligado. Em princípio esta opção será suficiente, no entanto, a segunda aumenta os timeouts, de forma a que seja mais cómodo realizar o gesto. No entanto, caso você ache que está demasiado prolongado (depois de utilizar as novas definições), apenas reduza o valor 320 para algo inferir, talvez até para o valor original que é 180.

 

Solução simples

A solução simples, como já se deve ter apercebido basicamente diz ao Ubuntu no arranque dele que você quer determinadas definições do touchpad. Ora isto significa que esta solução passa simplesmente por você pôr no arranque do Ubuntu uma execução de um comando, nada mais.

Aplicações de arranque do ubuntu

Assim, para começar, deverá abrir o gestor de aplicações de arranque do Ubuntu. Para tal, clique no botão do canto superior direito e depois escolha a opção “Aplicações de Inicialização…” tal como se mostra na imagem acima.

Depois, na nova janela que irá aparecer, deverá clicar no botão”Adicionar”. Será apresentada uma janela semelhante à da imagem abaixo e aí deverá preencher os 3 campos de texto com o seguinte (sem aspas):

Nome: “Configurar Touchpad”
Comando: “/usr/bin/synclient TapAndDragGesture=1 SingleTapTimeout=320″
Comentário: “Clique e arrasto com touchpad”

A adicionar ao arranque as definições do touchpad

Quando terminar de preencher os campos, clique no botão Gravar e reinicie a sessão. A partir desse momento, o Ubuntu começa a funcionar com as novas definições.

 

Solução complexa

Como solução mais complexa, que evita ter de pôr uma execução acrescida no arranque do Ubuntu, esta centra-se na alteração do comportamento do touchpad para com o Ubuntu logo nas definições do mesmo. Ou seja, ao definir no local correto não precisa mais de definir as mesmas opções, evitando, então ter de ter uma execução a cada vez que arranca o Ubuntu. Esta solução parece ótima, no entanto, ela depende muito de qual o seu hardware/touchpad e por isso mesmo requer que você tenha bons conhecimentos do que está a fazer.

Se pretende prosseguir com esta solução, basicamente, o local onde precisa de realizar a edição é o seguinte:

/usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf

Assim, para abrir o ficheiro com permissões administrativas execute o comando seguinte:

gksu gedit /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf

Aparência final do ficheiro de configuração do touchpadNeste ficheiro você terá as várias definições que o Ubuntu tem para diferentes touchpads. Caso você não tenha alterado nunca este ficheiro nem tenha alterado algo extra que modificasse as opções do touchpad, ele apresenta 3 definições para 3 modelos de computadores: dois para a marca Dell e um para a marca HP. Caso você tenha um computador de uma destas marcas tenha em atenção que em vez de acrescentar o que é referido a seguir, talvez tenha mesmo de juntar isso ao que já está definido.

Posto, isto, o que você agora tem de fazer é acrescentar o seguinte no final do ficheiro de texto que está a editar (veja a imagem acima para ver como deve ficar):

Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "SHMConfig" "on"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "VertTwoFingerScroll" "1"
Option "TapAndDragGesture" "1"
Option "SingleTapTimeout" "320"
EndSection

Depois de adicionar essas linhas, guarde o ficheiro e feche. Reinicie a sessão ou o Ubuntu e, em princípio, a partir deste momento tem o seu touchpad a funcionar perfeitamente.

 

Solução Complexa, alternativa e ágil

Esta terceira solução é apenas um caminho encurtado da solução anterior. Basicamente nesta secção deste artigo apresentamos um comando que basicamente acrescenta no final do ficheiro referido as linhas apresentadas acima. Deve ter em atenção o que foi referido na secção anterior: não existe total certeza se esta solução vai funcionar no seu caso em específico pois pode depender do hardware que você tem instalado. Em todo caso, você pode experimentar esta solução e, no caso de não funcionar, apenas precisa de editar o ficheiro (tal como é dito na secção anterior) e remover as linhas que foram acrescentadas na execução do comando, ou seja, remover o que está selecionado a azul na imagem acima.

sudo sh -c "echo '\nSection \"InputClass\"\n Identifier \"touchpad catchall\"\n Driver \"synaptics\"\n MatchIsTouchpad \"on\"\n MatchDevicePath \"/dev/input/event*\"\n Option \"SHMConfig\" \"on\"\n Option \"TapButton1\" \"1\"\n Option \"TapButton2\" \"3\"\n Option \"VertTwoFingerScroll\" \"1\"\n Option \"TapAndDragGesture\" \"1\"\n Option \"SingleTapTimeout\" \"320\"\nEndSection' >> /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf"

Tenha atenção: execute apenas uma vez este comando. Sempre que o executar ele acrescenta as configurações apresentadas acima. Por isso, não faz sentido você executar mais do que uma vez.

 

Referências:

3 Respostas ate agora.

  1. carlos diz:

    o linux ékineim bunda de neném com cakinha: se ficar com muita frescura em botar a mão, assa!

    façam becape do arquivo. se n der certo, lá no terminal vc restaura o antigo.

    agora, tem que fuçar mesmo, botar a mão, alterar e ver como fica…

    vcs n imaginam o que já prendi nestes anos todos fuçando no linux. Nas vezes em deu merd… foi pq, com preguiça, n fiz os becapes necessáros.

  2. PereZ diz:

    Acho um pouco perigoso mexer nos arquivos da pasta /usr/share/X11/xorg.conf.d/.. Se mexer no arquivo errado, o sistema não inicia.
    Eu já fiz uma vez uma alteração nisso para mudar as configurações do touchpad (com um liveusb pronto na mão) e até que funcionou. Porém depois de um tempo, talvez por causa das atualizações, parou de funcionar =/
    ..
    Hoje faço da forma mais segura! Crio um script e mando o sistema executar ele ao iniciar.
    Meu script é assim:
    ..
    #!/bin/bash
    sleep 15
    synclient tapbutton2=2
    synclient tapbutton3=3
    synclient HorizTwoFingerScroll=1
    synclient VertTwoFingerScroll=1
    synclient VertEdgeScroll=0
    xmodmap -e "pointer = 1 2 3 5 4 7 6 8 9 10 11 12"
    ..
    ps.: sem o sleep no início, não funciona…

    • Cláudio Novais diz:

      Olá PereZ,

      Foi exatamente por causa disso, por ser perigoso mudar por quem não sabe, é que digo isto no artigo:
      "Caso prefira a solução simples, que a equipa do Ubuntued recomenda vivamente, você terá um pequeno atraso no arranque, provavelmente na ordem dos milissegundos."

      Quanto à solução simples, basicamente é o equivalente ao que você aí tem. Apenas é uma solução com outros objetivos! ;)

      Abraço

      PS: já agora, quando mais comentar, mais rapidamente o sistema começa a aceitar automaticamente os seus comentários. Digo isto porque você uma vez queixou-se disso mesmo. Ao fim de algum tempo, se o Ubuntued conhecê-lo, ele começa a aceitar automaticamente :D

Deixe uma resposta a PereZ