xterm¶
The reference implementation for most of what other emulators call "xterm behavior". Maintained by Thomas Dickey since 1996; its XTerm Control Sequences document is the closest thing the field has to a shared specification for non-DEC extensions.
Identity¶
TERM:xterm-256coloron most distributions; the build default isxtermand thetermNameresource overrides it.TERM_PROGRAM: not set.XTERM_VERSION: set in the environment, e.g.XTerm(406).- DA1:
CSI ? 64 ; … cby default (VT420 class); the model class follows thedecTerminalIDresource. - DA2:
CSI > 41 ; Pv ; 0 cwherePvis the patch level. - XTVERSION:
DCS > | XTerm(406) ST.
Documentation¶
Notable behavior¶
- Originated the mouse tracking modes (1000–1006), bracketed paste (2004),
the alternate screen with cursor save (1049),
modifyOtherKeys, XTVERSION, XTGETTCAP, XTWINOPS, and OSC 4/10/11/12 color control. - Implements Sixel and ReGIS graphics when built with them enabled; DA1
advertises
4when Sixel is available. - Many reporting features are disabled by default through the
allowWindowOps,allowTitleOps,allowFontOps,allowTcapOps, anddisallowedWindowOpsresources; a probe that "fails" in xterm is often refused rather than unsupported. - Does not implement the Kitty keyboard protocol, OSC 8 hyperlinks, or the Kitty graphics protocol.
- Cursor blink interacts with resources (
cursorBlink,cursorBlinkXOR) in ways other emulators do not copy; see Cursor controls.
Version notes¶
Patch numbers, not semantic versions. Additions are recorded per patch in the changelog; the ctlseqs document notes the patch introducing each extension where relevant.
Probe¶
xterm -v
tools/query '\033[>0q' # XTVERSION
tools/query '\033[c' # DA1
Feature support¶
Records are maintained independently in tdn/terminals/xterm.yaml. Unlisted features are unknown. See the comparison for all features.
| Feature | Support | As of | Notes and evidence |
|---|---|---|---|
BEL urgency/visualc0-bel-attention | SupportedImported · unverified | Unversioned | Yes |
14/16 pixel sizescsi-14-16-t-pixel-sizes | SupportedImported · unverified | Unversioned | Yes |
18 size in cellscsi-18-t-text-size | SupportedImported · unverified | Unversioned | Yes |
20/21 reportcsi-20-21-t-title-reports | PartialImported · unverified | Unversioned | Partial (Denied by the default `disallowedWindowOps` list when `allowWindowOps` is false. Removing `GetIconTitle` or `GetWinTitle` from that list permits the corresponding report; true overrides the list.) |
21 title reportcsi-21-t-title-report | SupportedImported · unverified | Unversioned | Gated |
22/23 title stackcsi-22-23-t-title-stack | SupportedImported · unverified | Unversioned | Yes |
Move/resize (3,4,8)csi-3-4-8-t-move-resize | SupportedImported · unverified | Unversioned | Gated |
ED 3 (scrollback)csi-3-j-erase-scrollback | SupportedImported · unverified | Unversioned | Yes |
DECRQMcsi-decrqm | SupportedImported · unverified | Unversioned | Yes |
DECSLRM / ?69csi-decslrm | SupportedImported · unverified | Unversioned | Yes |
DECSTBMcsi-decstbm | SupportedImported · unverified | Unversioned | Yes |
DECSTRcsi-decstr | SupportedImported · unverified | Unversioned | Yes |
ED/EL/ECH/ICH/DCH/IL/DLcsi-editing-operations | SupportedImported · unverified | Unversioned | Yes |
modifyOtherKeyscsi-modify-other-keys | SupportedImported · unverified | Unversioned | Yes; Origin; both formats, `XTQMODKEYS` since patch 372 ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html) and the [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), resources `modifyOtherKeys` and `formatOtherKeys`.) |
CSI # P / # Qcsi-palette-stack | SupportedImported · unverified | Unversioned | Yes |
REPcsi-rep | SupportedImported · unverified | Unversioned | Yes |
SU/SDcsi-su-sd-scroll | SupportedImported · unverified | Unversioned | Yes |
Kitty keyboard protocolcsi-u-kitty-keyboard | UnknownImported · unverified | Unversioned | ?; Not implemented (Not present in [XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).) |
XTPUSHSGRcsi-xtpushsgr | SupportedImported · unverified | Unversioned | Yes (opt) |
DECRQSSdcs-decrqss | SupportedImported · unverified | Unversioned | Yes; [ctlseqs](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Device-Control-functions); reply `1` = valid |
ReGISdcs-regis | SupportedImported · unverified | Unversioned | Yes, build option ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `-t` and Tek window.) |
Sixeldcs-sixel | SupportedImported · unverified | Unversioned | Yes, build option ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); requires `--enable-sixel-graphics` and a `decTerminalID` of 240 or higher.) | Also recorded: Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Sixel Graphics".); Build with `--enable-sixel-graphics`; `-ti vt340` or `decTerminalID: 340`; `sixelScrolling` resource |
XTGETTCAPdcs-xtgettcap | SupportedImported · unverified | Unversioned | Yes; [ctlseqs](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Device-Control-functions); `allowTcapOps` |
1000 mousedec-mode-1000-mouse | SupportedImported · unverified | Unversioned | Yes |
1002 button motiondec-mode-1002-button-motion | SupportedImported · unverified | Unversioned | Yes |
1003 all motiondec-mode-1003-all-motion | SupportedImported · unverified | Unversioned | Yes |
1004 focusdec-mode-1004-focus | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences, Mouse Tracking](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking).) |
1006 sgr mousedec-mode-1006-sgr-mouse | SupportedImported · unverified | Unversioned | Yes |
1007 alternate scrolldec-mode-1007-alternate-scroll | SupportedImported · unverified | Unversioned | Yes |
1015 urxvt mousedec-mode-1015-urxvt-mouse | SupportedImported · unverified | Unversioned | Yes |
1016 pixel mousedec-mode-1016-pixel-mouse | SupportedImported · unverified | Unversioned | Yes |
1049 alternate screendec-mode-1049-alternate-screen | SupportedImported · unverified | Unversioned | Yes |
2004 bracketed pastedec-mode-2004-bracketed-paste | SupportedImported · unverified | Unversioned | Yes | Also recorded: Yes; Origin ([XTerm Control Sequences, `?2004`](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character_s_).) |
Grapheme cluster mode (2027)dec-mode-2027-grapheme-clusters | UnknownImported · unverified | Unversioned | ?; Not listed in ctlseqs ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).) |
?45 reverse wrapdec-mode-45-reverse-wrap | SupportedImported · unverified | Unversioned | Yes |
win32-input-modedec-mode-9001-win32-input | UnknownImported · unverified | Unversioned | ?; Not a Unix protocol; not documented by any of them |
DECSCA/DECSED/DECSELdec-selective-erase | SupportedImported · unverified | Unversioned | Yes |
DEC Special Graphicsesc-dec-special-graphics | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".) |
DECDWL/DECDHL renderedesc-double-size-lines | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).) |
ESC % G / ESC % @esc-percent-encoding | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".) |
OSC 0/2 setosc-0-2-title | SupportedImported · unverified | Unversioned | Yes |
OSC 1 iconosc-1-icon-name | SupportedImported · unverified | Unversioned | Yes |
OSC 10/11 queryosc-10-11-default-colors-query | SupportedImported · unverified | Unversioned | Yes |
OSC 10/11 setosc-10-11-default-colors-set | SupportedImported · unverified | Unversioned | Yes |
104/110/111 resetosc-104-110-111-color-reset | SupportedImported · unverified | Unversioned | Yes |
OSC 12 cursorosc-12-cursor-color | SupportedImported · unverified | Unversioned | Yes |
OSC 17/19 selectionosc-17-19-selection-colors | SupportedImported · unverified | Unversioned | Yes |
OSC 22 pointerosc-22-pointer-shape | SupportedImported · unverified | Unversioned | Yes |
OSC 3osc-3-x-property | SupportedImported · unverified | Unversioned | Yes |
OSC 4 queryosc-4-palette-query | SupportedImported · unverified | Unversioned | Yes |
OSC 4 setosc-4-palette-set | SupportedImported · unverified | Unversioned | Yes |
OSC 50 fontosc-50-font | SupportedImported · unverified | Unversioned | Yes |
OSC 52 readosc-52-read | SupportedImported · unverified | Unversioned | Yes; Both denied by the default `disallowedWindowOps` list when `allowWindowOps` is false; true overrides that list |
OSC 52 writeosc-52-write | SupportedImported · unverified | Unversioned | Yes; Both denied by the default `disallowedWindowOps` list when `allowWindowOps` is false; true overrides that list |
OSC 8 hyperlinksosc-8-hyperlinks | UnsupportedImported · unverified | Unversioned | No (Deliberately unimplemented; see the xterm FAQ.) |
X11 color namesosc-x11-color-names | SupportedImported · unverified | Unversioned | Yes |
256 colorssgr-256-colors | SupportedImported · unverified | Unversioned | Yes |
Italic 3sgr-3-italic | SupportedImported · unverified | Unversioned | Yes |
Colon form 38:2sgr-38-2-colon-form | SupportedImported · unverified | Unversioned | Yes |
Truecolor 38;2sgr-38-2-truecolor | SupportedImported · unverified | Unversioned | Yes |
Underline styles 4:nsgr-4-underline-styles | SupportedImported · unverified | Unversioned | Yes |
Blink 5sgr-5-blink | SupportedImported · unverified | Unversioned | Yes |
Overline 53sgr-53-overline | SupportedImported · unverified | Unversioned | Yes |
Underline color 58sgr-58-underline-color | Unsupported | patch 411 | Patch 411 has no per-cell SGR 58 underline color. colorUL recolors underlined text as a whole and is a separate resource. Checked 2026-09-10. |
Strikethrough 9sgr-9-strikethrough | SupportedImported · unverified | Unversioned | Yes |
Tektronixtek-4014-graphics | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `-t` and Tek window.) |
bceterminfo-bce | SupportedImported · unverified | Unversioned | Yes |
Ambiguous-width optiontext-ambiguous-width | SupportedImported · unverified | Unversioned | Yes ([xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `cjkWidth`, `mkWidth`.) |
Bold-is-bright optiontext-bold-is-bright | SupportedImported · unverified | Unversioned | Yes |
Synthesized box drawingtext-box-drawing | SupportedImported · unverified | Unversioned | Yes |
8-bit C1 in UTF-8text-c1-in-utf8 | UnsupportedImported · unverified | Unversioned | No ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".) |
Italic facetext-italic-face | SupportedImported · unverified | Unversioned | Yes |
Non-UTF-8 localestext-non-utf8-locales | SupportedImported · unverified | Unversioned | Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".) |
Bundled Unicode tablestext-unicode-tables | SupportedImported · unverified | Unversioned | Yes |
VS16 widenstext-vs16-width | PartialImported · unverified | Unversioned | Partial ([xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `cjkWidth`, `mkWidth`.) |
2026 synchronized outputdec-mode-2026-synchronized-output | Unsupported | patch 411 | Patch 411 ignores DEC private mode 2026. Checked 2026-09-10. |