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: 20.783 ]

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


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

A Desinformação em Época da Tecnologia de Informação

Leitura recomendada

Instalação e configuração do AUTO97

Slackware não tem gerenciador de pacotes?! Não tinha!

Problemas para instalar o driver de vídeo (Nvidia) no Fedora 8?

Experiência no desenvolvimento de software para automação comercial

Emulando o Internet Explorer no Slackware

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts