^[control-codes
live in libghostty-vt

Operating system commands

OSC 15 Tektronix Foreground Color

View as Markdown

Set and query the color of what is drawn in xterm's Tektronix 4014 window.

OSC 15 ; Pt ST
ECMA-48
§8.3.89 OSC – Operating System Command, p. 51
xterm
Operating System Commands

OSC 15 ; Pt ST sets the color of what is drawn in xterm’s Tektronix 4014 window, and OSC 15 ; ? ST asks what it is. OSC 115 puts it back as it started. It is one of xterm’s dynamic colors, and works as OSC 10 explains: Pt is any color X11 can parse, and a further ; in the same sequence moves on to color 16.

The Tektronix colors belong to xterm’s second window, which emulates a Tektronix 4014 graphics terminal and is opened from a menu or with CSI ? 38 h. They can be set and asked for whether or not that window is showing.

A default xterm starts it as the text foreground; the Tektronix window has no resource of its own (charproc.c), so in the terminal the cases run in, set up as a default xterm, it is reported as rgb:0000/0000/0000.

libghostty-vt has no such color, and ignores OSC 15 and OSC 115, so the cases that ask are known differences.

Support

TerminalVersionSupportNotes
VT220manual, 2nd ed., 1984NoOSC is not among the controls it recognizes (§4.2)
VT510manual, 1st ed., 1993Noignores an OSC string (chapter 4)
xtermpatch 412, xterm-411aYes
libghostty-vt0f171f6Noignored
Konsole26.11.70, a24c3d71Nonot in its source
kitty0.49.1, run in a VMNofails the case that shows it working
foot1.28.0, run in a VMNofails the case that shows it working
pyte0.8.2, run as a libraryNofails the case that shows it working
xterm.js headless6.0.0, run as a libraryNofails the case that shows it working
alacritty_terminal0.26.0, run as a libraryNofails the case that shows it working
ConEmubuild 230724, its documentationNonot in its ANSI escape codes
rxvt-unicode9.31, run in a VMNofails the case that shows it working
VTE0.84.1, run as a libraryNofails the case that shows it working

Validation

OSC15-1: Ask for it

\e]15;?\a
|____|
reply \e]15;rgb:0000/0000/0000\a

OSC15-2: Change it

\e]15;#0080ff\a
\e]15;?\a
|____|
reply \e]15;rgb:0000/8080/ffff\a
Every example on these pages runs in your browser, in libghostty-vt compiled to WebAssembly.