将 window.titlebarstyle 设为 native 可解决 macos 全屏下 vscode 标签页被菜单栏和红绿灯遮挡问题,需重启生效;注意插件或主题可能强制覆盖该设置,且 native 模式下无法自定义标题栏样式。

Mac 全屏下 VSCode 标签页被菜单栏和红绿灯遮住,怎么调?
这是 macOS 全屏模式的默认行为:系统把 titlebar(含红绿灯按钮)和菜单栏压在窗口最上层,而 VSCode 默认把标签页(tabs)画在 titlebar 区域内。结果就是——你拉到全屏,标签页直接被盖住一半。
用 window.titleBarStyle 切成 native 模式
VSCode 提供了两种标题栏渲染方式:custom(默认)和 native。只有 native 会让 macOS 真正接管标题栏布局,从而把标签页「推」到红绿灯下方、菜单栏之下,露出完整可视区域。
操作很简单:
- 打开 VSCode 设置(
Cmd + ,),搜titleBarStyle - 把
window.titleBarStyle值从custom改成native - 重启 VSCode(改完必须重启才生效)
注意:native 模式下,VSCode 不再绘制自己的标题栏,所以你不能靠 CSS 覆盖它,也不能用 workbench.colorCustomizations 改标题栏颜色——这些都只对 custom 有效。
如果用了自定义主题或插件,可能覆盖掉 native 行为
某些主题(比如 Nord、One Dark Pro)或 UI 增强插件(如 Custom CSS and JS Loader)会强制启用 custom 标题栏,或者注入样式把标签页又拉回顶部。这时即使你设了 native,也白搭。
排查步骤:
- 禁用所有插件,重启 VSCode,看问题是否消失
- 换回默认主题(
Visual Studio Dark),确认是否仍被遮挡 - 检查设置里有没有插件写死的配置项,比如
vscode-custom-css.imports或主题自带的workbench.editor.showTabs强制值
常见干扰项:workbench.editor.showTabs 设为 false 时,标签页根本不会显示——这不是遮挡,是被关掉了。
macOS 系统级设置也会让问题更明显
如果你开了「自动隐藏菜单栏」(系统设置 → 桌面与程序坞 → 「自动隐藏和显示菜单栏」),全屏时菜单栏虽不常驻,但鼠标一碰就弹出,依然会短暂遮住顶部几像素的标签页文字;而红绿灯按钮始终可见,且位置固定。
真正影响体验的是:native 模式下,VSCode 的标签页高度不再由自己控制,而是由 macOS 的 titlebar 高度决定——这个高度在不同 macOS 版本略有差异(12/13/14 对 titlebar 的 padding 处理不同),所以同一份设置,在 M1 Mac 和 Intel Mac 上,标签页露出的行高可能差 1–2px。
这没法靠配置调,只能接受系统给的尺寸。别试图用 workbench.editor.tabHeight 硬调,它只在 custom 下生效。











