Direcionando o mouse pelo teclado no Linux Mint LXDE

Como configurar o LXDE para ter a opção de usar o mouse no teclado, como uma forma também de acessibilidade. Este recurso pode ser interessante para facilitar funções onde o mouse pode ser um problema.

[ Hits: 6.695 ]

Por: Adriano H. Hedler em 10/07/2012 | Blog: http://www.templosite.com


Usando o mouse no teclado no LXDE

Eu pesquisei como usar o mouse pelo teclado no LXDE. Isto é bastante útil em computadores antigos, e este recurso existe no Gnome. Porém, não no LXDE.

Acredito que sirva para várias versões *box. Também para outros, que não tenham o recurso CTRL+SHIT+NUM LOCK.

Acho que artigos de acessibilidade estão virando uma tendência minha. :)

O LXDE não tem esta opção ativa no rc.xml, mas você pode fazer isso! Este pequeno tutorial ajudará você a colocar um pouco mais de acessibilidade e recurso no seu LXDE. Vamos lá!

Abra seu rc.xml. Na versão Linux Mint LXDE, ele é encontrado em: /home/seuuser/.config/openbox

Configuração esta, que servirá somente para este usuário específico. O nome do arquivo "rc.xml" pode variar, mas ele estará como XML. No Linux Mint, dentro deste diretório, será algo como mintlxde-rc.xml.

Aqui configurei para usar CTRL+ALT+PadNumérico no meu teclado. Quando as teclas forem pressionadas juntas, eles moverão o cursor a cada "pressionada". Assim, quando você pressiona e segura as teclas, ela faz a repetição, e toda mágica acontece.

A cada "teclada junta" move a quantidade de pixels que você colocar nas configurações abaixo.

Infelizmente tem que mudar um a um, com o valor que você desejar. Veja que você pode colocar qualquer tecla, em qualquer lugar, de qualquer forma.Isto facilita pra quem tem problemas motores, ou ainda pode diminuir o conjunto de teclas trocando tudo pela a tecla Super (para os fracos).

Antes de tudo você precisa instalar estas ferramentas, que serão essenciais:

$ sudo apt-get install xwit xdotool

Instale conforme sua distribuição

O xwit, moverá o ponteiro do mouse pela tela. Eu estou usando somente 5 pixels, mas se você querer um pouco mais rápido, ajuste isto para 25. Múltiplos de 5 são melhores para mover o mouse, mas ele aceita qualquer valor.

Porém, é importante lembrar que dependendo da resolução, tamanho do monitor, estes ajustes precisam ser refeitos para que facilite o clique, e o acerto no local certo.

Imagens pequenas em sites, ícones pequenos, podem estar dentro do intervalo que você colocar e simplesmente não conseguir posicionar o mouse acima do objeto alvo. Abaixo dou uma dica para contornar este possível problema.

A ferramenta xdotool servirá para a ação do clique com o botão esquerdo, e o clique do botão direito. Você pode colocar outros comandos usando a marcação do rc.xml.

Esta ferramenta fará os cliques e também pode realizar outras tarefas com botões específicos. Consulte o man do "xdotool". Eu acho que o resultado foi melhor que o mouse no teclado do GNOME, em minha opinião. :)

* Uma informação importante: Normalmente quando usamos LXDE é por desempenho, e às vezes, em máquinas antigas. Uma preocupação é o consumo de memória. Estes recursos ficaram levíssimos, e os arquivos são minúsculos - kbytes - Não se preocupe! O tempo de resposta é excelente também.

Para detectar teclas específicas, em teclados de notebook por exemplo, use o Xev no console/terminal. Ele detecta todas as teclas pressionadas no sistema. Para sair, basta fechar a janelinha.

Evite mover o mouse, pois ele também detecta!

A saída do Xev é algo parecido com isso:

KeyPress event, serial 41, synthetic NO, window 0x3000001,
     root 0x9f, subw 0x0, time 41448379, (747,121), root:(899,491),
     state 0x10, keycode 104 (keysym 0xff8d, KP_Enter), same_screen YES,
