Term Mouse
A mouse reporting interface
Originally based on TooTallNate's gist, rewritten to use all the mouse reporting modes.
Example
var mouse = ; mouse start ;
API
var mouse = options;
Options:
input
- the stream to read events from, defaults toprocess.stdin
output
- the stream to write control codes to, defaults toprocess.stdout
utf8
- whether to use UTF-8 (1005) reporting mode, this could break things if your terminal only supports the standard reporting mode or if you're using a non-UTF-8 locale
Events:
event
-move
,buttons
andscroll
move
buttons
- when a button is pressed or releasedscroll
up
- when a button is presseddown
- when a button is releasedclick
-up
afterdown
, here there are two event objects passed: the first is from when the button was pressed, the second is from the button being released
All of these include an event object:
shift
- whether the shift key is downmeta
- whether the meta (alt) key is downctrl
- whether the control key is downname
-'scroll'
,'move'
or'buttons'
button
-'left'
,'middle'
,'right'
or'none'
if the button is releasedbtnNum
- the button that was pressed / released, if it's not using xterm's ASCII reporting mode then it'll benull
when the button is releaseddown
- if the button is downx
- the x coordinate of the cursory
- the y coordinate of the cursorsequence
- the string that caused this event (if it's using the standard reporting mode, this could be incorrect because the real sequence is invalid UTF-8)buf
- the sequence that caused this event as a buffer
Useful References
I looked at http://invisible-island.net/xterm/ctlseqs/ctlseqs.html and https://www.systutorials.com/docs/linux/man/7-urxvt/ while making this.