OSC 112 Reset Text Cursor Color
Put the text cursor color back as it started.
OSC 112 ST
OSC 112 ST puts the color of the text cursor, OSC 12, back as the terminal started it, undoing any change made with OSC 12 ; Pt ST. xterm resets it to the value it started with (ResetColorsRequest).
It takes no parameter. xterm ignores an OSC 112 that carries anything after the number, OSC 112 ; 1 ST say, as a malformed sequence (do_osc); an empty one, OSC 112 ; ST, is the same as none.
libghostty-vt has it, and agrees with xterm.
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 | |
| libghostty-vt | 0f171f6 | Yes | |
| Konsole | 26.11.70, a24c3d71 | Yes | |
| kitty | 0.49.1, run in a VM | Yes | passes the 2 cases that show it working; ends its replies with ST where xterm uses BEL |
| foot | 1.28.0, run in a VM | Yes | passes the 2 cases that show it working |
| pyte | 0.8.2, run as a library | No | fails the 2 cases that show it working |
| xterm.js headless | 6.0.0, run as a library | No | fails the 2 cases that show it working |
| alacritty_terminal | 0.26.0, run as a library | Yes | passes the 2 cases that show it working |
| ConEmu | build 230724, its documentation | No | not in its ANSI escape codes |
| rxvt-unicode | 9.31, run in a VM | Partly | fails OSC112-1 of the 2 cases that show it working |
| VTE | 0.84.1, run as a library | Partly | fails OSC112-2 of the 2 cases that show it working |
Validation
OSC112-1: After a change
\e]12;red\a
\e]112\a
\e]12;?\a
|____|
reply \e]12;rgb:0000/0000/0000\a
OSC112-2: Back to where it started, not to the foreground
\e]10;blue;red;red\a # foreground, background, cursor
\e]112\a
\e]12;?\a
|____|
reply \e]12;rgb:0000/0000/0000\a