Bash: So suchen Sie in Bash nach einer Maus

Bash: So suchen Sie in Bash nach einer Maus

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_typeum 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"

verwandte Informationen