
Eu queria saber se havia uma maneira de usar scripts bash para verificar se o sistema tem mouse (computador) ou não (tablet), não como onde o mouse está na tela, mas para detectar se é um tablet ou se você está usando um mouse no dispositivo...
Usos disso: Fazendo um desktop funcionar melhor em tablets automaticamente
Responder1
Alternativa bluedxca93ish sem a necessidade de saída.
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
Isso é certamente mais lento que o seu método, mas não depende da versão do bash como o seu, temo. Também apenas duas linhas.
Responder2
Este tipo de informação depende ligeiramente da distribuição específica do Linux.
Seguindo alguns comandos que podem ajudar ...
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 retornará algo como "Laptop", "Notebook" "Portátil", "Sub Notebook", "Main Server Chassis", ... ( cat /sys/class/dmi/id/chassis_type
para evitar sudo)
Responder3
Consegui fazer um script funcional para mouses e touchpads, bem como detectar a tela sensível ao toque corretamente, eis o que fiz:
#/bin/bash -e
ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"