XTGETTCAP — 请求 terminfo 能力(DCS + q ... ST)
按名称请求终端报告 terminfo 能力值 —— 运行时探测真彩、RGB、OSC 52 等的标准方法。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1bP+q<HEX-NAME>;<HEX-NAME>...\x1b\\\\033[
\033P+q<HEX-NAME>\033\\\\e[
\eP+q<HEX-NAME>\e\\ESC [
ESC P + q HEX[;HEX...] ESC \hex
1b 50 2b 71 ... 1b 5c说明
XTGETTCAP —— xterm 的 terminfo 能力查询,中间字节 `+`(0x2b)、末字节 `q`(0x71)的 DCS 帧。体为一个或多个 terminfo 能力名,按 ASCII-hex 编码(名称内无分隔符,名称之间用 `;`)。例如 `RGB` 编码为 `524742`、`setrgbf` 编码为 `73657472676266`、`Smulx`(扩展下划线)编码为 `536d756c78`。终端按请求逐项回复 DCS:成功为 `\x1bP1+r<HEX-NAME>=<HEX-VALUE>\x1b\\`,未识别为 `\x1bP0+r<HEX-NAME>\x1b\\`。这是 `tmux`、`neovim`、`kitty` 的 shell 集成、`wezterm` 的 `mux` 在运行时探测特性支持的标准做法,而不是仅信任 `$TERM` 字符串。xterm 本身、kitty、wezterm、ghostty 与 tmux 支持;其他终端多数对所有请求返回 0+r「未识别」,程序据此回落到 TERM-string 启发式。
规范出处: xterm-ctlseqs (XTGETTCAP, DCS + q Pt ST)
示例
# Ask if the terminal advertises the RGB cap (hex of 'RGB' is 524742):\nstty -echo raw min 0 time 5\nprintf '\033P+q524742\033\\'\nIFS= read -r -t 1 -d '\\' REPLY; stty sane\necho "XTGETTCAP RGB reply: $REPLY"import sys\nname_hex = 'RGB'.encode().hex() # -> '524742'\nsys.stdout.write(f'\x1bP+q{name_hex}\x1b\\\\') # reply on stdinname := hex.EncodeToString([]byte("RGB"))\nfmt.Printf("\x1bP+q%s\x1b\\\\", name)const name = Buffer.from('RGB').toString('hex') // 524742\nprocess.stdout.write(`\x1bP+q${name}\x1b\\\\`)/* hex-encode the cap name first, e.g. 'RGB' -> "524742" */\nprintf("\x1bP+q524742\x1b\\\\"); fflush(stdout);终端支持
- xterm
- 支持
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 不支持
- iTerm2
- 部分
- Windows Terminal
- 不支持
- cmd.exe / ConPTY
- 不支持
- kitty
- 支持
- alacritty
- 不支持
- WezTerm
- 支持
- Ghostty
- 支持
- GNOME Terminal
- 不支持
- Konsole
- 不支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 不支持 | 部分 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 |
相关序列
在家族食谱中
DCS 食谱 · 3. 向终端提问 —— DECRQSS、terminfo cap、DECRQTSR、DECRQUPSS、光标样式