peacock插件无法设置系统级窗口边框颜色,实际染色的是vscode内部ui元素如活动标签页左侧竖线(tab.activeborder)、标题栏(titlebar.activebackground)等;其“边框”效果源于用户对这些元素的视觉误读,且需手动执行命令才能生效。

Peacock 插件不能设置“边框”颜色,它实际染色的是标题栏、活动标签页边缘、侧边栏顶部和状态栏——所谓“边框”是用户对活动标签页左侧/顶部高亮色的视觉误读。 它不操作窗口系统级边框(如 Windows 外层窗口边框或 macOS 的 NSWindow border),那些由操作系统控制,VSCode 无权修改。
为什么你看到的“边框”会变色?
这是 Peacock 对 activityBar.border、tab.activeBorder 和 titleBar.activeBackground 等 UI 元素的着色结果。在默认主题下,tab.activeBorder 呈现为标签页左侧一条竖线,容易被感知为“左边框”;而 titleBar.activeBackground 在启用 Window: Title Bar Style 为 custom 时,会让整个标题栏区域(含左右边缘)统一上色,形成“上下边框感”。
- macOS 用户必须将
Window: Title Bar Style设为custom,否则标题栏由系统绘制,Peacock 无法生效 - Linux(如 GNOME)会强制接管标题栏样式,此时只有
tab.activeBorder和statusBar.background可见,看起来像“窄边框” - 深色主题下配浅色 Peacock(如
#ffeb3b),tab.activeBorder可能因对比度低显得发灰,不是失效,是渲染限制
如何让“活动标签页左侧边框”更明显?
Peacock 默认只设 tab.activeBorder 为单色细线(1px)。若想强化视觉边界,需手动覆盖该值:
- 打开当前工作区的
.vscode/settings.json - 添加:
{ "peacock.color": "#FF6B6B", "workbench.colorCustomizations": { "tab.activeBorder": "#FF6B6B", "tab.activeBorderTop": "#FF6B6B", "activityBar.border": "#FF6B6B" } } - 注意:
tab.activeBorderTop能让标签页顶部也出现色带,增强“上边框”效果;activityBar.border则强化侧边栏顶部与内容区的分隔 - 这些自定义项不会干扰 Peacock 主逻辑,它仍负责管理
peacock.color并驱动其他基础着色
多窗口并存时,“边框色”为什么没自动同步?
Peacock 按「窗口」而非「项目路径」着色。同一项目开两个窗口 → 它们各自独立存储颜色状态,互不影响。这导致:
- 关闭一个窗口再重开 → 若未启用
peacock.preserveColorOnClose,新窗口无色 - 用
File > Open Workspace in New Window打开同一.code-workspace→ 新窗口默认无色,需重新执行Peacock: Change Color - 颜色配置写入的是工作区
.vscode/settings.json,但仅当该窗口曾被手动触发过着色命令才会写入;纯靠配置文件预设"peacock.color"不会自动激活 UI 渲染
真正起作用的是命令触发,不是配置轮询。最容易被忽略的一点:你改了 settings.json 里的 peacock.color,但没运行 Peacock: Change Color,UI 就永远不会响应——它只读取配置做缓存,不监听变更。











