Problema com o comando XINPUT - Ubuntu 22.04

Olá, pessoal. Tudo bem com vocês?
Eu usava o Ubuntu 20.04, e para resolver o problema do meu teclado que fica digitando a tecla “1 !” sozinho, eu utilizava o comando xinput disable nele, e ficava usando um teclado externo.
No entanto, após reinstalar o Ubuntu para mudar para versão nova, 22.04, não consegui utilizar esse comando para desativar esse teclado.
Anexei uma imagem da mensagem que aparece e que antes não aparecia (“WARNING…resourse denied)”

Desde já, agradeço

O que aparece com o comando?

xinput list

Caso eu execute o xinput disable para alguma dessas opções em keyboard, não dá certo e aparece a mesma mensagem da primeira screenshot que eu mandei aqui no post.

E além disso, não aparece o meu teclado externo como opção como aparecia no 20.04 e o teclado nativo parece estar com nome diferente.

Isso significa que você está usando Wayland e xinput é um utilitário para configurar e testar dispositivos de entrada X.

Você pode utilizar o comando a seguir para identificar o “event” a qual o dispositivo, esta atrelado…

$ sudo libinput list-devices

Com ele identificado, poderá desabilitá-lo com:

$ sudo evtest --grab /dev/input/eventX > /dev/null &

* Onde X corresponde ao numero do “event”.

Para desabilitar

xinput float <id#>

xinput float 3

Isso deve funcionar

Para habilitar

xinput reattach <id#> <master#>

xinput reattach 3 2

sudo libinput list-devices

“comando não encontrado”

Infelizmente, não deu certo.

$ sudo apt install libinput-tools evtest

O $ sinal de cifrão é apenas uma referencia para indicar que é um comando para ser executado no “terminal”, portanto os comandos seriam sem ele no começo, ficando assim.

sudo libinput list-devices

Deu certo! Porém o teclado fica desativado somente quando Terminal permance aberto. Quando eu o fecho, o teclado volta a funcionar. O que fazer para impedir isso?

Para manter mesmo após fechar o terminal você pode tentar usar o utilitário setsid, ficando…

sudo setsid -c evtest --grab /dev/input/eventX

Mas indico, ou criar um serviço usando o SystemD ou uma regra utilizando o udev, para desabilitar na inicialização do sistema.


Para criar a regra udev crie um arquivo 99-disable-kbd.rules em /etc/udev/rules.d/, com:

sudo gedit /etc/udev/rules.d/99-disable-kbd.rules

e adicione o seguinte conteúdo:

ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="NOME DO DISPOSITIVO", ENV{LIBINPUT_IGNORE_DEVICE}="1"

NOME DO DISPOSITIVO você encontra executando o comando sudo libinput list-devices, logo após

Device: O Nome Do Dispositivo

Então reinicie ou recarregue as regras udev com:

sudo udevadm control --reload-rules
sudo udevadm trigger

Saber mais

2 curtidas

Resolveu, muito obrigado!!

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.