🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

彻夜之歌动态壁纸 yangcanbin31-coder/dsh-nazuna-wallpaper-engine

DeepSeek Harnessv0.7.5
yangcanbin31-coder55 天前有提交已提供中文文档扫描:含敏感能力

把本机视频壁纸渲染到界面后方,配七草荠吉祥物

29.3/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:npm 同名包「dsh-plugin-wallpaper-engine」归属 elysia395/dsh-wallpaper-engine,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yangcanbin31-coder/dsh-nazuna-wallpaper-engine
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · ui
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 55 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/6) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-plugin-wallpaper-engine」归属 elysia395/dsh-wallpaper-engine,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-plugin-wallpaper-engine @ 0.7.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 19:20:24

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 137 处,展示前 56 条)
  • 读取本地文件
    lib/index.js:91
    try { letters = (await readdir('/mnt')).filter((n) => /^[a-zA-Z]$/.test(n)); } catch { return null; }
  • 执行外部命令来自配置/变量
    lib/index.js:106
    execFile(
  • 读取本地文件
    lib/index.js:135
    try { await access(p); return true; } catch { return false; }
  • 读取本地文件
    lib/index.js:138
    try { return (await stat(p)).isDirectory(); } catch { return false; }
  • 读取本地文件
    lib/index.js:141
    try { return (await stat(p)).isFile(); } catch { return false; }
  • 读取本地文件
    lib/index.js:152
    try { letters = (await readdir('/mnt')).filter((n) => /^[a-zA-Z]$/.test(n)); } catch { return []; }
  • 读取本地文件
    lib/index.js:213
    try { text = await readFile(vdfPath, 'utf8'); } catch { return []; }
  • 写入本地文件
    lib/index.js:472
    writeFileSync(fd, data);
  • 写入本地文件
    lib/index.js:478
    renameSync(tmp, filePath);
  • 写入本地文件
    lib/index.js:481
    writeFileSync(filePath, data);
  • 写入本地文件
    lib/index.js:488
    await writeFileP(tmp, data);
  • 写入本地文件
    lib/index.js:490
    await renameP(tmp, filePath);
  • 写入本地文件
    lib/index.js:493
    try { await writeFileP(filePath, data); } finally {
  • 删除本地文件
    lib/index.js:494
    try { await unlinkP(tmp); } catch { }
  • 删除本地文件
    lib/index.js:664
    try { unlinkSync(tmpVideo); } catch { }
  • 删除本地文件
    lib/index.js:667
    try { unlinkSync(tmpVideo); } catch { }
  • 删除本地文件
    lib/index.js:1158
    try { unlinkSync(join(dir, name)); } catch { }
  • 发起网络请求
    lib/index.js:1214
    const res = await fetch(url, { redirect: 'follow', signal: ctrl.signal, headers: { 'User-Agent': 'dsh-wallpaper-engine' } });
  • 删除本地文件
    lib/index.js:1290
    try { unlinkSync(tmpFiles[i]); } catch { }
  • 删除本地文件
    lib/index.js:1306
    try { tmpFiles.forEach((f) => { try { unlinkSync(f); } catch { } }); } catch { }
  • 执行外部命令来自配置/变量
    lib/index.js:1392
    proc = spawn(a.file || ff, a.args || args,
  • 读取本地文件
    scripts/prepare.mjs:17
    const hasSource = existsSync(resolve(root, 'src', 'client.js')) &&
  • 读取本地文件
    scripts/prepare.mjs:18
    existsSync(resolve(root, 'scripts', 'build-client.mjs'));
  • 执行外部命令来自配置/变量
    scripts/prepare.mjs:21
    const r = spawnSync(process.execPath, [resolve(root, 'scripts', 'build-client.mjs')], {
  • 读取本地文件
    lib/scene-manifest.js:990
    if (lstatSync(abs).isSymbolicLink())
  • 读取本地文件
    lib/scene-manifest.js:992
    if (!statSync(abs).isFile())
  • 读取本地文件
    lib/scene-manifest.js:997
    return { path, bytes: new Uint8Array(readFileSync(real)) };
  • 读取本地文件
    lib/scene-manifest.js:1010
    names = readdirSync(sub === '' ? normDir : joinPath(normDir, sub));
  • 读取本地文件
    lib/scene-manifest.js:1020
    const lst = lstatSync(joinPath(normDir, rel));
  • 读取本地文件
    lib/pkg-extract.js:863
    if (!statSync(abs).isFile()) return null;
  • 读取本地文件
    lib/pkg-extract.js:864
    return { path, bytes: new Uint8Array(readFileSync(abs)) };
  • 读取本地文件
    lib/pkg-extract.js:875
    names = readdirSync(sub === '' ? dir : join(dir, sub));
  • 读取本地文件
    lib/pkg-extract.js:884
    const stat = statSync(join(dir, rel));
  • 读取本地文件
    inline_svg.cjs:3
    let src = fs.readFileSync(srcPath, 'utf8');
  • 读取本地文件
    inline_svg.cjs:4
    const svg = fs.readFileSync('08b5f70da6268b9d8d4f320718fdb21d.svg', 'utf8')
  • 写入本地文件
    inline_svg.cjs:17
    fs.writeFileSync(srcPath, src);
  • 读取本地文件
    scripts/build-client.mjs:31
    const pkg = JSON.parse(readFileSync(resolve(root, 'package.json'), 'utf8'));
  • 读取本地文件
    scripts/build-client.mjs:34
    const src = readFileSync(resolve(root, 'src', 'client.js'), 'utf8');
  • 写入本地文件
    scripts/build-client.mjs:61
    mkdirSync(dirname(target), { recursive: true });
  • 写入本地文件
    scripts/build-client.mjs:62
    writeFileSync(target, output);
  • 读取本地文件
    scripts/diagnose-scenes.mjs:180
    for (const p of probes) { if (existsSync(p)) out.push(p); }
  • 读取本地文件
    scripts/diagnose-scenes.mjs:187
    if (existsSync(ws)) { try { for (const n of readdirSync(ws)) { const d = join(ws, n); if (statSync(d).isDirectory()) dirs.push(d); } } catch {} }
  • 读取本地文件
    scripts/diagnose-scenes.mjs:187
    if (existsSync(ws)) { try { for (const n of readdirSync(ws)) { const d = join(ws, n); if (statSync(d).isDirectory()) dirs.push(d); } } catch {} }
  • 读取本地文件
    scripts/diagnose-scenes.mjs:187
    if (existsSync(ws)) { try { for (const n of readdirSync(ws)) { const d = join(ws, n); if (statSync(d).isDirectory()) dirs.push(d); } } catch {} }
  • 读取本地文件
    scripts/diagnose-scenes.mjs:189
    if (existsSync(we)) { for (const sub of ['projects\\defaultprojects', 'projects\\myprojects']) { const p = join(we, sub); if (existsSync(p)) { try { f
  • 读取本地文件
    scripts/diagnose-scenes.mjs:189
    if (existsSync(we)) { for (const sub of ['projects\\defaultprojects', 'projects\\myprojects']) { const p = join(we, sub); if (existsSync(p)) { try { f
  • 写入本地文件
    scripts/diagnose-scenes.mjs:327
    writeFileSync(report, out.join('\n'), 'utf8');
  • 读取本地文件
    scripts/verify-client.mjs:99
    const code = readFileSync(new URL('../lib/client.js', import.meta.url), 'utf8');
  • 读取本地文件
    scripts/verify-scene.mjs:331
    if (!existsSync(fx.file)) { console.log(' (skip fixture ' + fx.file + ' — not present)'); continue; }
  • 读取本地文件
    scripts/verify-scene.mjs:333
    const r = pkgExtract.extractSceneMainImage(new Uint8Array(readFileSync(fx.file)));
  • 读取本地文件
    scripts/verify-scene.mjs:413
    const cached = existsSync(cacheDir) ? readdirSync(cacheDir).filter((f) => f.startsWith('sf33_' + token + '_')) : [];
  • 读取本地文件
    scripts/verify-scene.mjs:413
    const cached = existsSync(cacheDir) ? readdirSync(cacheDir).filter((f) => f.startsWith('sf33_' + token + '_')) : [];
  • 读取本地文件
    scripts/verify-transcode-state.mjs:165
    const code = readFileSync(new URL('../lib/client.js', import.meta.url), 'utf8');
  • 读取本地文件
    splice_rope.cjs:3
    const b64 = fs.readFileSync('_rope_small.png').toString('base64');
  • 读取本地文件
    splice_rope.cjs:4
    let src = fs.readFileSync(srcPath, 'utf8');
  • 写入本地文件
    splice_rope.cjs:20
    fs.writeFileSync(srcPath, src);
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 本机视频壁纸渲染
  • 七草荠吉祥物
  • 月光紫液态玻璃

NAZUNA(彻夜之歌)主题壁纸引擎,用于 DeepSeek Harness:七草荠吉祥物,月光紫液态玻璃。衍生自 elysia395/dsh-wallpaper-engine v0.7.1(MIT)。

README

由 DeepSeek 最新模型翻译生成
dsh-nazuna-wallpaper-engine NAZUNA(彻夜之歌)主题的 DeepSeek Harness 动态壁纸引擎 ——基于 elysia395/dsh-wallpaper-engine v0.7.1(MIT) 的衍生主题版:把你本机 Wallpaper Engine / 自定义上传的视频壁纸渲染到 DSH 界面后方,配 iOS 液态玻璃、可调配色/玻璃透明度、七草荠拉绳吉祥物。 ⚠️ 衍生项目:底层全部来自上游 dsh-plugin-wallpaper-engine(MIT),本仓库仅做主题与工具层面的修改,上游版权声明见 LICENSE,来源与改动清单见 THIRD_PARTY_NOTICES.md。
展开完整文档(README 剩余 1 节)
dsh-nazuna-wallpaper-engine

NAZUNA(彻夜之歌)主题的 DeepSeek Harness 动态壁纸引擎 ——基于 elysia395/dsh-wallpaper-engine v0.7.1(MIT) 的衍生主题版:把你本机 Wallpaper Engine / 自定义上传的视频壁纸渲染到 DSH 界面后方,配 iOS 液态玻璃、可调配色/玻璃透明度、七草荠拉绳吉祥物。

⚠️ 衍生项目:底层全部来自上游 dsh-plugin-wallpaper-engine(MIT),本仓库仅做主题与工具层面的修改,上游版权声明见 LICENSE,来源与改动清单见 THIRD_PARTY_NOTICES.md。

本版(Nazuna)相对上游的改动

- 吉祥物:小女仆/鲸御姐 → 七草荠 Q版 / 全身立绘(tools/make-mascot.py 重新生成)
- 默认配色:强调色 #4f8cff → 月光紫 #7c8cf8;深色玻璃底色 → 夜色 #0d0f24
- 皮肤管理器修复(host):补丁同时写入全部 profile 层 + home 层,桌面端切换皮肤立即生效
- 附加工具:tools/ 下的呼吸/发丝/视差动态视频生成器、分层 5 图合成器、rembg 抠图脚本

功能(继承上游)

- Video / Web / Scene 壁纸渲染到 DSH 界面后方;自定义上传 JPG/PNG/MP4
- iOS 液态玻璃设置页(配色 6 预设+自定义、玻璃透明度、整窗液态玻璃、侧栏玻璃)
- 拉绳吉祥物(拖拽吸附、仓库抽屉)、壁纸选择弹窗、轮播、隐藏/恢复、倍速/翻转
- 帧率上限抽帧转码(ffmpeg 自动下载)、遮挡暂停省电、字体自定义
- 设置持久化到 ~/.dsh-wallpaper-engine/config.json

详见上游 README 与仓库文档:https://github.com/elysia395/dsh-wallpaper-engine

安装

lib/ 已含构建产物,无需编译即可用(本地 link 安装):

在 DSH 环境里用文件夹路径安装(web profile 示例)
dsh plugin --profile web add link:G:/iPolloWork/dsh-skin-dev/nazuna-wallpaper-engine
dsh plugin --profile desktop add link:G:/iPolloWork/dsh-skin-dev/nazuna-wallpaper-engine

重启 DSH → 设置 → Wallpaper Engine。若从 git 克隆安装,首次请先
npm install(自动触发 prepare → 重建 lib/client.js)。

注意:npm 上已发布的上游同名包 dsh-plugin-wallpaper-engine 与本仓库并非同一份代码;本仓库请始终以 link:/文件夹方式安装。

开发

npm run build # 从 src/client.js 重新生成 lib/client.js(纯 Node,无依赖)
npm run verify

- 改 host(lib/index.js / src/index.ts)后重启 DSH 生效
- 改 client(src/client.js)→ npm run build → 重启

生成动态壁纸视频(可选)

见 tools/:

呼吸/发丝/视差 单主角视频(ffmpeg 需可用)
python tools/make-breath-video.py out.mp4

五图连播分层合成(需要 venv:pillow+numpy;人物抠图用 rembg isnet-anime)
python tools/cutout-qi5.py
python tools/make-layered-loop.py out.mp4

许可

- 代码:MIT,版权 elysia395(上游)+ yangcanbin31-coder(本仓库改动)
- 角色形象(七草荠 /《彻夜之歌》):版权归原作者/版权方,不随 MIT 授权,商用与再分发请自行确认授权
预览分享卡片长什么样 ↓yangcanbin31-coder/dsh-nazuna-wallpaper-engine
分享 · DeepSeek Harness Hub
yangcanbin31-coder/dsh-nazuna-wallpaper-engine

把本机视频壁纸渲染到界面后方,配七草荠吉祥物

这是你的仓库?认领条目

回到顶部