Skip to content

DECCARA — change attrs in rectangle

Category: editing · Baseline: legacy · Tags: VT510 · Specification ↗

CSI Pt ; Pl ; Pb ; Pr ; Ps $ r
DECCARA (CSI Pt ; Pl ; Pb ; Pr ; Ps $ r) changes the SGR attributes of every cell in a rectangular region without touching the characters themselves. The Ps parameters are SGR codes (1=bold, 4=underline, 7=inverse, etc.), accumulated and applied to the rectangle. Whether DECCARA operates on a true rectangle or on the stream of cells between the corners depends on DECSACE. Used by VT420-era forms to highlight an entire input field, error message, or table cell without rewriting its contents.
How this is testedpartial
Write text, send \x1b[1;1;3;5;7$r (apply inverse to rows 1-3 cols 1-5), verify the sequence is consumed.

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

TerminalVersionSupportNotes
iTerm23.6.9✓ yessequence consumed
Ghostty1.3.1✓ yessequence consumed
Terminal.app2.15✓ yessequence consumed
Kitty0.46.2✓ yessequence consumed
VS Code1.113.0? unknown
Warp0.2026.03.18.08.24.03? unknown
Cursor2.6.21? unknown

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
vt100.js0.2.1✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes