peacock插件需手动执行“peacock: change color”命令才能生效,不自动上色;仅对通过open folder打开的项目窗口激活,且颜色保存至.settings.json后随工作区保留。

Peacock 插件装完没反应?不是插件坏了,是它根本不会自动上色——必须手动触发 Peacock: Change Color 命令,颜色才真正“贴”到当前窗口上。
为什么按了 Ctrl+Shift+P 输入 Peacock 没反应
常见错误现象:安装完 Peacock,重启 VSCode,标题栏还是灰的;在命令面板里搜 Peacock,只看到 Peacock: Reset Color,但没有 Peacock: Change Color。
原因很直接:插件已启用,但 VSCode 当前窗口尚未被识别为「可染色工作区」。比如你打开的是一个空窗口、单个文件(非文件夹)、或远程连接未就绪的 SSH 窗口,Peacock 就不激活命令。
- 确保你已通过
File → Open Folder打开一个完整项目文件夹(含.git或至少有子目录) - 如果用的是 Dev Container 或 Remote-SSH,等右下角状态栏显示连接成功、且资源管理器能展开文件树后再试
- macOS 用户注意:
Window: Title Bar Style必须设为custom,否则标题栏变色不可见(默认native会走系统原生样式)
颜色写进 settings.json 却不生效
你在 .vscode/settings.json 里手动加了 "peacock.color": "#4CAF50",保存后标题栏毫无反应。
这不是配置错了,而是 Peacock 的设计逻辑:它不监听配置文件变更,只响应命令调用。那个 peacock.color 字段只是「上次执行 Peacock: Change Color 时留下的快照」,不是开关。
- 正确做法:先删掉
settings.json里的peacock.color行,再运行Peacock: Change Color——这次它才会真正写入并生效 - 如果你希望新窗口自动着色,得靠
peacock.surpriseMeOnStartup(仅对新开的、无色的工作区有效),但它和手动设置互斥:一旦你手动染过色,这个开关就不再触发 -
peacock.preserveColorOnClose设为true可让颜色随工作区保留,但前提是该窗口曾被手动执行过染色命令
多窗口同项目却颜色一样?其实是故意的
你开了两个 VSCode 窗口,都指向同一项目文件夹,结果两个窗口颜色一模一样——这不是 bug,是 Peacock 的默认行为:每个窗口独立维护颜色状态,但新窗口不会继承旧窗口的颜色。
也就是说,第二个窗口是“干净”的,除非你再次运行 Peacock: Change Color,否则它永远是默认灰白。
- 适合场景:对比同一项目的不同分支(
mainvsfeat/login),可以分别设成蓝/橙 - 不适合场景:想靠颜色快速区分「本地开发」和「远程测试」窗口——它们路径相同,Peacock 不感知环境差异
- 绕过办法:给窗口手动命名(右键标题栏 →
Set Window Title),再配合颜色形成心理锚点,比如[dev]+ 蓝色,[staging]+ 黄色
和主题/远程开发/ Git 冲突的几个硬坑
Peacock 改的是 UI 容器色(标题栏、活动栏、状态栏),不碰编辑器背景或语法高亮,所以和 workbench.colorTheme 基本不打架。但实际用起来,这几个地方最容易翻车:
- 深色主题(如 One Dark Pro)配浅色 Peacock(如
#FFEB3B),标题栏文字可能发灰——不是插件问题,是 Electron 渲染限制;换更饱和的色值(如#FFD740)或调暗背景 - Linux 桌面(GNOME/KDE)常强制统一标题栏样式,导致只有侧边栏顶部和活动标签边缘变色,标题栏无效
- Git 提交时提示
.vscode/settings.json被修改——这是正常的,因为 Peacock 把颜色写进去了;建议全局忽略:git config --global core.excludesfile ~/.gitignore_global,然后往里面加.vscode/ - Remote-WSL 窗口能正常染色,但某些 WSL 发行版(如 Alpine)缺少字体渲染支持,可能导致颜色过渡异常
颜色本身很简单,难的是让颜色「稳定地表达意图」:它不自动绑定项目、不感知环境、不跨窗口同步。你得亲手告诉每个窗口“你是谁”,而不是指望它自己猜。











