Back to home@mengzhangj

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 隔离丢失)。

插件结构

文件说明
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 安装(推荐)

  1. 双击 build.bat,生成 dsh-wallpaper-v1.0.0.zip
  2. 打开 DSH Desktop → 设置 → 插件从本地 zip 安装 → 选择该 zip。
  3. 重启 DSH Desktop。

方式二:手动放置(开发者)

  1. 把插件目录放进 web profile 的 node_modulesprofiles\web\node_modules\dsh-wallpaper\

  2. 在 profile 组合层(如 cordis.patch.yml)加入:

    - insert:
        - id: dsh-wallpaper
          name: dsh-wallpaper
    
  3. 重启 DSH Desktop。

注意:客户端模块在启动时快照,修改 client.js 后必须重启应用才生效。

使用方法

  1. 设置 → 通用设置 → 背景壁纸
    • 模式切换:图片 / 视频。
    • 图片:点「选择图片」上传本地图。
    • 视频:粘贴本地视频文件完整路径(如 D:\Videos\bg.mp4),点「应用视频」。
    • 不透明度滑块 + 清除按钮。
  2. 设置 → 通用设置 → 字体
    • 界面字体 / 代码字体下拉框 = 本机真实安装的全部字体(自动扫描)。
    • 选中立即生效,预览框同步展示。
  3. 左侧边栏 → 壁纸设计
    • 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.pngdocs/screenshot-2.pngdocs/screenshot-3.png

开发

# 打包(Windows)
build.bat

# 安装依赖(如需要)
pnpm install

许可证

MIT —— 只覆盖本仓库内的插件源码。