Я задавался вопросом, был ли способ использовать сценарии удара, чтобы проверить, имеет ли система мышь (компьютер) или не (планшет), не как в том, где мышь находится на экране, но как в обнаружить, если это - планшет или если Вы используете мышь на устройстве...
Использование этого: Создание настольной работы лучше над планшетами автоматически
Мне удалось сделать рабочий сценарий для Мышей и Сенсорных панелей одинаково, а также обнаружения сенсорного экрана правильно, вот то, что я сделал:
#/bin/bash -e
ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"
альтернатива 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
, Который, конечно, медленнее, чем Ваш метод, но не, что иждивенец версии удара как Ваш я боюсь. Также только две строки.
Этот вид информации немного зависит от определенного дистрибутива 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
-> этот последний возвратит что-то как "Ноутбук", "Портативный" "Ноутбук", "Ноутбук Sub", "Основное Шасси Сервера"... (cat /sys/class/dmi/id/chassis_type
для предотвращения sudo)