Appearance
DECCOLM 80/132 column switch (?3)
CSI ? 3 h/lDECCOLM (DEC Column Mode) switches the terminal between 80- and 132-column display widths. The sequences are
ESC [ ? 3 h for 132 columns and ESC [ ? 3 l for 80 columns. On real VT100 hardware, this changed the dot clock and reprogrammed the CRT to display either 80 or 132 character cells per row, and clearing the screen as a side effect.
DECCOLM is a historical VT100/VT220 feature from the era when terminals had fixed character cell sizes and switching column count required physically reprogramming the display. Modern terminal emulators with resizable windows have made it largely obsolete — most ignore DECCOLM unless explicitly enabled (DECSET 40 must be set first to allow column changes). Some emulators like xterm still implement it correctly for compatibility with applications that drive serial terminals or DEC hardware emulators.How this is testedpartial
Send
Send
\x1b[?3h (DECCOLM 132), verify the sequence is consumed without breaking subsequent output. Most modern emulators ignore the column change, so verification is partial.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 all 9 tested terminals — universal adoption. Part of the Unicode baseline.
Supported by 11 of 14 backends (79%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | DECRPM: mode reset |
| Ghostty | 1.3.1 | ✓ yes | DECRPM: mode reset |
| Terminal.app | 2.15 | ✓ yes | Behavioral: ?3 accepted |
| Kitty | 0.46.2 | ✓ yes | Behavioral: ?3 accepted |
| VS Code | 1.113.0 | ? unknown | |
| Warp | 0.2026.03.18.08.24.03 | ? unknown | |
| Cursor | 2.6.21 | ? unknown |