
Ich habe mich gefragt, ob es eine Möglichkeit gibt, mithilfe von Bash-Skripten zu prüfen, ob das System über eine Maus verfügt (Computer) oder nicht (Tablet), und zwar nicht, wo sich die Maus auf dem Bildschirm befindet, sondern um festzustellen, ob es sich um ein Tablet handelt oder ob Sie auf dem Gerät eine Maus verwenden ...
Verwendungsmöglichkeiten: Automatische Verbesserung der Leistung eines Desktops auf Tablets
Antwort1
bluedxca93ish-Alternative ohne die Notwendigkeit eines Exits.
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
Das ist sicherlich langsamer als Ihre Methode, aber nicht so abhängig von der Bash-Version wie Ihre, fürchte ich. Auch nur zwei Zeilen.
Antwort2
Diese Art von Informationen hängt leicht von der jeweiligen Linux-Distribution ab.
Die folgenden Befehle können hilfreich sein ...
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
--> Letzteres gibt etwas wie „Laptop“, „Notebook“, „Portable“, „Sub Notebook“, „Main Server Chassis“, ... zurück ( cat /sys/class/dmi/id/chassis_type
um sudo zu vermeiden)
Antwort3
Es ist mir gelungen, ein funktionierendes Skript für Mäuse und Touchpads zu erstellen und den Touchscreen ordnungsgemäß zu erkennen. Und das habe ich getan:
#/bin/bash -e
ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"