^[control-codes
live in libghostty-vt

Operating system commands

OSC 19 Highlight Foreground Color

View as Markdown

Set and query the color of selected text.

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

OSC 19 ; Pt ST sets the color of selected text, and OSC 19 ; ? ST asks what it is. OSC 119 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 is ignored, since there is no color after it.

xterm uses the two highlight colors for a selection only in its highlight color mode, highlightColorMode. That mode is off unless both colors have been set to something other than the text’s own colors (charproc.c), so by default a selection is shown in reverse video and these colors are not used, though they are still kept and reported.

A default xterm starts it as the highlightTextColor resource, which is the background (charproc.c), so in the terminal the cases run in, set up as a default xterm, it is reported as rgb:ffff/ffff/ffff.

libghostty-vt has no such color, and ignores OSC 19 and OSC 119, 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 VMYespasses the case that shows it working; ends its replies with ST where xterm uses BEL
foot1.28.0, run in a VMYespasses 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 VMYespasses the case that shows it working; writes colors as ff00 where xterm writes ffff
VTE0.84.1, run as a libraryYespasses the case that shows it working

Validation

OSC19-1: Ask for it

\e]19;?\a
|____|
reply \e]19;rgb:ffff/ffff/ffff\a

OSC19-2: Change it

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