OSC R Reset Palette (Linux)
Put the palette back, as the Linux console does.
OSC R ST
- ECMA-48
- §8.3.89 OSC – Operating System Command, p. 51
- Specification
- console_codes(4), Linux manual pages
OSC R ST puts the Linux console’s sixteen colors back as they started, undoing OSC P. OSC 104 is the way to do the same in xterm and the terminals that follow it.
The Linux console’s own definition, in console_codes(4), has no terminator: ESC ] P takes exactly seven hex digits after it, and ESC ] R none at all. A terminal that reads them as ordinary OSCs, which run until ST or BEL, swallows whatever follows one sent the console’s way, until something ends the string.
xterm, built for Linux, knows the console’s form, under its brokenLinuxOSC resource, on by default. Once an OSC string begins with P and has seven more characters, or begins with R and has one more, the next character abandons it: xterm rings the bell and handles that character as if no string had begun (charproc.c, illegal_parse). So sent the console’s way, neither swallows anything. Sent as an OSC, ended with ST, each still rings the bell, since the ESC of the ST is the character that abandons it. Either way no color changes. libghostty-vt reads them as ordinary OSCs and ignores them, with no bell, so the cases 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 | Partly | knows its length, under brokenLinuxOSC: after R and one more it abandons the string and rings the bell; no color changes |
| libghostty-vt | 0f171f6 | No | ignored |
| Konsole | 26.11.70, a24c3d71 | No | a letter where the number should be is a decoding error |
| ConEmu | build 230724, its documentation | No | not in its ANSI escape codes |
| Linux console | man-pages 6.19, console_codes(4) | Yes | with no terminator, console_codes(4) |
Validation
OSC-R-1: It does not reset the palette, and rings the bell
\e]4;1;red\a
\e]R\e\\
\e]4;1;?\a
|______|
reply \e]4;1;rgb:ffff/0000/0000\a
bell 1
OSC-R-2: Without a terminator, the text after it is printed
\e]R # the console's way
AB # the A abandons the string
|AB____|
cursor 1,3
bell 1