标题栏颜色不生效需先将window.titlebarstyle设为custom,否则titlebar.*配置被忽略;同时关闭window.nativetabs和window.nativefullscreen,完全退出vscode后重载设置。

标题栏颜色不生效?先确认 window.titleBarStyle 是 custom
VSCode 默认用系统原生标题栏(window.titleBarStyle: "native"),此时所有 titleBar.* 颜色配置完全被忽略。必须手动改回 "custom",否则写再多颜色也没用。
需要同时关闭干扰项:
-
window.nativeTabs设为false(macOS 尤其关键) -
window.nativeFullScreen设为false(全屏时 native 标题栏会强制接管) - 改完必须**完全退出 VSCode**(不是重载窗口),否则新设置不加载
怎么用 workbench.colorCustomizations 设置标题栏颜色
只有启用 window.titleBarStyle: "custom" 后,这些 token 才起作用:
-
titleBar.activeBackground:当前聚焦窗口的标题栏背景色 -
titleBar.inactiveBackground:非聚焦窗口(多窗口并存时)的标题栏背景色 -
titleBar.activeForeground和titleBar.inactiveForeground:对应文字颜色
示例配置片段:
{
"window.titleBarStyle": "custom",
"window.nativeTabs": false,
"window.nativeFullScreen": false,
"workbench.colorCustomizations": {
"titleBar.activeBackground": "#2d2d2d",
"titleBar.inactiveBackground": "#1e1e1e",
"titleBar.activeForeground": "#e0e0e0",
"titleBar.inactiveForeground": "#a0a0a0"
}
}
注意:titleBar.* 只控制标题栏本身,不控制窗口边框——window.activeBorder 在 Windows/macOS 基本无效,仅 Linux 桌面环境可能显示。
Peacock 插件染色失败?别碰 settings.json 里的 peacock.color
很多人在 settings.json 里写了 "peacock.color" 就以为标题栏该变色了,结果没反应。这是典型误解:peacock.color 只是缓存值,不是开关。
真正生效的操作是:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P) - 执行
Peacock: Change Color命令(必须手动触发) - 颜色会写入当前工作区的
.vscode/settings.json,而非用户级设置
如果开的是单文件(没以文件夹方式打开),Peacock 不会保存颜色;多根工作区(multi-root)下整个窗口统一染色,不会按子项目分别处理。
为什么改了颜色但标题栏还是灰色?检查主题和平台限制
常见干扰源:
- 第三方 UI 主题(如 One Dark Pro、Material Theme)自己定义了
titleBar.*,会覆盖你写的workbench.colorCustomizations - macOS 上某些主题重绘了标题栏区域,直接遮住 Peacock 或自定义颜色
- Linux 桌面环境(GNOME/KDE)可能强制统一窗口装饰,导致
window.activeBorder等失效,只剩活动标签页边缘和侧边栏顶部能变色
验证当前生效的颜色来源:用命令面板执行 Developer: Inspect Editor Tokens and Scopes,把光标悬停在标题栏上,看右下角弹出的 token 名和“Source”字段——它会明确告诉你这个颜色是从哪来的(用户设置?某个主题?还是扩展?)。
真正稳定的做法不是硬调颜色,而是用 Profile + 主题组合:为不同项目创建独立 Profile,绑定不同官方主题(如 Nord、GitHub Dark),比在 workbench.colorCustomizations 里反复试错更可靠,也更少踩坑。











