OSC 10 / 11 — 设置默认前景 / 背景色
设置终端的默认前景色(OSC 10)或背景色(OSC 11),或查询当前值。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b]10;#RRGGBB\x07 (set fg) \x1b]11;#RRGGBB\x07 (set bg)\\033[
\033]10;#RRGGBB\007 / \033]11;#RRGGBB\007\\e[
\e]10;#RRGGBB\a / \e]11;#RRGGBB\aESC [
ESC ] 10 ; COLOR BEL / ESC ] 11 ; COLOR BELhex
1b 5d 31 30 3b ... 07 / 1b 5d 31 31 3b ... 07说明
OSC 10 设置终端默认前景色,OSC 11 设置默认背景色。颜色参数接受 xterm 同样的多种写法:`#RRGGBB`、`#RGB`、`rgb:RRRR/GGGG/BBBB`、或 X11 颜色名如 `cornflowerblue`。将值替换为 `?`(`\x1b]10;?\x07`),终端会用同样语法回报当前颜色 —— vim 的 `'background'` 自动检测就用这种查询来选择浅色或深色配色方案。使用 OSC 110(fg)/ OSC 111(bg)恢复终端默认。
规范出处: xterm-ctlseqs (OSC 10 / 11 / 110 / 111)
示例
printf '\033]11;#1e1e2e\007' # set bg to deep navy\nprintf '\033]11;?\007' # query current bgimport sys; sys.stdout.write('\x1b]10;#cdd6f4\x07')fmt.Print("\x1b]10;#cdd6f4\x07")process.stdout.write('\x1b]10;#cdd6f4\x07')printf("\x1b]10;#cdd6f4\x07");终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 部分 | 支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |