Skip to content

Mouse tracking (DECSET 1000)

Category: modes · Baseline: modern · Tags: DEC Private Modes, Xterm Extensions · Specification ↗

ESC [ ? 1000 h
DECSET 1000 enables basic mouse click reporting (Normal tracking mode). The sequence is ESC [ ? 1000 h. When enabled, button press and release events are reported to the application. The legacy X10 encoding reports coordinates as single bytes offset by 32, limiting reports to the first 223 columns/rows. For larger terminals, use SGR mouse mode (DECSET 1006) instead.
How this is testedautomated
Send \x1b[?1000h (DECSET 1000), verify mouseTracking mode is active.

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-04-06

Supported by 11 of 12 terminals (92%). Not supported by: vt100.js. Part of the Modern TUI baseline. Notes: vt100.js: Not in VT100/VT220xterm extension.

Supported by 12 of 14 backends (86%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yesDECRPM: mode reset
Ghostty1.3.1✓ yesDECRPM: mode reset
VS Code✓ yes
Warp✓ yes
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes
Kitty0.40.0~ partialNot exposed via Python batch bridge
vt100.js0.2.1✗ noNot in VT100/VT220 — xterm extension