Appearance
Left/Right Margins (DECLRMM, Mode 69)
DECLRMM (mode 69) enables left and right scroll margins, similar to top/bottom margins set by DECSTBM. When enabled, DECSLRM sets the left and right margins. Scrolling and editing operations are confined to the margin area.
Left/right margins extend DEC's top/bottom scroll-region idea into two dimensions. They are useful for forms, panes, and rectangular editing operations, but many modern terminals skip them because most contemporary TUIs manage rectangles in application code. Correct behavior requires editing and scrolling operations to honor both horizontal and vertical margins.
How this is testedautomated
Enable DECLRMM (
Enable DECLRMM (
CSI ? 69 h), check getMode("leftRightMargin") returns true. Confirms the backend tracks left/right margin mode.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 | DECLRMM not tracked by ghostty-web WASM backend |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Kitty | 0.46.2 | ✓ yes | DECLRMM 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 | DECLRMM not implemented |
| Alacritty | 0.26.0 | ~ partial | DECLRMM not exposed via alacritty_terminal API |
| WezTerm | 0.1.0-fork.5 | ~ partial | DECLRMM not exposed via wezterm-term API |
| vt100.js | 0.2.1 | ✗ no | DECLRMM not implemented — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | DECLRMM not implemented in xterm.js |