telmich/gpm — pull request #4 by seyko2 (2014-09-25 02:32:21+00:00)
Title: add support to report a mouse events via stdin with esc-sequences:

an xterm-like mouse reporting. A bugs reports to seyko2@gmail.com

===============================================================

getc()
{
stty raw
dd bs=1 count=1 2>/dev/null
stty cooked
}

handle_mouse()
{
local c
c="`getc`"
[ "$c" = "[" ] || return
c="`getc`"
[ "$c" = "M" ] || return
b="`getc`"
x="`getc`"
y="`getc`"
b=`printf "%u" "'$b"`
x=`printf "%u" "'$x"`
y=`printf "%u" "'$y"`
b=$(($b - 32))
x=$(($x - 32))
y=$(($y - 32))
echo "$b $x $y"
}

stty -echo
printf '\033[?1000h'
ESC="`printf '\033'`"
while true ; do
c="`getc`"
if [ "$c" = "$ESC" ] ; then
handle_mouse
fi
if [ "$c" = "q" ] ; then
break
fi
done
printf '\033[?1000l'
stty echo
echo
===============================================================