颜色
关于终端仿真中颜色的各类信息。
Ghostty 模拟完整的 256 色调色板,以及 5 种特殊颜色和 3 种动态颜色。
特殊颜色在被指定后,用于给具有特定样式的单元格着色——粗体、下划线、闪烁、反显和斜体。它们可以分别通过 OSC 4(索引 256 到 260,含端点)或 OSC 5(索引 0 到 4,含端点)查询或更改。未指定时,会改用普通调色板颜色。
动态颜色由终端用于在不考虑单元格自身样式的情况下为其着色,例如选中、高亮等场景。它们也应在终端初始化后由程序动态更新,这也是其名称的由来。Ghostty 目前支持其中三种:前景色、背景色和光标颜色,分别通过 [OSC 10 到 12] 查询或修改。
终端中的每种颜色都用颜色表示法指定。这源自 xterm,它允许任何能被 X11 标准 XParseColor 函数解析的字符串作为颜色。然而,由于 Ghostty 支持 X11 之外的平台,我们有自己的颜色解析器,兼容但不保证与 xterm 完全一致,下面予以说明。
- 0x72 0x67 0x62 0x3A
- rgb:
- ____
- r
- 0x2F
- /
- ____
- g
- 0x2F
- /
- ____
- b
- 0x23
- #
- ____
- r
- ____
- g
- ____
- b
其中 r、g、b 各可以是 1 到 4 个十六进制数字,分别对应 4、8、12 或 16 位颜色通道。
Note
使用
#语法时,每个通道必须具有相同位数的数字。此外,使用
#语法时,Ghostty 尚不能识别 16 位颜色通道。这是未来可能解决的限制。
另一种格式使用每个通道的数值强度,如下所示:
- 0x72 0x67 0x62 0x69 0x3A
- rgbi:
- ____
- r
- 0x2F
- /
- ____
- g
- 0x2F
- /
- ____
- b
其中 r、g、b 各是介于 0 与 1 之间的十进制数。
某些颜色也可以用名称指定。可接受的名称列表由实现定义,但 Ghostty 使用 X11 自身所用的
X 颜色名称数据库。颜色名称对 ASCII 大小写不敏感,即 red 与 RED
对应同一种颜色。