Bash: Como procurar por um mouse no Bash

3

Eu queria saber se havia uma maneira de usar scripts bash para verificar se o sistema tem um mouse (computador) ou não (tablet), não como em onde o mouse está na tela, mas como para detectar se é um tablet ou se você estiver usando um mouse no dispositivo ...

Usos disso: Fazendo uma área de trabalho funcionar melhor em tablets automaticamente

    
por Dominic Hayes 31.08.2016 / 21:39

3 respostas

1

Eu consegui fazer um roteiro de trabalho para Mouses e Touchpads, bem como a detecção da tela sensível ao toque corretamente, eis o que fiz:

#/bin/bash -e

ls /dev/input/by-id/*mouse && echo "Desktop Mode" && exit
xinput --list | grep TouchPad && echo "Desktop Mode" || echo "Tablet Mode"
    
por Dominic Hayes 01.09.2016 / 17:59
1

bluedxca93ish alternativa sem a necessidade de sair.

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

Isso é certamente mais lento que o seu método, mas não a versão bash dependente da sua que eu temo. Também apenas duas linhas.

    
por user43787 01.09.2016 / 20:02
1

Esse tipo de informação é um pouco dependente da distribuição específica do Linux.

Seguindo alguns comandos que podem ajudar ...

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 vai retornar algo como "Laptop", "Notebook" "Portable", "Sub Notebook", "Servidor Principal Chassis", ... ( cat /sys/class/dmi/id/chassis_type para evitar o sudo)

    
por JJoao 01.09.2016 / 10:53