Desativar dispositivo com libinput

4

Desejo desativar um dispositivo de entrada de teclado com libinput . Algo análogo a:

xinput set-int-prop 1 "Device Enabled" 8 0

que segue a sintaxe:

--set-int-prop device property format value

Sets an integer property for the device. Appropriate values for format are 8, 16, or 32, depending on the property. Deprecated, use --set-prop instead.

(ou como xinput set-prop ).

Eu quero usar isso para desabilitar um dongle de autenticação de emulação de teclado (Yubikey) de "digitar" um token de um toque falso.

Talvez exista um método preferencial que não envolva libinput para fazer isso. Eu não quero desativar o dongle completamente, já que ele tem outros recursos além de gerar um token através de sua emulação de teclado (também é um cartão inteligente GPG).

Estou usando o Fedora 26 com o Wayland.

    
por Justin 28.08.2017 / 02:02

2 respostas

1

Eu não conheço nenhum método envolvendo libinput , mas você pode fazer uma captura exclusiva no dispositivo /dev/input/event* que corresponde ao Yubikey. Isso funciona na camada de entrada do kernel, com ioctl , e impede que qualquer outro aplicativo (por exemplo, Wayland usando libinput ) processe eventos deste dispositivo.

Normalmente, qualquer programa que pretenda usar recursos no Yubikey deve executar o teste, mas você pode testá-lo com evtest --grab e escolher o Yubikey ou evtest --grab /dev/input/eventX se conhecer o dispositivo ou um link simbólico para ele. / p>

O ioctl é EVIOCGRAB , definido em /usr/include/linux/input.h , caso você queira usá-lo em um programa. Também funciona com Python e outras linguagens de script que podem fazer iotctl s.

    
por 28.08.2017 / 08:44
0

fwiw, a propriedade LIBINPUT_IGNORE_DEVICE udev pode ser atribuída a dispositivos que devem ser ignorados. Documentos detalhados estão aqui:

link

    
por 21.11.2018 / 02:52