前言¶
DeepSeek Harness Desktop 的窗口背景材质通常由 Electron 壳层的 BrowserWindow 控制,普通插件无法直接改壳。若只想在界面背后看到当前桌面壁纸的模糊效果、又不想动 apps/desktop 或走 IPC,就需要在页面侧自己提供背景源。dsh-vibrancy 走的就是这条纯插件路径:读 Windows 已缓存的壁纸文件,经 profile 自带的 loopback Web 服务提供给页面,再在文档里叠一层固定、不可交互的模糊层,并把应用语义背景改成半透明,从而接近 Frosted-glass / Acrylic 观感。
下面介绍插件定位、能力与安装方式;事实以 GitHub 仓库 README 为准。
这是什么¶
dsh-vibrancy 由维护者 omorisunn 发布,在 SkillHub 目录中归类为「趣味换装」。它面向 DeepSeek Harness Desktop,不修改 DSH 本体、不调用 Electron API、也不碰桌面壳代码;仅在 Host 侧注册 Web 路由、在浏览器侧注入样式与壁纸层。当系统没有可用壁纸文件(例如纯色背景)、profile 缺少 Host 半、或页面已被其他客户端标记时,插件保持不生效,界面与未安装时一致。
核心功能¶
Host 与浏览器分工¶
Host 半(index.mjs)在页面已共享的、经认证的 loopback Web 服务器上注册两条路由,并定时重新读取壁纸,以便幻灯片轮换能被感知。浏览器半(打包后的 ./client)请求描述信息;仅当返回 available: true 时,才给文档打标记、注入样式表,并在 body 后追加壁纸层。
壁纸来源与路由¶
插件在 Windows 11 下从 %APPDATA%\Microsoft\Windows\Themes 相关路径发现图片:优先读 CachedFiles 中最新的图片,再回退到同目录旁的 TranscodedWallpaper。图片类型由文件头魔数判定,而非扩展名。
GET /dsh-vibrancy/wallpaper:返回图片字节;无可用图片时404 no wallpaper。GET /dsh-vibrancy/wallpaper/meta:返回{ available, url, token, mimeType, refreshIntervalMs },cache-control: no-store。
URL 上的 ?v= token 由修改时间与文件大小截断组成,换壁纸即换 URL,避免浏览器长期使用缓存。默认约每 30 000 ms 重新读取壁纸;配置更小的间隔会被抬升到至少 1000 ms。
页面视觉效果¶
壁纸层为 position: fixed、全屏略外扩(inset: -5%)、filter: blur(48px) saturate(1.15),pointer-events: none,位于应用下方;#root 提到更高 z-index。样式通过重写语义背景别名(如 --dsw-alias-bg-base 与各 bg-layer)为 color-mix(..., transparent),在亮/暗主题下使用不同透明度;菜单、对话框等浮层仍保持接近不透明,以免破坏可读性。
失效与回退¶
轮询若得到 available: false,会移除层、自定义属性与根节点标记。任意失败路径(无 Host、404、非 JSON、传输错误、localStorage 为 off、非 standalone 文档、已有 [data-dsh-client] 等)均不改动页面原有绘制。
环境要求¶
- 操作系统:Windows 11(依赖 Windows 为当前布局写入的壁纸文件)。
- DSH Desktop:0.1.7-rc.2 或更高,且具备
webServer服务及其register能力。 - 壁纸:必须是图片文件;纯色背景无文件可读,此时
available为 false,插件不激活。
package.json 中声明 Node >=22.19;当前包版本 0.1.0,许可证 MIT。
安装与启用¶
DSH Desktop 使用独立 profile:$DSH_HOME/profiles/desktop(Windows 上为 %USERPROFILE%\.dsh\profiles\desktop)。CLI 不能启动或修改该 profile,安装需在该目录内完成三次写入(Web GUI 插件管理器在能解析到包 specifier 时也会做同样三步;本地目录路径通常不能作为可解析 specifier)。
- 将本包复制到
<profile>/node_modules/dsh-vibrancy。 - 在
<profile>/package.json的dependencies中加入"dsh-vibrancy": "file:./node_modules/dsh-vibrancy",并在dsh.profile.bundles中加入"dsh-vibrancy"。 - 在
<profile>/cordis.yml末尾追加 Loader 行:
- id: window-glass
name: dsh-vibrancy
完成后重启 DSH Desktop。
若你修改了 src/glass-core.mjs,需重新生成 lib/client.js(仓库一般已附带生成结果):
node scripts/build-client.mjs
典型用法¶
在页面内临时关闭¶
在 Desktop 文档的 localStorage 中设置键 dsh-vibrancy 为 off 并刷新页面;此后不再请求描述信息、也不注册效果。任意其他值或未设置则视为启用。应用内没有对该键的菜单或设置项。
localStorage.setItem('dsh-vibrancy', 'off')
在 Host 侧禁用¶
在 cordis.yml 的 Loader 上设置 enabled: false,Host 不再提供壁纸路由,所有页面保持原样:
- id: window-glass
name: dsh-vibrancy
config:
enabled: false
适用场景与注意¶
适合:在 Windows 11 上使用 DSH Desktop,希望界面背后呈现当前桌面壁纸的磨砂模糊,且接受通过半透明主题 token 调整观感、而非改 Electron 窗口材质的方案。
不适合或无效:非 Windows 11、无图片壁纸、DSH 版本低于 0.1.7-rc.2 或无 webServer、以及与其他客户端共用的非 standalone 文档。
插件以 当前 DSH 进程权限 读取本机壁纸路径并通过 loopback 提供图片;安装前应自行查看 源码与 LICENSE,确认行为与许可符合你的环境策略。社区目录 SkillHub 插件页 与 GitHub 无 DeepSeek / 幻方官方从属关系,仅作生态索引。
结尾¶
dsh-vibrancy 用「读壁纸 → Host 路由 → 页面模糊层 + 半透明主题」实现 Desktop 侧的 Acrylic 风格,全程不碰壳层。需要时可按 profile 三步安装,用 localStorage 或 cordis 的 enabled 关闭。