
Me preguntaba si había una manera de usar scripts bash para verificar si el sistema tiene un mouse (computadora) o no (tableta), no como dónde está el mouse en la pantalla sino para detectar si es una tableta o si estás usando un mouse en el dispositivo...
Usos de esto: hacer que una computadora de escritorio funcione mejor en tabletas automáticamente
Respuesta1
Alternativa bluedxca93ish sin necesidad de salir.
if [ -n "$(ls /dev/input/by-id/*mouse 2>/dev/null | grep -i 'usb\|PS\|COM')" ]; then echo "Bluedxca93 found a mice thats nice";fi
if [ -n "$(xinput --list | grep TouchPad)" ]; then echo "Bluedxca93 found a damn tablet";fi
Ciertamente es más lento que su método, pero me temo que no depende de la versión de bash como la suya. También sólo dos líneas.
Respuesta2
Este tipo de información depende ligeramente de la distribución de Linux específica.
Siguiendo un par de comandos que pueden ayudar...
ls /dev/input/by-id/*mouse && echo "yes" || echo "no"
cat /proc/bus/input/devices | grep -E 'Name|Handler'
cat /proc/bus/input/devices | awk -v RS="" '/TouchPad/ {print "laptop";last}'
xinput --list
sudo dmidecode --string chassis-type
--> este último devolverá algo como "Laptop", "Notebook", "Portable", "Sub Notebook", "Main Server Chasis", ... ( cat /sys/class/dmi/id/chassis_type
para evitar sudo)
Respuesta3
Logré crear un script que funcionara tanto para ratones como para paneles táctiles, así como para detectar la pantalla táctil correctamente, esto es lo que hice:
#/bin/bash -e
ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"