Lo primero que debemos lograr es apagar el mouse, pero solo en X. Para esto podríamos usar xinput
.
Necesitamos descubrir dispositivos de entrada que estén conectados a la computadora (al servidor X):
pbm@tauri ~ $ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ A4Tech USB Mouse id=10 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
[...]
El dispositivo que necesitamos usar es A4Tech USB Mouse
con id=10
. A continuación, debemos verificar las propiedades de ese dispositivo:
pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
Device Enabled (121): 1
[....]
Para apagar el dispositivo, necesitamos cambiar la propiedad Device Enabled
:
xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Encenderlo:
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1
Lo siguiente es hacerlo automáticamente ...;) En este ejemplo, deshabilitaremos el acceso directo del mouse por teclado y lo habilitaremos presionando el botón izquierdo + derecho del mouse.
Para esto podríamos usar actkbd - demonio de atajo de teclado (pero no solo) que funciona fuera del servidor X.
Primero necesitamos crear el archivo de configuración vacío para actkbd: touch /etc/actkbd.conf
. Lo siguiente es descubrir dispositivos conectados a la computadora:
pbm@tauri ~ $ cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10
[...]
En esta parte, lo más interesante para usar son los nombres y controladores de dispositivos de teclado y mouse.
Primero nos encargamos de apagar el mouse mediante el método abreviado de teclado, por lo que debemos descubrir los identificadores de teclas:
pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `
Cuando sabemos qué son los identificadores de claves, debemos ponerlos en el archivo de configuración ( /etc/actkbd.conf
):
29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0
Para probarlo necesitamos ejecutar actkbd
en modo demonio:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D
De la misma manera, necesitamos manejar el evento "activar":
- Verifique los controladores del dispositivo del mouse
- Verifique los códigos de tecla del botón izquierdo + derecho del mouse usando
actkbd
- Ponlo a
actkbd.conf
- Ejecute actkbd daemon para monitorear el dispositivo de entrada del mouse
La ejecución de demonios se puede realizar como script de inicio o script de ejecución automática en el entorno.
Para apagar automáticamente el mouse, podríamos monitorear el dispositivo de entrada ( cat /dev/input/event5
) y apagarlo cuando no haya entrada ...
Espero que mi breve introducción te ayude ...;)
actkbd
! Después de publicar mi pregunta, ya había decidido usarlaxinput
, pero no descubrí cómo volvería a habilitar el mouse presionando los botones del mouse.