dsh-wallpaper
DSH-Wallpaper background wallpaper and system font picker plugin for DSH Desktop. Plugin source only, no DSH core.
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 25, 2026
- Updated
- Aug 25, 2026
Introduction
DSH-Wallpaper
为 DSH Desktop 添加自定义背景壁纸与系统字体选择能力的插件。
重要声明:本仓库只开源 DSH-Wallpaper 插件源码,不包含 DSH Desktop 本体程序(
DSH Desktop.exe、其 resources 内置的 DSH 框架代码等)。DSH 本体是 DeepSeek 官方闭源产品,与本插件无关。
功能
- 背景壁纸
- 图片背景:本地图片(PNG/JPG/WebP/GIF)→ 页面背景,支持不透明度调节。
- 本地视频背景:填写本地视频文件完整路径(mp4/webm/mov/mkv),宿主以流式(HTTP Range)提供,浏览器
<video>直接播放。 - Wallpaper Engine 联动:扫描本地 Wallpaper Engine 壁纸库(Steam 创意工坊 431960 + 本地 projects),在「壁纸设计」面板中选择视频 / 网页 / 图片壁纸作为页面背景;场景壁纸降级为静态预览图。
- 亮 / 暗主题自动适配(
{light, dark}token 覆盖)。
- 系统字体选择器
- 自动扫描本机全部已安装字体(权威来源:宿主读取 Windows 注册表字体键,浏览器无法直接枚举系统字体目录)。
- 下拉选择界面字体 / 代码字体,选择后立即预览生效;一键恢复默认。
- 中文字体名 UTF-8 原样处理(不乱码);所选字体不可用时自动回退微软雅黑。
- 持久化
- 背景与字体设置保存在宿主 settings(
settings.yaml),重启应用依然生效(不依赖浏览器 localStorage,规避 DSH 每次启动随机端口导致的 localStorage 隔离丢失)。
- 背景与字体设置保存在宿主 settings(
插件结构
| 文件 | 说明 |
|---|---|
client.js | 客户端模块(浏览器侧):背景层渲染、字体探测/选择 UI、token 覆盖;样式内联(宿主 /plugins/<id>/ 只服务 client.js)。 |
index.js | 宿主模块(Node 侧):注册 ui-background 设置命名空间、/dsh-background/media 视频流路由、/dsh-background/fonts 系统字体清单接口。 |
style.css | 样式交付副本(与 client.js 内联样式一致,供参考)。 |
package.json | 插件 manifest:dsh.client 声明、依赖注入、exports["./client"] 入口。 |
build.bat | 一键打包 zip 脚本。 |
安装方法
方式一:从本地 zip 安装(推荐)
- 双击
build.bat,生成dsh-wallpaper-v1.0.0.zip。 - 打开 DSH Desktop → 设置 → 插件 → 从本地 zip 安装 → 选择该 zip。
- 重启 DSH Desktop。
方式二:手动放置(开发者)
-
把插件目录放进 web profile 的
node_modules:profiles\web\node_modules\dsh-wallpaper\ -
在 profile 组合层(如
cordis.patch.yml)加入:- insert: - id: dsh-wallpaper name: dsh-wallpaper -
重启 DSH Desktop。
注意:客户端模块在启动时快照,修改
client.js后必须重启应用才生效。
使用方法
- 设置 → 通用设置 → 背景壁纸
- 模式切换:图片 / 视频。
- 图片:点「选择图片」上传本地图。
- 视频:粘贴本地视频文件完整路径(如
D:\Videos\bg.mp4),点「应用视频」。 - 不透明度滑块 + 清除按钮。
- 设置 → 通用设置 → 字体
- 界面字体 / 代码字体下拉框 = 本机真实安装的全部字体(自动扫描)。
- 选中立即生效,预览框同步展示。
- 左侧边栏 → 壁纸设计
- Wallpaper Engine 壁纸库浏览 / 搜索 / 重新扫描,点选即应用为页面背景。
- 面板可调不透明度、作用范围(整页 / 主内容区)、填充、模糊、暗角、帧率、视差等。
原理说明
网页运行在浏览器沙箱中,无法直接读取 C:\Windows\Fonts 目录来枚举系统字体。
本插件由宿主(Node)通过 PowerShell 读取 Windows 注册表
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts(含 HKCU 用户级字体),
返回 100% 真实存在的字体族名清单;浏览器侧仅在宿主接口不可用时,才退回到
document.fonts.check() + Canvas 宽度对比的探测法(有假阳性,仅作兜底)。
截图
截图占位:安装后请补充以下截图。
- 设置 → 通用设置 → 背景壁纸(图片模式)
- 设置 → 通用设置 → 字体(下拉列表展示本机字体)
- 壁纸设计面板(Wallpaper Engine 壁纸库)
| 截图 1:背景壁纸设置 | 截图 2:字体选择 | 截图 3:壁纸设计 |
|---|---|---|
docs/screenshot-1.png | docs/screenshot-2.png | docs/screenshot-3.png |
开发
# 打包(Windows)
build.bat
# 安装依赖(如需要)
pnpm install
许可证
MIT —— 只覆盖本仓库内的插件源码。