Skip to content

Pixel Mouse Reporting (1016)

Category: input · Baseline: rich · Tags: Xterm Extensions · Specification ↗

SGR-Pixels mouse mode (mode 1016) reports mouse coordinates in pixels rather than cells. This enables sub-cell precision for applications that need exact pointer positioning, such as terminal-based drawing tools or image viewers. Pixel mouse mode is the precision extension to SGR mouse reporting. Cell coordinates are enough for text widgets, but drawing tools, image viewers, and high-DPI terminal UIs need sub-cell location. The mode uses the familiar SGR mouse response shape, replacing cell units with pixel units.
How this is testedautomated
Enable SGR pixel mouse (CSI ? 1016 h), check getMode("pixelMouse") returns true.

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-05-17

Supported by 10 of 12 terminals (83%). Not supported by: vt100.js, xterm.js. Part of the Rich TUI baseline. Notes: vt100.js: SGR pixel mouse mode not implemented — pure TypeScript emulator; xterm.js: SGR pixel mouse mode not implemented in xterm.js.

Supported by 10 of 14 backends (71%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✓ yesSGR pixel mouse mode not tracked by ghostty-web WASM backend
VS Code✓ yes
Warp✓ yes
Kitty0.46.2✓ yesSGR pixel mouse mode not exposed via Python batch bridge
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

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

BackendVersionSupportNotes
vterm.js0.2.0✓ yes
Alacritty0.26.0~ partialSGR pixel mouse mode not exposed via alacritty_terminal API
WezTerm0.1.0-fork.5~ partialSGR pixel mouse mode not exposed via wezterm-term API
vt100.js0.2.1✗ noSGR pixel mouse mode not implemented — pure TypeScript emulator
xterm.js5.5.0✗ noSGR pixel mouse mode not implemented in xterm.js