Como desabilitar teclas específicas do teclado no Linux (laptop e desktop)

Buenas galera! Recentemente ganhei um laptop velhinho e o mesmo veio com uma tecla defeituosa. A tecla em questão (número 3 do teclado numérico) está continuamente enviando sinal para o sistema como se estivesse pressionada. O laptop veio com Windows 11 e lá há um programa chamado “Key Tweak” que permite desabilitar qualquer tecla permanentemente. Desta forma, o laptop pode continuar sendo utilizado sem a necessidade de um teclado externo.

No Linux, por outro lado, não encontrei nenhum software semelhante com interface gráfica, apenas o “keyd” que funciona via terminal. Também não encontrei nenhum tutorial sobre o mesmo, além de poucas menções em fórums e as instruções na sua página do Github. Tudo em inglês.

Por isso decidi escrever um tutorial rápido para que futuramente qualquer pessoa interessada, icluindo a mim mesmo, possa utilizar como referencia para realizar este procedimento.

Utilizei o “keyd” no Zorin OS, que é baseado no Ubuntu, por isso os comandos de instalação de pacotes que utilizei são provenientes do mesmo. Lembre-se de adaptar esses comandos para o gerenciador de pacotes da sua distro.

1. Instale algumas dependências que são necessárias para a instalação do “keyd”. São os pacotes “git”, “make” “nano” e “gcc”.

sudo apt install git make nano gcc

2. Instale o “keyd” rodando os comandos a seguir (válidos para qualquer distro):

git clone https://github.com/rvaiya/keyd

cd keyd

make && sudo make install

sudo systemctl enable keyd && sudo systemctl start keyd

3. Crie um arquivo de configurações para o “keyd” com o comando:

sudo nano /etc/keyd/default.conf

O comando acima terá iniciado, no terminal, o editor de texto “nano” com um arquivo em branco. Dentro deste arquivo, utilizando o atalho “Ctrl + Shift + V” cole o conteúdo a seguir:

[ids]

*

[main]

# Maps capslock to escape when pressed and control when held.
#capslock = overload(control, esc)

# Remaps the escape key to capslock
#esc = capslock

No final deste arquivo de texto escreva o nome da tecla que você deseja desabilitar, seguido pelo comando “noop”. Por exemplo, para desabilitar a tecla “Insert” escreva:

insert = noop

Para descobrir o nome/identificador da tecla que você deseja desabilitar rode o comando “sudo keyd monitor” e pressione a tecla desejada. Isso exibirá na tela do terminal qual é o identificador de cada tecla pressionada.

Para salvar o arquivo de texto através do nano pressione “Ctrl + O” seguido de “Enter” e “Ctrl + X” para fechar o editor.

4. Aplique as configurações:

Para aplicar todas as mudanças feitas, rode o comando:

sudo keyd reload

A tecla escolhida já não deve estar funcionando.

Para reverter as mudanças basta que você comente ou remova a linha correspondente a tecla desejada do arquivo de configurações do “keyd” e rode o comando de “reload” novamente.

Outras funções do “keyd”

O “keyd” serve para outras funções relacionadas ao remapeamento de teclas, não apenas a desabilitação de teclas específicas. Para mais informações visite a página do software no Github.

Fica a dica para a equipe do @Diolinux fazer um post sobre o software, incluindo não somente esta mas também as outras funções do mesmo. Seria bom, já que não há (ao menos eu não encontrei) qualquer tutorial em português sobre o “keyd”. Anota aí @eddiecsilva . haha :grinning:

rapaz, eu criei uma conta aqui só pra te agradecer! Você é o cara! Enfrentei a mesma situação

Que bom que ajudou, brother! Qualquer coisa é só chamar! :call_me_hand:

o teclado do meu notebook também tem algumas teclas especificas que não funcionam bem, dai comprei um teclado mecânico externo pra usar no lugar, mas mesmo assim o teclado do note ainda age por conta própria as vezes. se eu desativar uma tecla por meio desse comando eu vou desativar em um teclado só, ou nos dois?

Permanent Method (At Boot)

  1. Open the GRUB configuration file using a text editor with admin rights:

    bash

    sudo nano /etc/default/grub
    
    

    Use o código com cuidado.

  2. Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT and add i8042.nokbd inside the quotation marks.

  3. Save the file and update GRUB by running:

    bash

    sudo update-grub
    
    

    Use o código com cuidado.

  4. Restart your laptop. [1]