O seguinte funciona para mim:
STYLUS_ID=11 # replace with ID or name of your stylus
TOUCH_ID=9 # replace with ID or name of your touch screen
xinput test -proximity "$STYLUS_ID" |
while read line; do
if [[ $line == *out* ]]; then
xinput enable "$TOUCH_ID"
else
xinput disable "$TOUCH_ID"
fi
done
Em vez de pesquisar o estado da caneta, ela depende da opção test
de xinput
, que insere um loop infinito exibindo proximity
events para o dispositivo. Da página de manual de xinput
:
test [-proximity] device
Register all extended events from device and enter an endless loop
displaying events received. If the -proximity is given, ProximityIn
and ProximityOut are registered.