Page conventions¶
TDN pages share one vocabulary so that a reader can compare a cursor-style page with a graphics page without relearning the notation. This page is the contract that every feature page follows.
Notation¶
Sequences are written with named control bytes and spaces between tokens.
The spaces are notation, never bytes, unless written as SP.
| Token | Bytes | Meaning |
|---|---|---|
ESC |
0x1b |
Escape |
CSI |
ESC [ or 0x9b |
Control Sequence Introducer |
OSC |
ESC ] or 0x9d |
Operating System Command |
DCS |
ESC P or 0x90 |
Device Control String |
APC |
ESC _ or 0x9f |
Application Program Command |
PM |
ESC ^ or 0x9e |
Privacy Message |
SOS |
ESC X or 0x98 |
Start of String |
ST |
ESC \ or 0x9c |
String Terminator |
BEL |
0x07 |
Bell; accepted as an OSC terminator by most emulators |
SP |
0x20 |
A literal space byte used as an intermediate |
Ps |
One numeric parameter | |
Pm |
Several numeric parameters separated by ; |
|
Pt |
Free-form text parameter |
The seven-bit forms ESC [, ESC ], ESC P, ESC \ are the interoperable
choice. The single-byte C1 forms collide with UTF-8 continuation bytes and are
disabled or ignored by many modern emulators.
Examples in shell use printf with octal escapes so they run in any POSIX
shell:
printf '\033[2 q' # CSI 2 SP q
printf '\033]0;title\033\\' # OSC 0 ; title ST
Status vocabulary¶
Every feature carries exactly one status:
| Status | Meaning |
|---|---|
| Standard | Defined by ECMA-48, ISO 6429, or an ITU/ANSI equivalent |
| DEC | Defined in a DEC VT-series manual; a de facto standard |
| xterm | Introduced by xterm and documented in XTerm Control Sequences |
| Extension | Introduced by another emulator, documented by that emulator, adopted by at least one other |
| Vendor-private | Documented by one emulator and not adopted elsewhere |
| Convention | Widely implemented, but no primary document defines it |
| Disputed | Primary sources disagree; the page explains the split |
"Extension" is not a value judgment. The Kitty keyboard protocol and OSC 8 hyperlinks are extensions that many emulators now treat as baseline.
Feature labels¶
Use labels for properties shared across sequence families. They supplement the status vocabulary; they do not assert emulator support or default policy. Add labels as YAML front matter before the page heading:
---
tags:
- Window Ops
---
Window Ops identifies controls subject to xterm's Window Ops policy. On a page covering other controls too, name the affected sequences beside their descriptions. In particular, title reports and title stacks belong to this category, while OSC 0/1/2 title setting uses Title Ops. That label identifies xterm's title-changing policy, including applying saved labels on pop. Pages can carry both labels; explain their scope beside each affected feature. Reports and pushes are Window Ops, while a pop checks Window Ops for the stack operation and Title Ops for applying its labels. Labels link to the feature index.
Compatibility tables¶
Compatibility tables are generated from independent files in
tdn/terminals/. Read the registry guide for the schema,
version semantics, evidence requirements, and stable feature IDs.
| Status | Meaning |
|---|---|
| Supported | Implemented within the scope of the feature record |
| Partial | Implemented with the recorded limitation |
| Unsupported | Assessed as unimplemented |
| Unknown | Unassessed, uncertain, or conflicting evidence |
Imported claims are marked unverified. A default-denied operation is not necessarily unsupported. Version, configuration, notes, and evidence appear on each feature's page. Do not hand-maintain another compatibility table.
Feature page template¶
# Feature name
Status: one of the values above.
One-paragraph summary: what the feature does and who uses it.
## Syntax
## Behavior
## Probe
## Sources
<!-- Add the compatibility marker described in the registry guide. -->
Optional sections, placed before Compatibility: History, Parameters, Responses, Pitfalls.
Terminology¶
- Application: the program writing to the PTY; a shell, editor, or TUI.
- Emulator: the program that owns the PTY master and renders cells.
- Multiplexer: tmux, screen, or zellij; an emulator on one side and an application on the other, which is why they appear in compatibility tables.
- Report: bytes the emulator writes to PTY input in reply to a query.
- Mode: a persistent switch set with
hand reset withl. - Cell: one column of one row; wide characters occupy two cells.
See the Glossary for the full list.