跳到主要内容
ansicode

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\a
ESC [ESC ] 10 ; COLOR BEL / ESC ] 11 ; COLOR BEL
hex1b 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)

示例

bash
printf '\033]11;#1e1e2e\007'   # set bg to deep navy\nprintf '\033]11;?\007'        # query current bg
python
import sys; sys.stdout.write('\x1b]10;#cdd6f4\x07')
go
fmt.Print("\x1b]10;#cdd6f4\x07")
javascript
process.stdout.write('\x1b]10;#cdd6f4\x07')
c
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
不支持

相关序列

在家族食谱中

SGR 食谱 · 5. OSC 调色板覆盖 —— 直接把槽位本身改了