
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 行です。
答え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
--> この最後のものは、「ラップトップ」、「ノートブック」、「ポータブル」、「サブノートブック」、「メインサーバーシャーシ」などを返します ( 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"