Lanzar script según evento ACPI para desactivar el panel táctil (o lo que desees)
Enviado por miguelcarmona :: 18 de marzo de 2020

Partiendo del problema que me surgía con la pantalla táctil de mi portátil y que comentaba en https://miguelcarmona.com/articulos/desactivar-el-panel-tactil-touch-screen-mediante-bash-y-teclas-rapidas he decidido hacerlo algo más automático y no depender de desactivar o activar el control táctil cuando abro o cierro la pantalla.
Si no tenemos acpid instalado (por defecto openSuse no lo hace), deberemos instalarlo primero:
zypper install acpid
Ahora crearemos un archivo de eventos en /etc/acpi/events/laptop-lid con este contenido:
event=button/lid.*
action=/etc/acpi/laptop-lid.sh
Para crear el script laptop-lid.sh, podemos saber el dispositivo a activar/desactivar ejecutando xinput (desde nuestro usuario y no como root):
miguel@netbook:~> xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN1200:00 04F3:3022 Touchpad id=15 [slave pointer (2)]
⎜ ↳ USB Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ FTSC1000:00 2808:5120 id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
........
En mi caso, el dispositivo es FTSC1000:00 2808:5120
Vamos a buscar el id de nuestro dispositivo en /sys con:
miguel@netbook:~> ls /sys/bus/hid/drivers/hid-multitouch/ | grep 2808:5120
0018:2808:5120.0008
Ahora creamos el script /etc/acpi/laptop-lid.sh con el siguiente contenido:
#!/bin/bash
ID='0018:2808:5120.0008'
grep closed /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
then
# close action
echo $ID > /sys/bus/hid/drivers/hid-multitouch/unbind
else
# open action
echo $ID > /sys/bus/hid/drivers/hid-multitouch/bind
fi
Ya sólo nos queda dar permiso de ejecución, reiniciar acpi y listo!!
chmod +x /etc/acpi/laptop-lid.sh
systemctl restart acpid