"    XLookupString gives 1 bytes: (0d) "
"    XmbLookupString gives 1 bytes: (0d) "
     XFilterEvent returns: False


Na terceira linha, o Xev nos mostra o "KP_Enter". É ali que você descobre qual o código/nome da tecla. Ele aceita também via código do keymap, como "0xff8d", mostrado na mesma linha.

Infelizmente ele não serve para detectar o mouse e clique. Ele até se esforça e gera o código, mas não funcionará. Por isso usamos o xdotool, que facilita o nosso trabalho.

Se você não entende como criar/modificar a marcação rc.xml, consulte isso:
Aqui, uma série de codificações possíveis são mostradas, e você vai descobrir também algumas teclas de atalho usadas pelos keybinds no rc.xml.

Para colocar para funcionar, edite a seção <keyboard>. Logo acima do </keyboard>, insira as linhas a seguir.

Perceba que ele deve ficar dentro das tags <keyboard> Código aqui </keyboard>, e por organização, coloque no final, abaixo dos outros, para fácil ajustes.

<!-- Controlando o MOUSE via LXDE com XWIT -->

   <!-- Keybinding for MOUSE CONTROL RIGHT DOWN-->
   <keybind key="C-A-KP_3">
      <action name="Execute">
         <command>xwit -root -rwarp 5 5</command>
      </action>>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL RIGHT UP-->
   <keybind key="C-A-KP_9">
      <action name="Execute">
         <command>xwit -root -rwarp 5 -5</command>
      <action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL LEFT DOWN-->
   <keybind key="C-A-KP_1">
      <action name="Execute">
         <command>xwit -root -rwarp -5 5</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL LEFT UP-->
   <keybind key="C-A-KP_7">
      <action name="Execute">
         <command>xwit -root -rwarp -5 -5</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL LEFT-->
   <keybind key="C-A-KP_4">
      <action name="Execute">
         <command>xwit -root -rwarp -5 0</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL RIGHT-->
   <keybind key="C-A-KP_6">
      <action name="Execute">
         <command>xwit -root -rwarp 5 0</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL UP-->
   <keybind key="C-A-KP_8">
      <action name="Execute">
         <command>xwit -root -rwarp 0 -5</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL DOWN-->
   <keybind key="C-A-KP_2">
      <action name="Execute">
         <command>xwit -root -rwarp 0 5</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL DOWN FAST-->
   <keybind key="S-C-A-KP_2">
      <action name="Execute">
         <command>xwit -root -rwarp 0 25</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL RIGHT CLICK-->
   <keybind key="C-A-KP_0">
      <action name="Execute">
         <command>xdotool click 3</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL MIDLE CLICK-->
   <keybind key="C-A-KP_Decimal">
      <action name="Execute">
         <command>xdotool click 2</command>
      </action>
   </keybind>

   <!-- Keybinding for MOUSE CONTROL LEFT CLICK-->
   <keybind key="C-A-KP_Enter">
      <action name="Execute">
         <command>xdotool click 1</command>
      </action>
   </keybind>

<!-- Fim seção CONTROLE DO MOUSE COMUM -->


Como opção, você pode copiar 2 vezes este código, adicionado a tecla "Shift" nos Keybinds do segundo grupo de atalhos.

Assim, você pode mover mais lentamente o mouse usando o "CTRL+ALT+NumPad", e mais rapidamente usando "CTRL+ALT+SHIFT+NumPad" para correr em posições mais longas da tela, aumentando o valor de 5 para 25 por exemplo.

Este valor acrescenta ao posicionamento atual, conforme x,y.

Na minha listagem, coloquei também para as diagonais, e ficou assim:
  • CTRL+ALT+1 - Diagonal para Baixo e para Esquerda
  • CTRL+ALT+2 - Para baixo
  • CTRL+ALT+3 - Diagonal para Baixo e para Direita
  • CTRL+ALT+4 - Para a Esquerda
  • CTRL+ALT+6 - Para a Direita
  • CTRL+ALT+7 - Diagonal para Cima e para a Esquerda
  • CTRL+ALT+8 - Para Cima
  • CTRL+ALT+1 - Diagonal para Cima e para a Direita

