VSCode窗口透明需分层实现:编辑区透明靠workbench.colorCustomizations配#rrggbbaa格式,必须加--enable-transparent-visuals和--disable-gpu启动参数并完全重启;全局窗口透明则需GlassIt-VSC等系统级插件,标题栏、终端等区域须单独配置且受系统限制。

VSCode 本身不支持直接设窗口透明,所谓“变透明”其实是两件事:改编辑器内容区背景色(CSS 层),和让整个窗口容器透出桌面(系统层)。混着搞,90% 的人会卡在“配了没反应”上。
为什么 workbench.colorCustomizations 里的 editor.background 不生效?
因为 VSCode 默认禁用带 alpha 的背景色——rgba(0,0,0,0.5) 或 #1e1e1e80 写进去会被忽略,回退成纯黑。这不是你写错,是 Electron 渲染层主动拦截。
- 必须配合
electron.launchArgs启动参数:"--enable-transparent-visuals"和"--disable-gpu"(Windows/macOS 均需) - Linux 下这两个参数基本无效,别浪费时间试
- 加完参数后要完全重启 VSCode(不是重载窗口),否则不触发透明渲染通道
- 即使生效,也只影响编辑器区域,标题栏、边框、Dock 预览仍是实心的
真正让整个窗口变透明:用 GlassIt-VSC
它不改 CSS、不碰配置文件,直接调系统 API 控制主窗口 alpha 值,是目前唯一稳定跨平台的窗口级方案。
- 安装后默认无快捷键,必须手动往
keybindings.json里加:{"key": "cmd+shift+up", "command": "glassit.increase"}(macOS)或{"key": "ctrl+shift+up", "command": "glassit.increase"}(Windows) - 透明值范围是
0.1(几乎全透)到1.0(完全不透),0.3以下在暗色主题下标题栏文字容易看不清 - macOS 上若用 Rosetta 运行 VSCode,可能拖动卡顿或闪屏;此时执行
GlassIt: Set Opacity输入1.0可秒恢复 - 它只动窗口外壳,编辑器内字体、侧边栏、终端渲染完全不受影响
想要毛玻璃(acrylic/vibrancy)而不是纯透明?选 Vibrancy 或 Vibrancy Continued
这类插件本质是“触发器”,真正干活的是系统:Windows 调 SetWindowCompositionAttribute,macOS 调 NSVisualEffectView。Linux 基本没戏。
- Windows 用户务必关闭系统设置里的“透明效果”(否则双重模糊发虚),并设
"window.titleBarStyle": "custom" - macOS 需在“系统设置 → 隐私与安全性 → 辅助功能”里勾选 VSCode,否则权限不足静默失败
-
Opacity参数不是越低越好:设0.3可能导致状态栏图标消失,推荐从0.7起调 - 终端(
terminal.integrated.background)不会继承毛玻璃,必须单独设为"#00000000",且 macOS 下只在深色主题 + Ventura+ 系统才稳定触发 vibrancy
终端背景怎么设才真透明?
terminal.integrated.background 是个陷阱区:写 transparent 或 rgba() 一定失效,VSCode 只认八位十六进制。
- 正确写法:
"#00000000"(全透)或"#0d0d0d80"(深灰半透) - Windows 下三个条件缺一不可:
"window.titleBarStyle": "custom"、GPU 加速开启、系统版本 ≥ Win10 2004 - macOS 下
"#00000000"实际触发的是系统 vibrancy 模糊,不是纯透;浅色主题下会 fallback 成白底,无法绕过 - 别信“加 CSS 覆盖”的野路子——终端渲染走的是原生控件路径,CSS 根本插不进去
最常被忽略的一点:所有透明/毛玻璃效果都严重劣化对比度。语法高亮、行号、侧边栏文字可能瞬间糊成一片,这不是插件问题,是 alpha 值吃掉了原本靠颜色差建立的可读性。调完透明度后,一定要手动去 workbench.colorCustomizations 里加固 editor.foreground、editorLineNumber.foreground 这些关键色值,用不透明的亮色保底线。











