OSC 5 Change Special Color
Set and query the colors xterm can draw bold, underlined, blinking, reversed and italic text in.
OSC 5 ; Pc ; Pt ST
Besides the palette, xterm has five special colors, which it can use to show an attribute as a color instead of, or as well as, the attribute itself:
Pc | Resource | Used for |
|---|---|---|
0 | colorBD | bold |
1 | colorUL | underline |
2 | colorBL | blink |
3 | colorRV | reverse |
4 | colorIT | italic |
OSC 5 ; Pc ; Pt ST sets one, Pt of ? asks for it, and OSC 105 ; Pc ST puts it back, exactly as OSC 4 and OSC 104 do for the palette; they are also palette numbers 256 to 260, so OSC 4 ; 256 ; ? ST asks for the bold color too (do_osc, ReportAnsiColorRequest). Each is used only when its mode is on, which OSC 6 turns on and off, and all five modes are off by default. Each starts as the default foreground (charproc.c), so in a terminal set up as a default xterm, as the cases are, each is reported as black.
libghostty-vt has no special colors, and ignores OSC 5 and palette numbers past 255, so the cases that ask are known differences.
Support
| Terminal | Version | Support | Notes |
|---|---|---|---|
| VT220 | manual, 2nd ed., 1984 | No | OSC is not among the controls it recognizes (§4.2) |
| VT510 | manual, 1st ed., 1993 | No | ignores an OSC string (chapter 4) |
| xterm | patch 412, xterm-411a | Yes | used only when OSC 6 turns each on |
| libghostty-vt | 0f171f6 | No | no special colors (OSC5-1, OSC5-2) |
| Konsole | 26.11.70, a24c3d71 | No | not in its source |
| kitty | 0.49.1, run in a VM | No | fails the case that shows it working |
| foot | 1.28.0, run in a VM | No | fails the case that shows it working |
| pyte | 0.8.2, run as a library | No | fails the case that shows it working |
| xterm.js headless | 6.0.0, run as a library | No | fails the case that shows it working |
| alacritty_terminal | 0.26.0, run as a library | No | fails the case that shows it working |
| ConEmu | build 230724, its documentation | No | not in its ANSI escape codes |
| rxvt-unicode | 9.31, run in a VM | No | fails the case that shows it working |
| VTE | 0.84.1, run as a library | No | fails the case that shows it working |
Validation
OSC5-1: The color for bold
\e]5;0;?\a
|______|
reply \e]5;0;rgb:0000/0000/0000\a
OSC5-2: Set, and asked for through OSC 4
\e]5;1;#ff0000\a # the color for underline
\e]4;257;?\a
|______|
reply \e]4;257;rgb:ffff/0000/0000\a
OSC5-3: Nothing on screen
A
\e]5;0;red\a
B
|AB____|
cursor 1,3