^[control-codes
live in libghostty-vt

Operating system commands

OSC 3 Set X Property

View as Markdown

Set or delete a property on the terminal's top-level X window.

OSC 3 ; prop = value ST
ECMA-48
§8.3.89 OSC – Operating System Command, p. 51
xterm
Operating System Commands

OSC 3 ; prop=value ST sets the property prop of xterm’s top-level X window to value, and OSC 3 ; prop ST deletes it, so that a program can leave information on the window for the window manager or for scripts that look at X properties (ChangeXprop). The number came from dtterm, which used it to set the working directory for the next session; xterm does that with its spawn-new-terminal action instead.

A default xterm does not do it. Setting a property is one of the window operations off unless allowWindowOps is set: SetXprop is in the default disallowedWindowOps (main.h, do_osc). X properties do not exist outside X, and libghostty-vt has no OSC 3: it ignores it. Both leave the screen and the title as they were, and the cases pass.

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-411aPartlyoff unless allowWindowOps is set; SetXprop is disallowed by default
libghostty-vt0f171f6Noignored
Konsole26.11.70, a24c3d71Nonot in its source
ConEmubuild 230724, its documentationNonot in its ANSI escape codes

Validation

OSC3-1: Nothing changes

\e]2;Window\a
A
\e]3;WM_ROLE=terminal\a
\e]3;WM_ROLE\a   # delete it
B
|AB____|
cursor 1,3
title "Window"
reply none
Every example on these pages runs in your browser, in libghostty-vt compiled to WebAssembly.