VSCode 启动页自定义需先禁用默认 welcomePage,再通过 workbench.startupEditor 设置 none、newUntitledFile 或 dashboard 等值,并配合 Dashboard 扩展、Live Server 或自研扩展实现精准控制。

VSCode 无法直接替换默认的 welcomePage,但能通过组合设置、扩展和配置项,精准控制启动时看到什么——关键在于绕过欢迎页,再加载你想要的内容。
禁用默认欢迎页并指定启动编辑器类型
这是最基础也最关键的一步。不先关掉默认欢迎页,其他自定义都会被覆盖或干扰。
-
workbench.startupEditor必须显式设置,可选值有:none(空窗口)、newUntitledFile(新空白文件)、welcomePage(保留默认欢迎页)、untitledTextEditor(等效于 newUntitledFile) - 设为
none后,VSCode 启动时不打开任何编辑器,只显示侧边栏和空工作区,适合搭配 Dashboard 等扩展使用 - 设为
newUntitledFile后,会自动创建一个未命名的Untitled-1标签页,可用于后续用任务自动写入 Markdown 或 HTML 内容 - 注意:该设置在用户级和工作区级 settings.json 中都生效,优先级以当前打开的工作区为准
用 Dashboard 扩展加载 Markdown 仪表板作为起始页
Dashboard 是目前最稳定、免开发、支持热重载的起始页方案,它不依赖 Webview API,也不需要编译扩展。
- 安装后,在设置中启用:
"dashboard.enabled": true,并设置"workbench.startupEditor": "dashboard" - 默认加载
~/.vscode/dashboard.md,你也可以用"dashboard.file": "./home.md"指向项目根目录下的自定义文件 - 支持内联样式、图标(如
$(folder))、快捷按钮([Open Terminal](command:workbench.action.terminal.new))、最近文件列表 - 如果 Markdown 中用了相对路径引用图片(如
),确保路径相对于 dashboard 文件所在目录,否则图片不显示
通过 settings.json 自动打开指定本地 HTML 文件
想完全掌控页面结构和交互?HTML + Live Server 是轻量级替代方案,比开发完整扩展简单得多。
- 先安装
Live Server扩展,再创建一个start.html放在项目根目录或用户目录下 - 在 settings.json 中添加:
"workbench.startupEditor": "newUntitledFile",然后配合任务(Task)在启动时执行命令 - 更直接的做法是:设置
"workbench.startupEditor": "welcomePage"→ 安装Customize UI扩展 → 修改workbench.webview.externalEndpoint并注入自定义 HTML(需重启) - ⚠️ 注意:
file://协议直接打开 HTML 会被 VSCode 的 CSP 策略拦截脚本和样式;必须走http://127.0.0.1:5500/这类 Live Server 提供的服务地址才安全
开发扩展实现真正意义上的欢迎页接管(高级)
只有当你需要监听启动事件、读取 workspace 配置、动态渲染内容时,才值得走这条路。普通用户不必碰。
- 基于官方
Getting Started Sample扩展改造,核心是注册一个WebviewPanel并在activate()中调用vscode.window.showWebviewPanel() - 必须在
package.json的activationEvents中声明onStartupFinished,否则扩展可能晚于欢迎页渲染 - Webview 的
localResourceRoots必须包含 HTML 所在路径,否则vscode-resource:协议加载资源会失败 - 不要尝试 patch
workbench.desktop.main.js或修改out/目录下的 CSS —— VSCode 更新后立即失效,且违反 EULA
最容易被忽略的是:所有自定义起始页方案都依赖 workbench.startupEditor 的准确设置。很多人改了 Dashboard 配置却没关掉 welcomePage,结果两种页面叠在一起;或者用了 HTML 方案却忘了开 Live Server,导致白屏。启动行为是链式触发的,错一环,全盘不生效。


















