Como ajustar a taxa de repetição de teclas no Linux

Muita gente conhece o caminho para ajustar as taxas de repetição de teclas e o tempo de espera, antes de começar a repetição, na interface gráfica (GUI).
Esta possibilidade está presente também para quem está usando um terminal.

Se você não tem acesso a uma GUI, neste momento, vou mostrar como ajustar os seguintes valores, no terminal:

  • Typematic Rate — velocidade de repetição das teclas – em cps (caracteres por segundo)
  • Delay — o tempo de espera, depois que a tecla é mantida pressionada, para começar a repetição – em ms (milésimos de segundo)

O comando a ser usado é o kbdrate e ele pode ser digitado, sem qualquer parâmetro ou opção, no teclado. Neste caso, ele irá mostrar apenas as configurações atuais:

kbdrate

Typematic Rate set to 10,9 cps (delay = 250 ms)

Não esqueça: em algumas distribuições GNU/Linux, pode ser necessário rodar o comando com privilégios administrativos.
Em alguns sistemas, este comando irá também resetar seus valores para o padrão: 10.9 cps/250 ms.
Se quiser usar o aplicativo dentro de um script do sistema e não quiser também que ele dê algum retorno, use a opção ‘-s’ (silent):

kbdrate -s

Os outros parâmetros ajustáveis são:

  • -r — ajuste da taxa de repetição ou rate. Em sistemas baseados em processadores Intel, os valores possíveis variam entre 2.0 e 30.0 cps.
    Ainda, dentro desta faixa, apenas alguns valores são aceitos e o programa irá selecionar o valor válido mais próximo do que você digitou.
    Os valores aceitos são: 2.0, 2.1, 2.3, 2.5, 2.7, 3.0, 3.3, 3.7, 4.0, 4.3, 4.6, 5.0, 5.5, 6.0, 6.7, 7.5, 8.0, 8.6, 9.2, 10.0, 10.9, 12.0, 13.3, 15.0, 16.0, 17.1, 18.5, 20.0, 21.8, 24.0, 26.7, 30.0.
    De acordo com o manual do kbdrate, em sistemas SPARC-based, a faixa de valores aceitos se estende a 50 cps.
  • -d — ajuste do delay ou tempo de espera até começar a repetir, em milissegundos.
    Em sistemas Intel, os valores aceitos vão de 250 a 1000 ms (“pulando” de 250 em 250).

Se quiser ajustar a taxa de repetição para 24 caracteres por segundo, com um delay de 250 milissegundos, use o seguinte comando:

kbdrate -r 24 -d 250
Typematic Rate set to 24,0 cps (delay = 250 ms)

A documentação adverte que nem todos os teclados são suportados ou suportam todas as taxas. Você vai ter que testar, portanto.
O meu teclado Dell KM 632 não aceitou adequadamente todas as configurações do kbdrate, para citar um exemplo.
Me conte, nos comentários, como o comando funcionou para você.

Como desabilitar o teclado interno do notebook

Se você usa um teclado externo conectado ao seu notebook via USB, Bluetooth ou de outra forma, possivelmente, não precisará usar o teclado do notebook.
Caso o teclado do notebook esteja causando problemas (por ter algum defeito), pode ser interessante desligá-lo.
Neste texto, vou demonstrar algumas técnicas para desligar o teclado via software, no Linux.
No decorrer da experiência, usei uma máquina com o Ubuntu 16.04 LTS Xenial Xerus instalado. Os procedimentos, portanto, devem funcionar em outras distribuições GNU/Linux relacionadas ou derivadas.

O que você perde ao desligar o teclado do notebook

A maioria das funções continuam acessíveis pelo teclado externo — principalmente se este vier com teclas multimídia.
Mas você precisa estar atento a outras funções que deixarão de estar acessíveis.
Teclas de regulagem do brilho, para ligar/desligar o WiFi, não costumam estar presentes em teclados externos, por mais completos que eles sejam.
Se elas são importantes para você, talvez estes procedimentos não sejam a solução.
Teclado notebook gateway

Um pouco da história

Recentemente, me chegou às mãos um notebook Gateway com o teclado danificado. Em alguns momentos, algumas de suas teclas “disparavam” aleatoriamente, atrapalhando a digitação de qualquer coisa.
Abrir o teclado e desconectar seu cabo da máquina é uma solução e não é das mais difíceis. Mas, como este não é um blog (predominantemente) de hardware, decidi pesquisar uma forma de resolver o problema pela via do software.

Computadores e carros velhos são danadinhos para nos ensinar bastante sobre tecnologia e mecânica.

