Categories
Linux Tutoriais

Como desabilitar o teclado interno do notebook

Conheça 2 métodos para desabilitar o teclado interno do notebook, deixando apenas o externo (USB, Bluetooth) funcionando.
O primeiro usa o GRUB e o segundo é mais light, como uso do comando xinput.

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.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

15 replies on “Como desabilitar o teclado interno do notebook”

Venho aqui agradecer, pois sua solução funcionou. Após reiniciar até agora não voltou a ficar vivo o teclado.
Muito obrigado. E viva o pinguim.

Meu teclado defeituoso do notebook não me deixava fazer nada, ficava apertando teclas aleatórias o tempo inteiro.
Esse tutorial me salvou demais. Obrigado.
Grub version 2.06 e funcionou perfeitamente

A dica foi realmente útil. Porém a xinput agora funciona de maneira diferente. O comando atual basta que você escreva o comando abaixo:
>xinput disable (id)

E para reativar:
>xinput enable (id)

Sendo que em (id), vc precisa colocar apenas o número do id do seu teclado, sem parênteses.

Olá, faz um tempo eu desativei o teclado do meu notebook usando o comando xinput.
Agora queria reativar, mas não lembro o id.
Como fazer?
Obrigado.

acho que você/esse site são os únicos que ensina de forma decente como fazer isso, muito obg enfim vou poder terminar meus trabalhos da faculdade sem meu pc ficar loco ✨

Obrigado pelas dicas vou poder, enfim escrever meu TCC o meu teclado sujou e não consegui abrir para limpar então tive que comprar um externo mas ainda interferia.

Muito boa a dica. Me ajudou bastante com um netbook que estava com problema nas teclas. Obrigado!
Seria possível você também ensinar a nós meros mortais como criar este script ? : ” Eu sugeriria criar um script ou uma atalho de teclado somente para ativar/desativar o teclado com este comando.”

Muito boa as dicas, principalmente,a do xinput, pois ela não é permanente.
TB gostei da dica sobre criar um script para ativar de modo rápido, pois minha mulher, não sabe e não quer aprender a acessar o terminal e digitar os comandos. Seria possível criar o script, atrelar um atalho e fazer com q seja ativado na inicialização do sistema?

Excelente dica, meu blog de linux favorito. Meu notebook é velho de guerra, tem uma configuração que deixa muito atual no chinelo, mas o teclado realmente estava incomodando. Dica funcionou perfeitamente.

Achei a solução FENOMENAL porque não é dependente de distro! =D Meus mais efusivos parabéns! =D

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.