Peacock插件仅作用于窗口UI容器(标题栏、活动标签边框、侧边栏顶部),不改变编辑器背景或语法高亮;颜色需手动执行“Peacock: Change Color”命令写入窗口元数据,且不跨窗口继承。

Peacock 插件是目前最可靠、最轻量的多窗口配色方案,但它的颜色只作用于窗口 UI 容器(标题栏、活动标签边框、侧边栏顶部),不改编辑器背景或语法高亮——想靠它让代码区变色,注定失败。
Peacock 颜色为什么没生效?
常见错误现象:装完插件,改了 peacock.color 配置项,标题栏还是灰色;或者新开一个窗口,颜色自动消失了。
- Peacock 不监听配置文件变化,
"peacock.color"在settings.json里只是缓存值,不是开关——必须手动执行Peacock: Change Color命令才真正写入窗口元数据 - 颜色不跨窗口继承:每个 VSCode 实例(哪怕打开同一项目)都是独立容器,需单独染色
- macOS 用户常卡在
Window: Title Bar Style是native,导致标题栏无反应;必须设为custom才能看见着色效果 - Linux 桌面环境(如 GNOME)可能强制统一标题栏样式,此时仅活动标签页边缘和侧边栏顶部会变色
怎么让颜色随项目自动恢复?
关键不是“设置”,而是“绑定工作区”。Peacock 默认会在你首次执行 Peacock: Change Color 后,把颜色写进当前工作区的 .vscode/settings.json,但前提是这个窗口是以「文件夹」或「.code-workspace」方式打开的。
- 确保右下角状态栏显示「工作区」而非「用户」,否则写入的是全局配置,所有窗口都会被污染
- 如果用了多根工作区(multi-root workspace),Peacock 把整个窗口当一个单位染色,不会按子文件夹分别处理
- 启用
peacock.preserveColorOnClose设为true,可让关闭再打开同路径时恢复颜色——但仅对曾被手动染色过的窗口有效 - Git 提示
.vscode/settings.json变更?建议全局忽略:git config --global core.excludesfile ~/.gitignore_global,然后往该文件加一行.vscode/
想改编辑器背景色?别碰 Peacock
VSCode 原生不支持工作区级编辑器背景色切换。直接在 .vscode/settings.json 里写 workbench.colorCustomizations.editor.background 虽然能生效,但极易引发对比度问题:比如深色主题下配浅灰背景,行号、折叠箭头、光标都可能看不清。
- 硬设
editor.background后,必须同步调整editor.foreground、editorLineNumber.foreground等配套项,否则文字直接消失 - 某些主题(如 Material Theme)重绘了标题栏或侧边栏,会遮盖 Peacock 效果,此时优先检查
Window: Title Bar Style - 真正需要差异化编辑器视觉,推荐用 Profiles + 主题组合:为不同项目创建独立 Profile,各自绑定 One Dark Pro、Nord 等主题,比硬调颜色更稳定
复杂点在于:Peacock 的“颜色”本质是窗口元数据标记,不是 CSS 类;而编辑器背景色属于 workbench 渲染层,两者不在同一抽象层级。混用容易误判失效原因——先确认你要区分的是「窗口身份」还是「代码视觉」,再选工具。


















