XTSMTITLE / XTRMTITLE — 设置 / 重置标题显示模式(CSI > Ps ; … t / T)
切换 xterm 解读 / 返回窗口标题与图标名称字符串的方式 —— 十六进制 vs UTF-8 编码、截断、设置 vs 查询行为。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[><Ps>;<Ps>…t (set) \x1b[><Ps>;<Ps>…T (reset)\\033[
\033[>2t / \033[>2T\\e[
\e[>2t / \e[>2TESC [
ESC [ > Ps ; Ps … t / ESC [ > Ps ; Ps … Thex
1b 5b 3e ... 74 / 1b 5b 3e ... 54说明
前缀 `>` 把这两个序列与 XTWINOPS(`CSI Ps ; Ps ; Ps t`,调整 / 移动 / 查询窗口)以及 SD / 鼠标追踪的末字节 `T` 区分开。**XTSMTITLE**(`\x1b[><Ps>t`)打开一个或多个标题显示模式;**XTRMTITLE**(`\x1b[><Ps>T`)关闭同一组。每个 `Ps` 选一种模式:`0` 把传入的 OSC 0/1/2 标题文本按十六进制对解码(用于非 ASCII 的传统转义);`1` 把标题文本按 UTF-8 解读(xterm 自 2010 年代起的默认行为);`2` 把图标名按 UTF-8 解读;`3` 查询回复(OSC 20 / 21 / XTWINOPS 20 / 21)以 UTF-8 形式返回标题,而非 xterm 内部实际存储的字节。一条序列里可组合多个 `Ps`:`\x1b[>1;2t` 同时开启两种 UTF-8 模式。配合 `OSC 0/1/2`(设置标题)与 XTWINOPS 20/21(查询标题),这些开关控制*编码*的回环。多数现代终端默认就是 UTF-8,此类序列通常是空操作,但在推送含非 ASCII 字符的标题前显式 `>1;2t` 仍是最稳妥的可移植起手式。
规范出处: xterm-ctlseqs (XTSMTITLE / XTRMTITLE)
参数
| Ps | 模式选择:`0` 标题十六进制解码、`1` 窗口标题按 UTF-8、`2` 图标名按 UTF-8、`3` 查询回复按 UTF-8。可组合多个。 |
示例
# Opt in to UTF-8 for both title + icon name before pushing a non-ASCII title:\nprintf '\033[>1;2t'\nprintf '\033]0;\xe6\x9c\x80\xe6\x96\xb0\xe6\x97\xa5\xe5\xbf\x97\007'import sys\nsys.stdout.write('\x1b[>1t') # UTF-8 window title\nsys.stdout.write('\x1b]0;\u4e2d\u6587\x07') # CJK title now decodes correctlyfmt.Print("\x1b[>1;2t") // UTF-8 for title + icon\nfmt.Print("\x1b[>1;2T") // and back to hex-only when doneprocess.stdout.write('\x1b[>3t') // make query replies return UTF-8 stringsprintf("\x1b[>1;2t"); /* before OSC 0;<utf8 title>;BEL */终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 不支持 | 部分 | 部分 | 不支持 | 不支持 | 不支持 | 部分 | 不支持 | 部分 | 部分 | 不支持 | 不支持 |