Além do mais, para desfazer o procedimento no hardware, o usuário seria obrigado a desligar o computador e abri-lo novamente.
Some a isto o fato de que os teclados costumam ser ligados à carcaça do notebook por um fino e curto cabo — neste caso, reconectá-lo pode não ser uma tarefa muito fácil.
As 2 soluções que proponho, neste texto são fáceis de aplicar e fáceis de desfazer.

Desligue o teclado do notebook através do GRUB

O GRUB, já foi dito, é um trabalho em progresso.
Recursos novos são adicionados, outros são retirados.
O procedimento, aqui relatado, funcionou perfeitamente no GRUB versão 2.02. Tem a vantagem de ser extremamente fácil de se reverter.
Para saber a versão do GRUB instalado no seu sistema, use o comando abaixo:

sudo grub-probe --version
grub-probe (GRUB) 2.02~beta2-36ubuntu2

Faça uma cópia de segurança do arquivo de configuração padrão do GRUB, antes de alterá-lo:

sudo cp /etc/default/grub /etc/default/grub.original

Agora abra o arquivo, com seu editor favorito:

sudo editor /etc/default/grub

Localize a linha
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
e substitua-a por
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"
Salve e feche o arquivo.
Agora atualize o arquivo de configuração do GRUB:

sudo update-grub

Agora, reinicie o computador e veja se tudo deu certo.
Para reverter o processo, basta levar de volta o conteúdo da cópia de segurança ao arquivo de configuração e atualizar o GRUB:

sudo cp /etc/default/grub.original /etc/default/grub
sudo update-grub

Se você não gostou desta solução, experimente a próxima…

Use o xinput para desativar temporariamente o teclado

O uso do comando xinput provê uma solução mais leve e mais restrita.
Com o xinput, é possível desativar imediatamente o teclado, sem a necessidade de reiniciar ou, mesmo, se logar como root — um usuário simples dá conta do recado.
Este procedimento só terá efeito na sessão atual. Ao reiniciar o computador, tudo volta ao normal.
Se você iniciar outra sessão paralela ou simultânea, ela já não estará mais sob o efeito deste ajuste.
Eu sugeriria criar um script ou uma atalho de teclado somente para ativar/desativar o teclado com este comando.
O xinput é um utilitário do sistema que lista os dispositivos de entrada disponíveis, bem como informações sobre estes.
O aplicativo permite também alterar alguns ajustes relativos a cada dispositivo de entrada.
Veja como obter uma lista dos dispositivos de entrada atuais no seu sistema:

xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=12 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ 1.3M WebCam id=10 [slave keyboard (3)]
↳ Dell Dell KM632 Wireless Keyboard and Mouse id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Acer WMI hotkeys id=15 [slave keyboard (3)]

No meu resultado, acima, a informação que me interessa é a que se encontra na penúltima linha (em destaque) — onde tenho o ‘id’ do teclado e o ‘slave keyboard (3)’.
Com estes dados é que irei trabalhar, daqui pra frente.
Adapte os exemplos dados à sua realidade, aí.
No comando, que segue, vou “suspender” o dispositivo com o id=14 e pedir uma nova lista:

xinput float 14
xinput list

Note que, na próxima listagem, o dispositivo de teclado suspenso está em último lugar e seu estado consta como floating:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=12 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ 1.3M WebCam id=10 [slave keyboard (3)]
↳ Dell Dell KM632 Wireless Keyboard and Mouse id=11 [slave keyboard (3)]
↳ Acer WMI hotkeys id=15 [slave keyboard (3)]
∼ AT Translated Set 2 keyboard id=14 [floating slave]

Neste momento, o teclado do notebook não vai mais funcionar para o usuário/sessão em questão.
Para reverter o processo, vou usar a opção reattach, em conjunto com as informações colhidas, lá no começo. Veja:

xinput reattach 14 3
xinput list

Ao pedir a lista, veja que o teclado aparece novamente em penúltimo lugar e não se encontra mais susṕenso (ou floating):

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=12 [slave pointer (2)]
⎜ ↳ Dell Dell KM632 Wireless Keyboard and Mouse id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ 1.3M WebCam id=10 [slave keyboard (3)]
↳ Dell Dell KM632 Wireless Keyboard and Mouse id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ Acer WMI hotkeys id=15 [slave keyboard (3)]

Referências

Saiba mais sobre o GRUB.

O Hackers Keyboard acrescenta funcionalidades ao smartphone Android

Há inúmeros aplicativos que simulam teclados para dispositivos Android. Se você já experimentou vários, deve ter percebido a falta de algumas teclas — que não são tão usadas pela maioria dos usuários, mas são importantes para outros grupos de (heavy) users.

Visão do layout tradicional do teclado.
Clique para ampliar.

