Legacy graphics¶
Two vector protocols predate every bitmap protocol. They are documented here because xterm still implements them and because their design explains why Sixel scrolls the way it does.
ReGIS¶
Status: DEC. Remote Graphics Instruction Set, VT125, VT240, VT330/VT340.
DCS Pn p command-string ST
Pn 0 or 1 resumes or starts a fresh command set. Commands are single
letters with bracketed arguments: S screen control, W writing control,
P position, V vector, C curve, T text, L load character set, F
fill, R report. Example, a line from the origin to (100,100):
DCS p S(E) P[0,0] V[100,100] ST
ReGIS draws on a graphics plane the size of the screen, independent of text
cells; scrolling text does not move it. xterm implements it only when built
with --enable-regis-graphics and the terminal ID is 240 or above.
Tektronix 4014¶
Status: xterm.
CSI ? 38 h switch to Tektronix mode (xterm opens a separate window)
ESC ^C return to VT mode from Tektronix
xterm emulates a Tektronix 4014 storage-tube display in a separate window,
driven by the 4014's own byte protocol (GS for vector mode, FS point plot, US
alpha mode). It exists for legacy plotting software such as old gnuplot
drivers and has no modern users.
Why not use these¶
- No modern emulator other than xterm implements ReGIS; none implements Tektronix.
- Vector protocols have no palette or raster model, so photographs are impossible.
- Modern terminals are UTF-8 and cell-oriented; a separate graphics plane does not survive scrollback, resizing, or multiplexing.
For new work use Sixel for breadth, the Kitty protocol for lifecycle control, or the iTerm2 protocol for macOS-centric tools.
Probe¶
printf '\033Pp S(E) P[0,0] V[200,100] \033\\' # ReGIS line, xterm -ti vt340
printf '\033[?38h' # xterm: opens the Tek window
Sources¶
- VT330/VT340 Programmer Reference, ReGIS chapters
- XTerm Control Sequences
- Xterm Tektronix emulation, xterm manual
Compatibility¶
Choose terminals
| Feature / stable ID | Alacritty | Apple Terminal | ConPTY (conhost) | Contour | DomTerm | foot | Ghostty | iTerm2 | kitty | Konsole | mintty | mlterm | PuTTY | Revenant | RLogin | st | tmux | rxvt-unicode | VTE | wayst | WezTerm | Windows Terminal | xterm | xterm.js |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ReGISdcs-regis |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |
Tektronixtek-4014-graphics |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |