vscode原生不支持透明度,必须通过系统api或补丁实现:windows需vscode-transparency补丁调用dwm,macos依赖nsvisualeffectview且须深色主题+ventura+,linux靠picom等合成器;electron.launchargs参数已废弃,workbench.colorcustomizations仅作用于ui层,无法穿透electron容器。

VSCode 本身不支持直接设“透明度”,所谓透明或磨砂效果,本质是绕过编辑器渲染层、调用操作系统图形 API 的结果。直接改 workbench.colorCustomizations 里的 editor.background 为 rgba() 值,会被忽略——这不是你配错了,是 Electron 渲染机制压根不认。
必须加 electron.launchArgs 启动参数才可能透底
没这一步,后面所有操作都白搭。VSCode 窗口默认是不透明的 Chromium 窗口,得靠 Electron 底层放开透明通道:
- 打开设置(
Ctrl+,),搜electron.launchArgs - 点「在 settings.json 中编辑」,加入:
"electron.launchArgs": [ "--enable-transparent-visuals", "--disable-gpu" ]
- 重启 VSCode —— 此时窗口能透了,但编辑区还是纯黑/白,只是“具备条件”了
-
--disable-gpu在 Windows/macOS 上很关键,不开它,模糊常闪烁或失效;Linux 下基本无效,别硬试
macOS 毛玻璃只认深色主题 + Ventura+ 系统
macOS 的 vibrancy 不是 CSS 滤镜,是 NSVisualEffectView 调系统接口,有强绑定:
- 必须用深色主题(如
Default Dark+),浅色主题下自动 fallback 成纯白背景 - macOS Ventura 及更新版本支持稳定;Monterey 或更早容易抽风,切个主题或重启可能临时恢复
- 关掉
window.nativeTabs: true,它会绕过 vibrancy 渲染路径 -
terminal.integrated.backgroundOpacity是唯一可控的终端透明字段,别去碰background设#00000000,那只会触发毛玻璃,不是纯透
Windows 要真·磨砂,得用补丁不是插件
插件如 Vibrancy Continued 或 GlassIt-VSCode 在 Windows 上只是调窗口 Alpha,不是 Acrylic/Mica 效果。要系统级模糊:
- 必须用
vscode-transparency补丁(GitHub 可搜),它替换了 Electron 渲染入口并调 DWM API - VSCode 1.86+ 必须用 v1.12+ 补丁,否则报错
Cannot find module 'vs/base/common/platform' - 补丁装完后,在
%APPDATA%\Code\User\settings.json配:"transparency.opacity": 0.85, "transparency.blur": "acrylic"
-
window.titleBarStyle必须设为"custom","native"会直接禁用透明通道
Linux 几乎只能靠合成器,VSCode 插件基本失效
Linux 没原生 vibrancy API,所有声称“支持 Linux 毛玻璃”的插件,实际只是静默失败:
- 靠谱做法是配合成器,比如 Picom:
class_g *= 'Code'匹配 VSCode 窗口 - 在
~/.config/picom.conf加:opacity-rule = [ "85:class_g *= 'Code' && !focused", "95:class_g *= 'Code' && focused" ]
- 启动
picom --config ~/.config/picom.conf &,透明由桌面环境控制,和 VSCode 设置无关 - 别折腾
workbench.colorCustomizations或自定义 CSS 注入,那些改的只是 DOM 层,底下窗口仍是实心矩形
真正卡住人的从来不是怎么配,而是搞不清“谁在控制透明”:是 VSCode?Electron?还是你的窗口管理器?一旦混用多层方案(比如一边开补丁一边装 Vibrancy 插件),反而互相冲突,连标题栏都变灰块。先确定平台和目标效果,再选唯一生效路径,比堆插件管用得多。











