Skip to main content

DA3

AI-Generated Content
This page was generated with the assistance of AI and may contain inaccuracies. It is intended as a placeholder for future human verification. If you spot issues ahead of its initial review, please report them on GitHub!
Standard

DA3 (Tertiary Device Attributes) is a CSI sequence that queries the terminal for its unit identification string.

Syntax​

CSI = c           DA3 request (query)
DCS ! | Pu ST DA3 response
Formal syntax
(* Request *)
DA3-request  = 0x1b, "[", "=", [ "0" ], "c" ;

(* Response *)
DA3-response = 0x1b, "P", "!", "|", unit-id, 0x1b, "" ;
unit-id      = hex-char, { hex-char } ;
hex-char     = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7"
           | "8" | "9" | "A" | "B" | "C" | "D" | "E" | "F" ;

Description​

Per the VT510 manual, the host sends CSI = c to request tertiary device attributes. The terminal responds with a DCS (Device Control String) containing a unit identification code as hexadecimal characters.

On DEC hardware terminals, the unit ID was a unique factory-assigned identifier for each physical terminal. On modern terminal emulators, the response varies:

  • XTerm responds with DCS ! | 0 0 0 0 0 0 0 0 ST (eight zero characters)
  • Some terminals respond with a hex-encoded identifier string
  • Many terminals do not implement DA3 at all

DA3 is the least commonly supported of the three Device Attributes queries and has limited practical use in modern environments.

Examples​

printf '\e[=c'
# Typical XTerm response: ESC P ! | 00000000 ESC \

Specifications​

SpecificationSection
VT510 Reference—

Terminal support​

TerminalSupportVersionNotes
Terminal Emulators
Alacritty✗No
Bobcat✓0.9.0Supported via TerminalCtrl library
contour✓v0.1.0Returns hardcoded unit ID C0000000
foot✓YesImplemented at csi.c:1854-1872, responds with 'FOOT' as unit ID
Ghostty✓v1.0.0
iTerm2✓YesTertiary device attributes (DA3) implemented with VT100CSI_DA3 token type. Requires VT level 400+ (iTermEmulationLevel400).
Kitty✗No
Konsole✓YesReports tertiary attributes with '~KDE' identifier via DCS ! | 7E4B4445 ST
mintty✗NoNo implementation found for CSI = c (tertiary device attributes).
mlterm✓rel-3_6_2Returns DCS ! | 000000 ST
PuTTY✗NoTertiary DA (CSI = c) not implemented
Rio✗No
rxvt-unicode✗No
st✗NoCSI = c not handled; only ? prefix supported in parser
terminology✓v1.10.0Reports device ID as ~~TY in hex
VT100✗No
VTE✓YesReports terminal ID as '~VTE' encoded in hexadecimal
WezTerm✓YesRequestTertiaryDeviceAttributes returns DCS format
Windows Terminal✓YesReports terminal ID as 00000000
xterm✓YesVT400+ feature for Terminal Unit ID
xterm.js✗NoNot implemented
Multiplexers
cy✗No
GNU Screen✗NoCSI = c not implemented
tmux✗NoCSI = c not implemented in parser
tuios✗No
Zellij✗NoTertiary device attributes (CSI = c) are not implemented

See also​