Como desativar automaticamente o teclado / mouse do laptop com o xinput quando o teclado / mouse externo está conectado?

3

Eu sei que posso usar xinput para desativar meu mouse e teclado, e geralmente eu digito três comandos toda vez que conecto meu teclado e mouse ao teclado:

xinput float 'AT Translated Set 2 keyboard'

xinput float 'Ideapad extra buttons'

xinput float 'SynPS Synaptics Touchpad'

Eu costumo usar os valores de id em vez dos nomes, mas você entende o que quero dizer.

Existe alguma maneira de automatizá-lo, então sempre que meu teclado estiver conectado, meu computador executará os dois comandos principais e, quando meu mouse estiver conectado, meu computador executará o comando bottom? O mesmo acontece com a reativação dos dispositivos quando meu mouse / teclado estiver desconectado executando xinput reattach.

    
por Randy He 11.09.2015 / 10:04

1 resposta

2

Eu nunca fiz isso, mas tentarei ajudar baseando-se em outro site da SE.

Basicamente seguindo esta esta resposta você deve ser bom para modificar arquivos udev e prover scripts:

/etc/udev/rules.d/00-usb-keyboard.rules

ATTRS{idVendor}=="09da", ATTRS{idProduct}=="0260", OWNER="YOURUSERNAME"
ACTION=="add", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-in_udev"
ACTION=="remove", RUN+="/home/YOURUSERNAME/.bin/usb-keyboard-out_udev"

/home/YOURUSERNAME/.bin/usb-keyboard-in_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-in &

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

/home/YOURUSERNAME/.bin/usb-keyboard-out_udev

#!/bin/bash
/home/YOURUSERNAME/.bin/usb-keyboard-out &

/home/YOURUSERNAME/.bin/usb-keyboard-out

#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/YOURUSERNAME/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
YOUR_COMMAND_HERE

Todos esses scripts devem ter permissão executável ( chmod +x ).

De acordo com a resposta:

USB keyboard vendor and product ids should be changed as per the output of the command lsusb (For example, my lsusb output have this for my USB Keyboard: Bus 001 Device 006: ID 09da:0260 A4 Tech Co., Ltd)

Espero que isso funcione para você.

    
por 11.09.2015 / 10:24

Tags