DCS Sixel — 内联栅格图像(ESC P q … ESC \)
通过 Sixel 设备控制载荷在终端流中嵌入像素图像。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1bPq <sixel data> \x1b\\\\033[
\033Pq … \033\\\\e[
\eP q … \e\\ESC [
ESC P q DATA ESC \hex
1b 50 71 ... 1b 5c说明
Sixel 是 DEC 时代的内联像素图形格式(DEC VT240/VT340),近年被现代终端复活。帧以设备控制字符串引导符 `\x1bP`(DCS)开头,可选参数段后接末字节 `q` 选择 Sixel 模式,再是 `?`..`~` 的可打印字节载荷 —— 每个字节编码一个 6 像素高的竖向切片(故名 sixel)。帧以字符串终止符结尾 —— 标准形式 `\x1b\\`(ST),也广泛接受 `\x07`(BEL)。`libsixel`、`chafa`、`viu`、`timg`、`ranger` 风格的图像预览、`kitten icat --transfer-mode=stream`(Kitty 原生协议的 Sixel 回退)以及 `mpv --vo=sixel` 都使用此序列。终端支持差别明显:xterm 需 `+sb` 编译并以 `-ti vt340` 启动;mintty、foot、wezterm、iTerm2、Windows Terminal Canary、ghostty 默认可用;kitty、alacritty、macOS Terminal 不支持(Kitty 有自家更优协议)。
规范出处: DEC VT340 Programmer Reference / xterm-ctlseqs (DCS Ps; Ps; Ps q)
示例
# A 12x6 magenta block via the Sixel raw payload\nprintf '\033Pq#0;2;100;0;100#0~~\033\\'import sys; sys.stdout.write('\x1bPq#0;2;100;0;100#0~~\x1b\\')fmt.Print("\x1bPq#0;2;100;0;100#0~~\x1b\\")process.stdout.write('\x1bPq#0;2;100;0;100#0~~\x1b\\')printf("\x1bPq#0;2;100;0;100#0~~\x1b\\");终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 部分 | 不支持 | 不支持 | 支持 | 部分 | 不支持 | 不支持 | 不支持 | 支持 | 支持 | 部分 | 支持 | 不支持 | 不支持 |