Appearance
modifyOtherKeys
modifyOtherKeys (CSI > 4 ; Pv m) enables extended key reporting that distinguishes modified key combinations that would otherwise be ambiguous. At level 2, keys like Ctrl+I are reported distinctly from Tab, and Ctrl+M from Enter.
How this is testedautomated
Check if the terminal supports xterm modifyOtherKeys mode for enhanced key reporting.
Check if the terminal supports xterm modifyOtherKeys mode for enhanced key reporting.
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 10 of 12 terminals (83%). Not supported by: vt100.js, xterm.js. Part of the Modern TUI baseline. Notes: vt100.js: Not implemented — pure TypeScript emulator; xterm.js: modifyOtherKeys not implemented in xterm.js.
Supported by 9 of 14 backends (64%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vterm | 0.2.0 | ✓ yes | |
| Alacritty | 0.26.0 | ~ partial | modifyOtherKeys not exposed via alacritty_terminal API |
| Kitty | 0.40.0 | ~ partial | modifyOtherKeys not exposed via Python batch bridge |
| WezTerm | 0.1.0-fork.5 | ~ partial | modifyOtherKeys not exposed via wezterm-term API |
| vt100.js | 0.2.1 | ✗ no | Not implemented — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | modifyOtherKeys not implemented in xterm.js |