Bash: Cómo buscar un mouse en Bash

Bash: Cómo buscar un mouse en Bash

Me preguntaba si había una manera de usar scripts bash para verificar si el sistema tiene un mouse (computadora) o no (tableta), no como dónde está el mouse en la pantalla sino para detectar si es una tableta o si estás usando un mouse en el dispositivo...

Usos de esto: hacer que una computadora de escritorio funcione mejor en tabletas automáticamente

Respuesta1

Alternativa bluedxca93ish sin necesidad de salir.

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

Ciertamente es más lento que su método, pero me temo que no depende de la versión de bash como la suya. También sólo dos líneas.

Respuesta2

Este tipo de información depende ligeramente de la distribución de Linux específica.

Siguiendo un par de comandos que pueden ayudar...

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
--> este último devolverá algo como "Laptop", "Notebook", "Portable", "Sub Notebook", "Main Server Chasis", ... ( cat /sys/class/dmi/id/chassis_typepara evitar sudo)

Respuesta3

Logré crear un script que funcionara tanto para ratones como para paneles táctiles, así como para detectar la pantalla táctil correctamente, esto es lo que hice:

#/bin/bash -e

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

información relacionada