Skip to content

DECSCLM — smooth scroll mode

Category: modes · Baseline: legacy · Tags: VT510, DEC Private Modes · Specification ↗

DECSCLM (Scrolling Mode) toggles between smooth and jump scrolling via CSI ? 4 h (smooth) and CSI ? 4 l (jump). On the original VT100, smooth scrolling animated text line-by-line at a visible speed, while jump scrolling snapped instantly — a noticeable difference on 1978 CRT hardware. On modern terminals this distinction is largely cosmetic. Most terminals either ignore DECSCLM entirely or treat it as a no-op since rendering is already instantaneous. Contour implements it for completeness. xterm supports it and actually does render line-by-line in smooth mode, creating a retro scrolling effect.
How this is testedpartial
Send CSI ? 4 h to enable smooth scroll, verify mode is set via DECRPM query.

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.

Supported by 0 of 14 backends (0%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9? unknown
Ghostty1.3.1? unknown
VS Code? unknown
Kitty0.46.2? unknown
Warp? unknown
Cursor? unknown
Terminal.app? unknown

Headless Backends

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

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