^[control-codes
live in libghostty-vt

Operating system commands

OSC 14 Pointer Background Color

View as Markdown

Set and query the color of the mouse pointer's outline.

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

OSC 14 ; Pt ST sets the color of the mouse pointer’s outline, the part of an X cursor drawn in its second color, and OSC 14 ; ? ST asks what it is. OSC 114 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 15.

The two pointer colors are the X cursor’s: an X cursor shape is drawn in two colors, a foreground and an outline around it. OSC 22 chooses the shape.

A default xterm starts it as the pointerColorBackground 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 14 and OSC 114, 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 VMYespasses the case that shows it working; writes colors as ff00 where xterm writes ffff
VTE0.84.1, run as a libraryNofails the case that shows it working

Validation

OSC14-1: Ask for it

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

OSC14-2: Change it

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