O Hacker’s Keyboard não é para a maioria dos usuários. Ele é voltado para quem precisa de teclas como o TAB, Ctrl, Alt e as setas.
Algumas destas teclas são fundamentais ao usar um terminal ou escrever códigos de programas de computador.
O aplicativo provê um layout completo de teclado, uma interface separada para o teclado numérico e com todas as outras teclas dispostas em seus lugares tradicionais — com suporte a multitoque, para você poder usar as teclas modificadoras.

Se você usa o seu smartphone ou tablet para acessar computadores remotos via SSH ou FTP, vai achar o Hacker’s Keyboard muito útil, também.

Como instalar e configurar o Hacker’s Keyboard

O teclado virtual Hacker’s Keyboard pode ser baixado no loja Google Play Store (links no final do texto!) e precisa ser configurado, depois de ser instalado.
Não se preocupe. A configuração é simples.
Depois de instalado, abra o aplicativo, para poder configurá-lo.

Hackers Keyboard inicial settings screen
Clique para ampliar.

  • No painel inicial do aplicativo, toque em Enable keyboard — isto irá abrir o painel de configuração de opções de entrada do Android.
  • Procure e selecione o Hacker’s Keyboard na lista de métodos de entrada disponíveis em seu aparelho.
  • Confirme o uso deste método, após ler o texto de aviso.
  • Toque no botão voltar do seu dispositivo, até chegar de volta à tela inicial do aplicativo.

Agora, falta ativar o método de entrada do Hacker’s Keyboard.
Toque no botão Set input method e selecione a opção Hacker’s Keyboard para torná-lo o método padrão de entrada.

Como selecionar o layout do teclado

No painel inicial de configuração do aplicativo, toque no botão Input languages e selecione, da lista, os layouts[idiomas] que você possivelmente irá usar.
Mais tarde, quando estiver escrevendo texto, você poderá fazer a seleção ao passar o dedo sobre a barra de espaçamento.

Como selecionar dicionários

Ter dicionários adequados ao(s) idioma(s) que você pretende usar, ajuda a autocompletar as palavras corretamente.
O botão Get dictionaries permite ir à loja Google Play Store e comprar (gratuitamente) um ou mais dicionários.
Mas, você pode bem continuar a usar os dicionários já disponíveis no seu sistema.

Referências

Leia mais sobre como usar o terminal: Emulador de terminal do Android.
Download do Hacker’s Keyboard: https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard
Os 5 melhores teclados para Android: http://www.todroid.com/top-5-best-android-keyboard-apps-that-will-increase-your-productivity/ (post antigo)

O aplicativo Indicator Keylock exibe as teclas LOCK em notebooks e teclados sem LEDs

Se você usa um notebook ou teclado sem LEDs, pode encontrar alguma dificuldade para determinar quando as teclas LOCK (Caps Lock, Num Lock e Scroll Lock) estão ativas ou não.
Há outras maneiras, contudo, de ser avisado quando se esbarrou em uma das teclas modificadoras LOCK.

Leds do netbook.
Leds no netbook.

O Ubuntu tem, no painel de configuração do teclado a opção de emitir um aviso sonoro a cada vez que uma tecla LOCK é ativada ou desativada.
O indicator-keylock é um pequeno programa que emite um aviso visual, através do sistema de notificações já existente, de que o estado de uma das teclas LOCK foi alterado.
Trata-se de um appindicator que resolve o problema da falta de LEDs em notebooks, netbooks ou em teclados, como o DELL KM 632.
O aplicativo vem com vários ícones, para satisfazer os diversos temas disponíveis no ambiente desktop do Ubuntu.

Como instalar o indicator-keylock

Vou explicar como instalar o indicator-keylock através de PPAs.
Se você tiver alguma dificuldade para executar este processo, sugiro ler o tutorial Como instalar softwares a partir de PPAs — onde também se explica os possíveis “perigos” deste método de instalação.
No Ubuntu, abra um terminal e execute os seguintes comandos:

sudo add-apt-repository ppa:tsbarnes/indicator-keylock && sudo apt-get update
sudo apt-get install indicator-keylock

Para iniciar o aplicativo tecle Alt + F2 e execute “indicator-keylock”.
Opcionalmente, você pode instalar conjuntos de ícones adicionais ao seu sistema, para tornar o visualização do OSD do indicator-keylock mais agradável ou integrado ao seu tema atual.

sudo apt-get install indicator-keylock-ubuntu-mono indicator-keylock-humanity indicator-keylock-elementary

apt-cache search keylock
O resultado, após a instalação e execução do aplicativo, é a exibição de um pequeno quadro de aviso a cada vez que uma das teclas LOCK for ativada.
ativação da tela LOCK
Além disto, o sistema exibe um ícone, na barra de status, indicando a tecla que se encontra ativada.
O “A” maiúsculo, no ícone, representa a tecla “Caps Lock” (ou “Fixa”, em alguns teclados) — ele não se refere à letra A.

Como ligar o Num Lock quando a tecla está ausente

