dsh-wallpaper:为 DeepSeek Harness 全界面铺一层照片壁纸

前言

DeepSeek Harness(DSH)自带浅色、深色与跟随系统三种外观,主题 token 主要管颜色,没有内置壁纸,也没有开放自定义 CSS 的入口。若希望侧边栏、对话区与输入框背后是同一张图,并把界面表面做成半透明玻璃以便透出照片,需要靠插件扩展。下面介绍社区插件 dsh-wallpaper(维护者 fl0-0wer,分类:趣味换装),它在不改变强调色与文字配色的前提下,为整个 Web GUI 增加可配置的 photo wallpaper。

这是什么

dsh-wallpaper 是面向 DSH Web 界面的壁纸插件:在设置里选图后,照片作为固定背景铺满窗口,并通过调整若干背景 surface token 的透明度,让壁纸从侧边栏、会话与 composer 下方透出来。插件以 MIT 许可发布,当前 package 版本为 1.1.1(以 GitHub release 与 package.json 为准)。

核心功能

插件分为宿主端与客户端两半,职责在 README 中有明确划分。

宿主端(lib/index.js)在 DSH Web 服务器上注册路由:

  • GET /dsh-wallpaper/config.json:返回设置文件及图片修改时间;
  • GET /dsh-wallpaper/image:返回壁纸文件(支持 jpg / jpeg / png / webp / avif / gif / svg);
  • POST /dsh-wallpaper/config:合并补丁到设置(数值会 clamp 到合理范围);
  • POST /dsh-wallpaper/upload:上传图片(magic-byte 校验,上限 40 MB)并写入配置。

客户端(lib/client.js)注入一个 <style>,把照片画在 <html> 固定背景上,并用中性色系的半透明值覆盖五个 surface token:--dsw-alias-bg-base、--dsw-alias-bg-layer-1 至 layer-3、--dsw-alias-bg-module-platform。遮罩与弹层相关 token(如 --dsw-alias-bg-overlay、--dsw-alias-bg-mask-*) intentionally 不改动,以保证对话框可读。客户端还注册 设置 → 背景壁纸 页面,从 GUI 驱动开关与滑块。

实现上全程包在 try/catch 中:客户端入口若抛错会导致整个 Web 启动失败,桌面端会禁用所有第三方插件,因此该插件设计上不能 throw。

明暗主题方面,插件内置两套中性 palette,随 body[data-ds-dark-theme] 切换,与 设置 → 通用 → 外观(浅色 / 深色 / 跟随系统)一致;强调色、语法高亮、边框与文字颜色不动。若同时启用玻璃类主题(如 Catppuccin),壁纸接管 surface,主题仍保留 accent 与文字配色。

安装与启用

前提:DSH 构建需支持 client plugin(桌面应用或 dsh web),并使用插件 profile(默认 desktop)。

推荐两种方式:

  1. 在 Plugins → Add plugin 中粘贴预构建 tarball 的 URL;
  2. 使用 CLI(profile 名按实际替换):
dsh plugin --profile desktop add https://github.com/fl0-0wer/dsh-wallpaper/releases/download/v1.1.1/dsh-wallpaper-1.1.1.tgz

包内已含预构建客户端 JavaScript、bundle patch 与默认壁纸,无需本地构建。

手动安装时,需把包复制到 profile 的 node_modules/dsh-wallpaper,并把设置与图片放到壁纸目录 $DSH_HOME/wallpaper(未设置 DSH_HOME 时为 ~/.dsh/wallpaper),并在 $PROFILE/cordis.patch.yml 追加 dsh-wallpaper 的 insert 块;仓库提供 tools/install-wallpaper.sh 可完成上述步骤并备份 patch 文件。按 README 说明,loader 热应用新条目,无需重启。

卸载:从 $PROFILE/cordis.patch.yml 删除 dsh-wallpaper 的 insert 块,并删除 $PROFILE/node_modules/dsh-wallpaper/;壁纸目录可保留,单独存在时不生效。

典型用法

图形界面

打开 设置 → 背景壁纸:用 选择图片… 选照片,开关壁纸,拖动滑块。每次变更立即保存,运行中的应用会在面板后方重绘,无需重启或整页刷新。

配置文件

也可在壁纸目录放置图片,并在 config.json 中指向文件名,例如:

{
  "enabled": true,
  "image": "my-photo.jpg",
  "scrim": 0.45,
  "blur": 0,
  "saturation": 1,
  "translucency": 0.5
}

切到其他窗口再回来时,插件会在窗口重新获得焦点时重读设置;图片 URL 用 mtime 做 cache bust,一般不必手动 reload。

键 默认值 含义
enabled true false 时移除壁纸层与样式,相当于临时关闭
image current.jpg 壁纸目录内文件名;无扩展名时会依次尝试 jpg → jpeg → png → webp → avif
scrim 0.45 照片上的黑色蒙层,0–1;文字发虚时可调高
blur 0 模糊半径(px),8–24 偏毛玻璃;大于 0 时照片移到 filtered 层
saturation 1 约 0.6 偏灰,约 1.4 更饱和
translucency 0.5 UI 表面对壁纸的透出程度;0 接近不透明,1 最强

适用场景与注意

适合已在 DSH 桌面或 dsh web 中长期使用、希望界面有个人照片背景、又需要保持对话框与 overlay 可读性的用户。不适合期望仅改 accent 或完全自定义 CSS 的场景——本插件只动 surface 与全屏背景。

DSH 生态强调「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,安装前请自行查看源码与 MIT 许可证,并理解插件以当前 DSH 进程权限运行,上传与读写壁纸目录均在该权限范围内。

链接

经过上面的步骤,即可在不大改主题配色的前提下,为 Harness 全 GUI 加上可开关、可调 scrim / blur / 饱和与透明度的照片壁纸。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye