前言¶
DeepSeek Harness(DSH)若已安装壁纸引擎插件,壁纸文件需要落在引擎约定的上传目录(默认 ~/.dsh-wallpaper-engine/uploads/ 下的 up-* 命名)才会在 DSH 里可选。Hao Wallpaper(哲风壁纸)把壁纸存在自己的目录和元数据里,和引擎目录不是同一套路径。常见做法是每次下载后手动拷贝、改名、补标题——重复且容易漏。
社区插件 dsh-hao-import(仓库 AB-png123/dshplugin,npm 包名 dsh-hao-import)挂在 DSH 内核启动流程上:每次启动 DSH 时在后台跑一次导入脚本,把 Hao Wallpaper 里尚未导入的条目增量复制到壁纸引擎的上传目录,并按壁纸 id 与类型做幂等记录,重复启动只会出现「新增 0 条」。维护者为 AB-png123,分类属于工作流;DSH 社区目录页见 skillhub.cn/plugins/AB-png123/dshplugin。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
一句话:DSH 插件,启动时自动把 Hao Wallpaper 新下载的壁纸增量导入 DSH 壁纸引擎数据目录(macOS / Windows,脚本出错只写日志,不阻塞 DSH 启动)。
它不负责在 DSH 里渲染壁纸——必须先安装 dsh-plugin-wallpaper-engine(DSH 壁纸引擎插件)。本插件解决的是「引擎装好了但没有可用壁纸源」的衔接问题;没有壁纸引擎时,导入的文件不会被展示。
当前 README 与 package.json 标明版本 1.3.3,许可证 MIT,要求 DeepSeek Harness ≥ 0.2.0-rc.1、Node ≥ 20(插件本体),导入逻辑依赖 Python 3.8+(优先 DSH 自带运行时)。
核心功能¶
下面介绍 README 中已写明的行为,便于对照预期。
启动即导入¶
插件在 lib/index.js 里挂到 DSH 内核 apply():按平台后台 spawn 入口脚本(macOS / Linux 为 scripts/run-import.sh,Windows 为 PowerShell 5.1+ 的 scripts/run-import.ps1),再调用 scripts/import_hao.py 完成扫描与复制。入口脚本带约 15 秒冷却,避免短时间多次触发。
增量与幂等¶
已导入条目按「壁纸 id + 类型」写入上传目录旁的 .imported.json;标题写入 .meta.json,文件命名为 up-hao-NN.*。再次启动只会处理新增项。
路径与格式¶
- Windows 上优先读 Hao Wallpaper 元数据
wallpaper-data.json里的localPath(绝对路径),不硬绑固定壁纸库目录;macOS 等平台在元数据不足时还会兜底扫描wallpaper-<id>/等布局。 - 动态壁纸:存在
wallpaper.mp4时导入视频,避免把首帧静态图重复算两条;标题从元数据截取前 3 段关键词,动态条目加「(动态)」后缀。 - 1.3.1 起只导入壁纸引擎认识的
mp4 / png / jpg / jpeg。Hao 只落地.webm/.mov/.webp等时,脚本会打印「不受 DSH 壁纸引擎支持」并跳过,而不是复制无法在引擎里显示的文件。
上传目录与引擎一致¶
插件解析上传目录的优先级与壁纸引擎一致:DSH_WE_UPLOAD_DIR → 引擎 config.json 的 uploadDir → <引擎目录>/uploads。默认引擎数据目录为 ~/.dsh-wallpaper-engine(Windows 为 %USERPROFILE%\.dsh-wallpaper-engine),可用 DSH_WE_DATA_DIR 或 DSH_WALLPAPER_ENGINE_DIR 覆盖。运行日志写在引擎数据目录下的 import.log。
可配置与可禁用¶
路径、Python 解释器、入口脚本、总开关均通过环境变量配置(GUI 启动的 DSH 不继承终端环境,需在系统环境或 launchctl setenv 等方式设置后重启应用)。设为 DSH_HAO_IMPORT_DISABLE=1 可关闭导入。
安装与启用¶
插件包内自带 scripts/,安装后无需克隆仓库或手动复制到 ~/.dsh/wallpaper-import/(该目录仅为 macOS / Linux 上可选的手动副本路径,1.2.0 起默认使用包内脚本)。
在已安装 DSH 的前提下,使用 README 给出的命令之一:
# 从 GitHub 安装(desktop profile)
dsh plugin --profile desktop add github:AB-png123/dshplugin
或从 Release 下载 tgz 后本地安装(Windows 下把路径换成实际位置):
dsh plugin --profile desktop add /path/to/dsh-hao-import-1.3.3.tgz
安装完成后重启 DSH 应用。验证是否跑通:
# macOS / Linux
tail -n 10 ~/.dsh-wallpaper-engine/import.log
# Windows PowerShell
Get-Content -Tail 10 "$env:USERPROFILE\.dsh-wallpaper-engine\import.log"
日志里出现 [时间] rc=0 和「新增 N 条」表示成功;没有新壁纸时会显示「新增 0 条」。DSH 自身日志在 ~/.dsh/logs/(Windows:%USERPROFILE%\.dsh\logs\)。
环境侧前置:已安装 Hao Wallpaper 且至少下载过一张壁纸;已安装 dsh-plugin-wallpaper-engine;本机有可用的 Python 3.8+(Windows 需 PowerShell 5.1+,不要求 Git Bash)。macOS 建议具备可用的系统 Python 或 Homebrew / pyenv 等路径(README 说明了 /usr/bin/python3 在缺少 Xcode CLT 时可能不可用的情况)。
插件以当前 DSH 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证,确认路径读写范围可接受。
典型用法¶
日常:打开 DSH 即可¶
正常使用 Hao Wallpaper 下载壁纸后,下次启动 DSH 会自动增量导入,无需再手动拷贝到 uploads/。
手动调试¶
包安装后脚本位于 profile 的 node_modules/dsh-hao-import/scripts/。例如 macOS / Linux:
cd ~/.dsh/profiles/desktop/node_modules/dsh-hao-import
bash scripts/run-import.sh --force # 立即执行,跳过 15 秒冷却
bash scripts/run-import.sh --dry-run # 只打印将导入什么,不写文件
python3 scripts/import_hao.py --dry-run
Windows 在 PowerShell 中进入 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-hao-import,对 run-import.ps1 或 import_hao.py 使用 --force / --dry-run(README 有完整示例)。
若希望继续使用复制到 ~/.dsh/wallpaper-import/ 的脚本副本,设置 DSH_HAO_IMPORT_SCRIPT 指向该入口;插件不会自动回退到该目录。
常用环境变量(节选)¶
| 变量 | 说明 |
|---|---|
DSH_HAO_IMPORT_DISABLE |
设为 1 关闭导入 |
HAO_WALLPAPER_DIR / HAO_WALLPAPER_DIRS |
兜底壁纸库目录(Windows 通常可不配,靠元数据 localPath) |
HAO_WALLPAPER_DATA_DIR |
元数据目录(含 wallpaper-data.json) |
DSH_HAO_IMPORT_PYTHON |
指定 Python 解释器 |
DSH_WE_UPLOAD_DIR |
与壁纸引擎一致的上传目录 override |
完整表格见 GitHub README「配置」一节。
重新导入某张壁纸¶
删除 uploads/.imported.json 里对应键以及 uploads/ 里相应 up-hao-* 文件,再运行一次导入即可。
卸载¶
dsh plugin --profile desktop remove dsh-hao-import
若曾手动复制脚本到 ~/.dsh/wallpaper-import/,可另行删除该目录;清理已导入壁纸与状态可选删除 ~/.dsh-wallpaper-engine(Windows 为 %USERPROFILE%\.dsh-wallpaper-engine)。
适用场景与注意¶
适合谁:已在 macOS 或 Windows 上同时使用 DSH(含壁纸引擎)、Hao Wallpaper,希望壁纸库与 DSH 壁纸列表自动同步、且接受「只同步引擎支持的格式」的用户。Linux 走 bash 入口,README 写明理论可用但未专门测试。
依赖与限制(摘自 README「已知限制」):
- 依赖 Hao Wallpaper 本地文件布局与元数据;客户端结构变更可能需要脚本跟进。
- 动态壁纸仅在有引擎可识别的
wallpaper.mp4时导入;仅.webm/.mov等会跳过并说明原因。 - 元数据缺失时标题退回「Hao壁纸」。
- Windows 若组策略限制 PowerShell 脚本,可改用手动运行
python scripts\import_hao.py。
排查表(未找到壁纸、一直新增 0 条、找不到 Python、导入成功但 DSH 看不到等)见仓库 README「排查」一节。
结尾¶
dsh-hao-import 把 Hao Wallpaper 与 DSH 壁纸引擎之间的手工拷贝改成「启动 DSH 后台增量同步」,并与引擎上传目录解析链对齐,重复运行幂等。进一步了解实现细节、Release 与 Issue,见 GitHub:https://github.com/AB-png123/dshplugin;目录索引:https://www.skillhub.cn/plugins/AB-png123/dshplugin。