Recentemente me deparei com um teclado Dell KM 632, com as teclas numéricas dispostas à parte (conforme a foto abaixo), mas sem a tecla Num Lock, especificamente para ativar ou desativar esta parte do teclado.
Embora não haja qualquer indicação visual, esta parte do teclado tem dupla função, ou seja, as teclas tanto podem imprimir números como podem ser usadas como direcionadoras — ←, →, ↓, ↑, End, Home, PgDn, PgUp etc.

Teclado númerico no Dell KM 632
Clique para ampliar.

A falta de uma tecla modificadora Num Lock, a princípio, nos impede de usar com eficiência este teclado.
Sou usuário Linux e nem tentei ver como este dispositivo se comporta no Windows — e, verdade seja dita, tenho muito pouco interesse em saber.
Devolver o produto é uma alternativa, neste caso — e o consumidor tem o prazo legal de fazê-lo até 7 dias depois de o ter recebido.
Mas geeks tem esta tendência irresistível de querer procurar uma solução para tudo — às vezes, um tanto complexa.
Neste caso, há várias formas de resolver o problema, no Linux — e algumas são bastante simples.

Como solucionar ou contornar a falta de teclas no Linux

Você sempre pode (re)mapear o teclado e há ferramentas, no Linux, tanto gráficas, quanto scripts para executar no terminal para fazer isto.
Entre as possíveis soluções, eu enumero as seguintes:

  • Remapeie as teclas — Ainda que esteja faltando uma tecla, ainda há outras “sobrando” no teclado: Ctrl, Shift e Delete, estão presentes em pares, cada uma. Além disto, há algumas que são bem menos usadas: Caps Lock, Tab ou ESC — Ok! A gente usa todas elas… 😉 Mas será que usa a combinação de Ctrl + Esc? E Alt+Caps Lock?
    A idéia é atribuir a uma destas teclas (ou combinação) “inúteis” para você a função da tecla que está faltando.
  • Crie um script para ativar/desativar a função da tecla em questão — Qualquer que seja a função, ela provavelmente pode ser ativada a partir de um script — seja hibernação, controle do áudio, trava do teclado, Num Lock, Scroll Lock etc.
    Você pode associar esta solução a outras, para ter uma maior comodidade: criar suas teclas de atalho para acionar o script ou o comando ou, ainda, adicioná-lo à inicialização do seu sistema.
  • Baixe um aplicativo utilitário para ligar/desligar a função desejada — Há aplicativos que fazem este trabalho e também podem ser associados a teclas de atalho ou inseridos na inicialização do sistema.

Neste caso, optei por usar um pequeno utilitário, que liga ou desliga o teclado numérico pra mim.

Como ativar/desativar o Num Lock com o numlockx

O numlockx é um programa utilitário, feito para controlar a tecla Num Lock ou NumLock dentro de uma sessão do X11.
Ou seja, dentro do ambiente gráfico, o numlockx resolve o problema.
Ele é muito simples e estável. Tem 4 opções de funcionamento, apenas:

  • on — para ligar o teclado numérico.
  • off — para desligar.
  • toggle — para alterar o estado do teclado numérico: se estivar ligado, desliga (e vice-versa).
  • status — para informar o estado atual do Num Lock.

Para ligar o Num Lock, portanto, o seguinte comando basta:

numlockx on

Se quiser saber se deu certo, use a opção status:

numlockx status
Numlock is on

O uso da opção status pode ser útil dentro de um script, para verificar a situação da tecla.
Você pode obter mais ajuda sobre o numlockx, com o help:

numlockx --help

Como instalar o numlockx

O aplicativo está disponível nos repositórios do Debian, do Ubuntu e de outras distribuições baseadas nelas.
Pode ser instalado, portanto, facilmente, com apt-get ou através da central de instalação de programas da sua distro favorita.

sudo apt-get update
sudo apt-get install numlockx

Se preferir um caminho mais fácil, clique aqui, para instalar o numlockx no seu sistema Ubuntu.
Usuários de distros baseadas no Red Hat, podem baixar o pacote RPM, mais atualizado, no link abaixo:
Download numlockx: http://sourceforge.net/projects/magicrpmshop/files/?source=navbar.

Como ligar o Num Lock automaticamente no início da sessão

A versão mais atual do numlockx já faz esta alteração.
Se isto não estiver acontecendo, sugiro ler o post sobre como tirar ou colocar aplicativos no início automático ou alterar o arquivo .xinitrc:

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#

numlockx &

exec window_manager

Referências:

Documentação do ArchLinux: https://wiki.archlinux.org/index.php/Activating_Numlock_on_Bootup.
Post no Cyberciti: http://www.cyberciti.biz/faq/how-to-linux-turn-on-num-lock-on-gnome-startup/.