Miscellaneous OSCs¶
Selectors that do not fit another page. Each is documented by one emulator family; treat every one as non-portable.
OSC 3: X property¶
Status: xterm.
OSC 3 ; prop=value ST set an X11 window property
OSC 3 ; prop ST delete it
Sets an arbitrary property on the xterm window. Window Ops: this
operation uses SetXprop under xterm's Window Ops
policy and is denied by default. The label applies
to OSC 3 on this page, not the other OSCs below. No non-X11 emulator implements it.
OSC 50: font¶
Status: xterm.
OSC 50 ; fontspec ST change the font
OSC 50 ; ? ST query the current font
fontspec is an X logical font description or #n to select the nth font
from xterm's font menu; #+1 and #-1 step. Gated by allowFontOps.
kitty reuses OSC 50 for nothing; mintty accepts it with its own syntax.
OSC 22: pointer shape¶
Status: xterm.
OSC 22 ; shape ST
Sets the mouse pointer shape by X cursor name (xterm, arrow,
crosshair, hand2). kitty adopted it with a push/pop extension:
OSC 22 ; >shape ST push
OSC 22 ; < ST pop
OSC 22 ; ?__current__ ST query
Supported by xterm, kitty, and foot; others ignore it.
OSC 21: kitty color control¶
Status: Vendor-private (kitty).
OSC 21 ; key=value ; key=value ST
OSC 21 ; key=? ST
Sets or queries named colors (foreground, background, cursor,
selection_background, 0–255, visual_bell, mark colors) in one
string, with reset values. Overlaps OSC 4/10/11 but lets one string reset
or query many at once. See Colors for the portable forms.
kitty also defines a color stack:
CSI # P push colors
CSI # Q pop colors
CSI # R report stack depth
The same CSI # P and CSI # Q are xterm's XTPUSHCOLORS and XTPOPCOLORS.
OSC 66: text sizing¶
Status: Vendor-private (kitty 0.40).
OSC 66 ; s=scale : w=width : n=numerator : d=denominator ; text ST
Renders text at a multiple of the cell size or as a fraction of a cell,
for large headings and subscripts. See Text for width
implications.
OSC 1337: iTerm2 family¶
Status: Vendor-private (iTerm2) with partial adoption.
OSC 1337 multiplexes many commands by keyword. The ones covered elsewhere:
File=…inline images: Graphics.CurrentDir=,RemoteHost=: Working directory.ShellIntegrationVersion=,SetUserVar=,SetMark: Shell integration.
Others: CursorShape=0|1|2 (block, bar, underline), StealFocus,
ClearScrollback, RequestAttention=yes|no|fireworks, CopyToClipboard=
… EndCopy, SetBadgeFormat=base64, ReportCellSize,
SetColors=name=color, HighlightCursorLine=yes|no,
UnicodeVersion=8|9. WezTerm implements File=, SetUserVar=, and a few
others; mintty implements File=.
OSC 6 and 7: Apple document and directory¶
Status: Convention (Apple Terminal).
OSC 6 ; file://host/path ST current document
OSC 7 ; file://host/path ST current working directory
Apple Terminal uses OSC 6 to show a proxy icon for the file being edited. OSC 7 became the portable directory report; see Working directory. Nothing else implements OSC 6.
OSC 133¶
See Shell integration.
Probe¶
printf '\033]22;hand2\033\\'; sleep 2; printf '\033]22;xterm\033\\'
tools/query '\033]50;?\033\\' # xterm: font query
printf '\033]1337;RequestAttention=fireworks\033\\'
Sources¶
- XTerm Control Sequences, OSC
- kitty: pointer shapes
- kitty: color control
- kitty: text sizing protocol
- iTerm2 proprietary escape codes
- WezTerm escape sequences
- mintty control sequences
- foot: escape sequences
Separately tracked behavior¶
Set the terminal font¶
Feature ID: osc-50-font-set. Set the terminal font with Font Ops checks and exact query/set behavior.
Query the terminal font¶
Feature ID: osc-50-font-query. Query the terminal font with Font Ops checks and exact query/set behavior.
Terminal drag and drop¶
Feature ID: osc-72-drag-drop. Separate drag/drop extension, outside the current dispatch queue.
Compatibility¶
Choose terminals
| Feature / stable ID | Alacritty | Apple Terminal | ConPTY (conhost) | Contour | DomTerm | foot | Ghostty | iTerm2 | kitty | Konsole | mintty | mlterm | PuTTY | Revenant | RLogin | st | tmux | rxvt-unicode | VTE | wayst | WezTerm | Windows Terminal | xterm | xterm.js |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OSC 3osc-3-x-property |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |
OSC 50 fontosc-50-font |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |
OSC 22 pointerosc-22-pointer-shape |
Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |
OSC 21osc-21-kitty-colors |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
CSI # P / # Qcsi-palette-stack |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown |
OSC 66osc-66-text-sizing |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
OSC 1337 (any)osc-1337-family |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | PartialImported · unverified | SupportedImported · unverified | Unknown | Unknown | PartialImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | PartialImported · unverified | Unknown | Unknown | Unknown |
OSC 6osc-6-apple-document |
Unknown | SupportedImported · unverified | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
XTPUSHCOLORS push palettecsi-xtpushcolors |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
XTPOPCOLORS pop palettecsi-xtpopcolors |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
XTREPORTCOLORS report palette stackcsi-xtreportcolors |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Set the terminal fontosc-50-font-set |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Query the terminal fontosc-50-font-query |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Terminal drag and droposc-72-drag-drop |
Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |