Bash: Как найти мышь в Bash

Bash: Как найти мышь в Bash

Мне было интересно, есть ли способ использовать скрипты bash для проверки того, есть ли в системе мышь (компьютер) или нет (планшет), не в смысле того, где на экране находится мышь, а в смысле того, планшет ли это или вы используете мышь на устройстве...

Применение: автоматическое улучшение работы настольного компьютера на планшетах.

решение1

bluedxca93ish альтернатива без необходимости выхода.

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

Это, конечно, медленнее, чем ваш метод, но не так зависит от версии bash, как ваш, я боюсь. Также всего две строки.

решение2

Такого рода информация немного зависит от конкретного дистрибутива Linux.

Следуя нескольким командам, которые могут помочь...

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
--> последний вариант вернет что-то вроде "Laptop", "Notebook", "Portable", "Sub Notebook", "Main Server Chassis", ... ( cat /sys/class/dmi/id/chassis_typeчтобы избежать sudo)

решение3

Мне удалось создать работающий скрипт для мышей и тачпадов, а также правильно определить сенсорный экран. Вот что я сделал:

#/bin/bash -e

ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"

Связанный контент