Qoder Background — 为 Qoder IDE 打造的专属背景图插件

让你的 Qoder 编辑器拥有个性化背景图,支持全屏/侧边栏/面板等多区域、图片轮播、暗色主题自适应。


### 目录

  • [@TOC(目录)](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [为什么需要这个插件](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [原因一:文件完整性校验 (Checksum)](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [原因二:扩展 API 差异](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [原因三:文件协议差异](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [我们的解决方案](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [功能特性](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [效果展示](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [全屏背景](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [多区域背景](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [下载与安装](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [下载](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [安装](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [配置与使用](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [快速开始](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [使用自己的图片](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [开启轮播](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [多区域同时配置](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [使用内置图片](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [支持的 5 个区域](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [配置参数](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [图片路径格式](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [应用配置](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [技术原理简述](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [注入方式](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [图片处理](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [轮播实现](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [暗色主题自适应](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [常见问题](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)
  • [许可协议](#目录 @TOC 为什么需要这个插件 原因一:文件完整性校验 (Checksum) 原因二:扩展 API 差异 原因三:文件协议差异 我们的解决方案 功能特性 效果展示 全屏背景 多区域背景 下载与安装 下载 安装 配置与使用 快速开始 使用自己的图片 开启轮播 多区域同时配置 使用内置图片 支持的 5 个区域 配置参数 图片路径格式 应用配置 技术原理简述 注入方式 图片处理 轮播实现 暗色主题自适应 常见问题 许可协议)

为什么需要这个插件

vscode-background 是 VS Code 生态中非常受欢迎的背景图扩展(100 万+ 安装量),但它 无法在 Qoder 中正常工作。经过对源码的深入分析,我们发现了 3 个关键原因:

原因一:文件完整性校验 (Checksum)

Qoder 的 featureFlags.json 中包含关键文件的 SHA256 校验值:

json 复制代码
{
  "checksums": {
    "vs/workbench/workbench.desktop.main.js": "RC5k/103qaDF...",
    "vs/workbench/workbench.desktop.main.css": "ZzndmPa1h/vb...",
    "vs/code/electron-browser/workbench/workbench.html": "HMczP8qp+nYZ..."
  }
}

vscode-background v2 通过向 workbench.desktop.main.js 末尾追加 JavaScript 代码来注入背景图样式。修改后文件校验值不匹配,Qoder 会触发安全告警甚至拒绝加载。

原因二:扩展 API 差异

vscode-background 是标准 VS Code 扩展,依赖 vscode.workspace.getConfiguration() 等 API 读取配置。Qoder 虽然基于 VS Code fork,但其扩展环境可能不完整兼容所有 VS Code API,导致扩展激活失败或配置读取异常。

原因三:文件协议差异

VS Code 使用 vscode-file://vscode-app/ 协议访问本地文件,而 Qoder 的 product.jsonurlProtocolqoder。虽然 Qoder 内部 JS 仍然使用 vscode-file(因为是 fork),但扩展环境中的 vscode.Uri 行为可能不同,导致本地图片路径解析失败。

我们的解决方案

针对以上问题,我们开发了 Qoder Background --- 一个 Qoder 专属的背景图扩展:

对比 vscode-background Qoder Background
注入目标 workbench.desktop.main.js workbench.html(不受 JS checksum 影响)
注入方式 JS 追加 → 运行时创建 <style> HTML 中直接插入 <style> 标签
图片处理 vscode-file:// 协议 本地图片转 base64 data URL(不依赖协议)
告警处理 无特殊处理 CSS 隐藏 checksum 告警(14 种语言)
运行时依赖 需要 VS Code API 无运行时依赖,纯 CSS 方案

功能特性

  • 多区域背景 --- 全屏 / 侧边栏 / 面板 / 编辑器 / 辅助栏,每个区域独立配置
  • 内置图片 --- 开箱即用,安装后无需配置即可看到默认背景
  • 文件夹扫描 --- 指定文件夹路径,自动扫描所有图片用于轮播
  • 轮播模式 --- 纯 CSS @keyframes 动画实现,零 JS 性能消耗
  • 随机展示 --- 每次应用配置时随机打乱图片顺序
  • 暗色主题自适应 --- 浅色主题正常叠加,深色主题自动切换 mix-blend-mode: screen
  • CSP 兼容 --- 本地图片自动转 base64 内嵌,绕过 Electron 安全策略
  • settings.json 配置 --- 通过 Qoder 原生设置系统管理所有参数

效果展示

全屏背景

多区域背景

下载与安装

下载

版本 下载链接 说明
v0.1.0 qoder-background-0.1.3.vsix 首发版本,含内置图片

发行包说明:下载的文件是一个文件夹,包含:

  • qoder-background-0.1.3.vsix --- 扩展安装包
  • README.md / README.en.md --- 中英文使用说明
  • images/logo.jpg --- 插件 Logo

安装

方式一:命令行安装(推荐)

bash 复制代码
qoder --install-extension qoder-background-0.1.3.vsix

方式二:图形界面安装

  1. 打开 Qoder
  2. Ctrl+Shift+P → 输入 Extensions: Install from VSIX...
  3. 选择下载的 .vsix 文件
  4. Ctrl+Shift+PReload Window 重载窗口

安装后默认即可看到全屏背景图(使用内置图片),无需任何配置。


配置与使用

快速开始

安装后打开设置文件:Ctrl+Shift+POpen Settings (JSON)

使用自己的图片
json 复制代码
{
  "qoder-background.fullscreen": {
    "images": ["D:/my-wallpapers"],
    "opacity": 0.1,
    "size": "cover",
    "position": "center"
  }
}
开启轮播
json 复制代码
{
  "qoder-background.fullscreen": {
    "images": ["D:/my-wallpapers"],
    "opacity": 0.15,
    "interval": 10,
    "random": true
  }
}

每 10 秒自动切换一张背景图,随机顺序。

多区域同时配置
json 复制代码
{
  "qoder-background.fullscreen": {
    "images": ["D:/fullscreen-bg.jpg"],
    "opacity": 0.1
  },
  "qoder-background.sidebar": {
    "images": ["D:/sidebar-bg.jpg"],
    "opacity": 0.08
  },
  "qoder-background.editor": {
    "images": ["D:/editor-bg.png"],
    "useFront": false
  }
}
使用内置图片
json 复制代码
{
  "qoder-background.fullscreen": {
    "images": ["builtin:images"],
    "opacity": 0.1,
    "interval": 10
  }
}

支持的 5 个区域

区域 配置键 说明
全屏 qoder-background.fullscreen 覆盖整个编辑器窗口
侧边栏 qoder-background.sidebar 左侧文件资源管理器区域
面板 qoder-background.panel 底部终端/输出/问题面板
辅助栏 qoder-background.auxiliarybar 右侧大纲/Copilot 等面板
编辑器 qoder-background.editor 代码编辑区域(支持前景/背景模式)

配置参数

全局配置

参数 类型 默认值 说明
qoder-background.enabled boolean true 全局开关。设为 false 后扩展不注入任何样式
qoder-background.autoApply boolean true 自动应用开关true=监听 settings.json 变化并自动注入背景图;false=关闭自动监听,需要手动执行命令

全屏区域 (fullscreen) 专属参数:

参数 类型 默认值 说明
images string\[\] ["builtin:images"] 图片路径列表
opacity number 0.1 透明度(0~1),推荐 0.05~0.3
size string cover 背景尺寸(cover / contain / 具体尺寸)
position string center 背景位置
interval number 0 轮播间隔秒数,0 = 不轮播
random boolean false 随机展示

轮播说明 :当 interval > 0images 包含多张图片时启用,纯 CSS 实现,最多 10 张。仅全屏区域支持轮播

侧边栏 / 面板 / 辅助栏 参数:

参数 类型 默认值 说明
images string\[\] [] 图片路径列表(仅支持单图,取第一张)
opacity number 0.1 透明度,推荐 0.05~0.15
size string cover 背景尺寸
position string center 背景位置

注意 :这些区域不支持轮播intervalrandom 参数无效。

编辑器区域 专属参数:

参数 类型 默认值 说明
images string\[\] [] 图片路径列表(仅支持单图,取第一张)
useFront boolean true true=图片在代码上方,false=在下方

注意 :编辑器区域不支持轮播 ,没有 opacity/size/position 参数。

图片路径格式

格式 示例 说明
本地文件 "D:/photos/bg.jpg" 绝对路径,自动转 base64
文件夹 "D:/my-wallpapers" 自动扫描所有图片
内置图片 "builtin:images" 扩展自带的图片文件夹
网络图片 "https://example.com/bg.jpg" 仅 HTTPS

应用配置

修改 settings.json 后,需要应用才能生效(配置变更不会自动写入 workbench.html):

  1. 命令面板Ctrl+Shift+PBackground: 应用背景图并重载Reload Window
  2. 状态栏按钮 :点击右下角 Background 按钮
  3. 自动提示autoApply 开启时,保存设置后自动注入并重载
  4. 快捷脚本node apply-from-settings.js(开发调试用)

技术原理简述

注入方式

采用 HTML 注入而非 JS 注入:

  • vscode-background v2 向 workbench.desktop.main.js 追加 JS 代码 → 触发 Qoder 的 checksum 校验
  • 我们向 workbench.html 插入 <style> 标签 → 不受 JS checksum 影响
  • workbench.html 的 CSP 允许 'unsafe-inline' 样式,天然兼容

图片处理

本地图片自动转为 base64 data URL:

复制代码
用户配置: "D:/wallpapers/bg.jpg"
    ↓ normalizeImagePath()
文件读取 → toString('base64')
    ↓
data:image/jpeg;base64,/9j/4AAQSkZJRg...
    ↓
写入 CSS: background-image: url('data:...')

这样绕过了 Qoder CSP 中 img-src 不包含 file: 协议的限制。

轮播实现

由于 CSP 的 script-src 不允许 'unsafe-inline',无法注入 JS,因此轮播采用纯 CSS 方案:

  • 多图层叠加:body::after + body::before + div 元素
  • 每个图层关联独立的 @keyframes 动画
  • 通过 opacity 关键帧控制同一时刻只显示一个图层
  • 图片间有平滑淡入淡出过渡

暗色主题自适应

css 复制代码
body { --qoder-bg-mix-blend-mode: unset; }
body:has(> .monaco-workbench.vs-dark) { --qoder-bg-mix-blend-mode: screen; }

通过 CSS :has() 选择器检测深色主题的 .vs-dark 类,自动切换混合模式,避免在暗色背景上图片不可见。


常见问题

Q: 修改设置后不生效?

A: 需要执行 Background: 应用背景图并重载 命令或 Reload Window。如果 autoApplytrue,保存后会自动应用。

Q: 背景图太淡/太浓?

A: 调整 opacity 值。推荐:全屏 0.05~0.3,侧边栏/面板 0.05~0.15。

Q: 轮播不工作?

A: 确保 interval > 0 且 images 有多张图片(或指向含多张图片的文件夹)。轮播最多 10 张。

Q: 提示"安装似乎已损坏"?

A: 正常现象,扩展已自动隐藏该告警。如仍出现,可安装 vscode-fix-checksums

Q: Qoder 更新后背景消失了?

A: Qoder 升级会覆盖 workbench.html。升级后重新执行 Background: 应用背景图并重载 即可恢复。


许可协议

MIT License