Appearance
Pixel Mouse Reporting (1016)
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 (
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 14 backends (71%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | SGR pixel mouse mode not tracked by ghostty-web WASM backend |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Kitty | 0.46.2 | ✓ yes | SGR 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.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vterm.js | 0.2.0 | ✓ yes | |
| Alacritty | 0.26.0 | ~ partial | SGR pixel mouse mode not exposed via alacritty_terminal API |
| WezTerm | 0.1.0-fork.5 | ~ partial | SGR pixel mouse mode not exposed via wezterm-term API |
| vt100.js | 0.2.1 | ✗ no | SGR pixel mouse mode not implemented — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | SGR pixel mouse mode not implemented in xterm.js |