Lembrando que são as teclas do teclado numérico, combinadas com o "CTRL+ALT+Número".

No BIND, as teclas recebem a codificação de letra também, mas também aceitam códigos:
  • A = ALT
  • S = Shift
  • C = Control

Segue a seguinte organização na hora de inserir:

   <!-- As teclas que serão Pressionadas -->
   <!-- o Key tem que ter o "-" entre as teclas -->
   <keybind key="C-A-KP_Enter">
      <!-- A ação a ser executada -->
      <action name="Execute">
         <!-- O comando a ser executado, aqui o xdotool acionando o click do mouse -->
         <command>xdotool click 1</command>>
      </action>
   </keybind>


Em alguns casos, quando você não sabe como fazer aquele teclado do notebook com a opção de aumento de brilho funcionar, aumento de volume, etc, isto pode ser um bom ponto de partida, com Xev, e depois usando estas configurações, no seu *box.

Testando no LXDE, ficou perfeito!

Se isso lhe ajudou, use e cite a fonte!

Obs.: Publiquei este artigo oficialmente no fórum do LXDE:

   

Páginas do artigo
   1. Usando o mouse no teclado no LXDE
Outros artigos deste autor

Reconhecimento de Voz no Linux

Leitura recomendada

DNS BIND para integração em domínios AD (com Windows Active Directory ou Samba)

Conheça o G:Mini - antigo Projeto GoblinX Mini

eDonkey para Linux

Brackets - Editor Open Source no Linux Mint e Ubuntu

VPN com pptpd com acesso a compartilhamentos

Comentários
[1] Comentário enviado por adrianoh2 em 10/07/2012 - 12:47h

Só um adicional ao Artigo:
Na linha <!-- Keybinding for MOUSE CONTROL DOWN FAST--> - está um exemplo de como controlar o mouse de forma rápida. Use SHIFT+CTRL+ALT+2 para mover rapidamente e sem SHIFT para movimento mais lento.
É isto!

[2] Comentário enviado por honorato0 em 12/07/2012 - 14:30h

Parabéns por este artigo!

Aproveitando, no Ubuntu 12.04, este recurso (acessibilidade>apontando e clicando>teclas do mouse) o cursor é bastaaante lento, impraticável. Mesmo alterando a velocidade das teclas do teclado, o comportamento não muda.

Alguém tem alguma dica para aumentar a velocidade do cursor no Ubuntu 12.04?

[3] Comentário enviado por adrianoh2 em 12/07/2012 - 15:44h

O honorato0 - que tal tentar colocar isso em script...?
Faça o seguinte, acione pequenos scripts para teclas de atalho de cada comando que deseja usar como mouse.
Ao invés de usar o bind que é mais para os *box da vida, acione scripts com o comando.
Sei que aparentemente não é muito prático, mas é capaz de ser mais rápido que o sistema do ubuntu/gnome.

Por exemplo:

#--- script -----------
#!/bin/bash
xwit -root -rwarp 0 25 &
#--- script -----------

Assim moveria o mouse para baixo.
Parece meio trabalhoso, mas é só copiar os comandos acima dentro do bind, e depois acionar por tecla de atalho dentro do ubuntu.
O & oculta a janela.

Até!


[4] Comentário enviado por honorato0 em 12/07/2012 - 18:26h

Bacana! Funcionou legal aqui. ;D

Para o doubleclick eu utilizei "xdotool click 1 && xdotool click 1"

Valeu!!

[5] Comentário enviado por adrianoh2 em 12/07/2012 - 19:09h

Esta ideia é 10... pra quem tá com o braço bagaçado de tando usar o mouse, é a melhor saída pra fugir da LER/DORT.
Eu realmente vejo que os movimento são melhores que o mouse para evitar dores. Até busquei do baú um teclado das antigas mesmo, que tem teclas pesadas, para evitar problemas.


Contribuir com comentário