{"_id":"@baiiii/dsh-wallpaper-local","_rev":"2-751548002810e6728cb863364b3889dc","name":"@baiiii/dsh-wallpaper-local","dist-tags":{"latest":"1.0.22"},"versions":{"1.0.18":{"name":"@baiiii/dsh-wallpaper-local","version":"1.0.18","keywords":["dsh","deepseek-harness","wallpaper","plugin","wallpaper-engine","cordis"],"license":"MIT","_id":"@baiiii/dsh-wallpaper-local@1.0.18","maintainers":[{"name":"baiiii","email":"hwz2790607920@163.com"}],"homepage":"https://github.com/baiiii279/dsh-wallpaper-local","bugs":{"url":"https://github.com/baiiii279/dsh-wallpaper-local/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","immediately":true}},"dist":{"shasum":"bd7075498af75812ae61c6cdced0369e989cd3aa","tarball":"https://registry.npmjs.org/@baiiii/dsh-wallpaper-local/-/dsh-wallpaper-local-1.0.18.tgz","fileCount":6,"integrity":"sha512-vJArUDU/THDO6XSAjfrtzBIWyDJT3RYU37DxkRNkJoJSdxAbMgjsTKOL0raD9EalRur5pTh7N8DM8nFj4V8gEQ==","signatures":[{"sig":"MEUCIGsQAUuLSnShPDLGQsrDkZWq53o3dGCE/VsxRa7P9FyWAiEAi8S94HtQZEh5IT+Yq3ee6WskwLaXUJe5UKZ8OUCVtB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54554},"main":"lib/index.js","type":"module","exports":{".":"./lib/index.js","./client":"./lib/client.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"1b00397db6cc7652ae370a5c8c3b601d143e3918","_npmUser":{"name":"baiiii","email":"hwz2790607920@163.com"},"repository":{"url":"git+https://github.com/baiiii279/dsh-wallpaper-local.git","type":"git"},"_npmVersion":"11.12.1","description":"DSH wallpaper plugin: local Wallpaper Engine/Steam picker, video background, scene.pkg texture extraction","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dsh-wallpaper-local_1.0.18_1787294655270_0.125107312626336","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@baiiii/dsh-wallpaper-local","version":"1.0.22","description":"DSH wallpaper plugin: local Wallpaper Engine/Steam picker, video background, scene.pkg texture extraction","type":"module","main":"lib/index.js","exports":{".":"./lib/index.js","./client":"./lib/client.js","./cordis.patch.yml":"./cordis.patch.yml","./package.json":"./package.json"},"license":"MIT","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web","immediately":true}},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1"},"repository":{"type":"git","url":"git+https://github.com/baiiii279/dsh-wallpaper-local.git"},"homepage":"https://github.com/baiiii279/dsh-wallpaper-local","keywords":["dsh","deepseek-harness","wallpaper","plugin","wallpaper-engine","cordis"],"bugs":{"url":"https://github.com/baiiii279/dsh-wallpaper-local/issues"},"publishConfig":{"access":"public"},"gitHead":"d6b33f5efa9d2d6509bd58024beaacf52d1a850c","_id":"@baiiii/dsh-wallpaper-local@1.0.22","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-JdeirmWhOICyY1tIjWsx7eZbJgXCa2lWmJNuEq6w5SaEvbPMLaDP9eg+MWJkeZ9YTU+xzzTTal+k4V7uVKPvfg==","shasum":"b895af020b81ee84029177b80334792c6207bff0","tarball":"https://registry.npmjs.org/@baiiii/dsh-wallpaper-local/-/dsh-wallpaper-local-1.0.22.tgz","fileCount":6,"unpackedSize":57853,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDOSMt4EYriCrjELHFPMphP74x5DLWS+hCJayp527JAsgIgfkDe6UK9hXDaIYy6YHIDFpTWzR7VJ8cSnnTB0wM2IG0="}]},"_npmUser":{"name":"baiiii","email":"hwz2790607920@163.com"},"directories":{},"maintainers":[{"name":"baiiii","email":"hwz2790607920@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-wallpaper-local_1.0.22_1787853968716_0.3279611421492472"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T06:44:15.088Z","modified":"2026-08-27T18:06:09.060Z","1.0.18":"2026-08-21T06:44:15.406Z","1.0.22":"2026-08-27T18:06:08.863Z"},"bugs":{"url":"https://github.com/baiiii279/dsh-wallpaper-local/issues"},"license":"MIT","homepage":"https://github.com/baiiii279/dsh-wallpaper-local","keywords":["dsh","deepseek-harness","wallpaper","plugin","wallpaper-engine","cordis"],"repository":{"type":"git","url":"git+https://github.com/baiiii279/dsh-wallpaper-local.git"},"description":"DSH wallpaper plugin: local Wallpaper Engine/Steam picker, video background, scene.pkg texture extraction","maintainers":[{"name":"baiiii","email":"hwz2790607920@163.com"}],"readme":"# dsh-wallpaper-local\n\n把本地 Wallpaper Engine / Steam 壁纸文件夹变成 DSH(DeepSeek Harness)页面背景的插件。带页内挑选器、可调外观、视频背景、以及从 `scene.pkg` 里提取真实壁纸的能力。\n\n> 已发布到 **npm**:`@baiiii/dsh-wallpaper-local`。路径自动解析(Steam 注册表 + DSH home 数据目录),见 [配置](#配置)。\n\n## 功能\n\n- 🖼️ **本地壁纸挑选器**:扫描 `steamapps/workshop/content/431960`(Wallpaper Engine 订阅目录),瀑布流按图片原始比例展示\n- 🎬 **视频背景**:识别工坊里的 `.mp4/.webm` 视频壁纸,在 DSH 页面里以 `<video autoplay loop muted>` 播放(HTTP Range 流式,支持 4K 大文件)\n- 📦 **场景包纹理提取**:解析 Wallpaper Engine 的 `scene.pkg`(PKGV 容器)→ `TEXV0005` 纹理 → 内嵌 JPEG,提取出真正的横屏高清壁纸\n- 🎛️ **外观可调**:壁纸透明度 / 压暗遮罩 / 背景模糊 / 面板玻璃度 四个滑块 + 显示模式(铺满 / 自动 / 完整)+ 智能可读性(按壁纸亮度自动调遮罩)\n- 💾 **持久化**:配置存盘(`config.json`)+ localStorage 双保险,重启不丢\n- ✨ **精修 UI**:卡片按原始比例瀑布流、悬停细描边、弹窗入场动画、自定义滑杆、SVG 图标\n\n## 安装\n\n```sh\n# 方式一:从 npm 安装(推荐)\ndsh plugin --profile web add @baiiii/dsh-wallpaper-local\n\n# 方式二:从 GitHub 安装\ndsh plugin --profile web add github:baiiii279/dsh-wallpaper-local\n\n# 方式三:本地目录安装(开发)\ndsh plugin --profile web add file:C:/path/to/dsh-wallpaper-local\n\n# 方式四:手动放入 profile\n# 把整个目录复制到 ~/.dsh/profiles/web/node_modules/@baiiii/dsh-wallpaper-local/\n# 并在 ~/.dsh/profiles/web/cordis.patch.yml 加入:\n# - insert:\n#     - id: dsh-wallpaper-local\n#       name: '@baiiii/dsh-wallpaper-local'\n```\n\n然后**重启 dsh web**(组合级插件需要重启生效)。\n\n## 首次使用准备(可选但推荐)\n\n插件开箱即用(能列出文件夹里的图片与视频),但要获得完整体验,建议运行一次预生成脚本(`tools/`)——它们会生成缩略图、图片尺寸/亮度元数据,并从 `scene.pkg` 提取真实壁纸:\n\n```sh\n# 需要 Node + sharp(可从 DSH profile 的 node_modules 引用,或 npm i -g sharp)\nnode tools/make-thumbs.js    # 生成缩略图 + meta.json(方形/低清过滤依赖它)\nnode tools/extract-pkgs.js   # 从 scene.pkg 提取壁纸纹理(pkg-meta.json)\n```\n\n> 不跑脚本也能用,但:方形/低清图片不会自动过滤、没有分辨率角标、不会有\"我的壁纸\"里提取的高清图、网格缩略图加载会稍慢。\n\n## 平台与权限\n\n- **平台**:仅 Web profile(`dsh web`)可用;Electron 桌面端(`file://` 加载)不支持。\n- **Windows**:自动读 Steam 注册表 + `libraryfolders.vdf` 定位壁纸目录(支持多 Steam 库)。\n- **macOS/Linux**:无 `reg` 命令,必须手动在配置里写 `root`(见下)。\n- **权限**:插件需要读取壁纸目录(Steam 工坊内容)并写入数据目录(`~/.dsh/wallpaper-data`);视频以 `node:fs` 流式直读,绕过 DSH 文件沙箱。\n\n## 使用\n\n1. 重启后在侧栏底部点图片图标(或 设置 → 壁纸)\n2. 挑选器分两组:\n   - **我的壁纸**:视频壁纸(▶ 角标)与从 scene.pkg 提取的高清图(带工坊标题)\n   - **图片壁纸**:文件夹里的横屏高清图片\n3. 悬停卡片只有描边提示,点击应用;底部滑块实时调外观,自动保存\n\n## 工作原理\n\n- **Host**:`webServer` 注册 `/dsh-wallpaper/*` 路由(full/thumb/video/api),`fs` 服务读文件;视频用 `node:fs` 流式 + Range 支持\n- **Client**:主题 token 覆盖(`theme.overrideTokens` 让面板半透明)+ `sidebar.footer.action`/`shell.overlay`/`settings.section` 槽位注入 UI\n- **scene.pkg 解析**:`PKGV0006` 容器 = `{名称长度, 名称, 偏移, 大小}` 条目表;`.tex` = `TEXV0005`(TEXI 信息区 + TEXB 数据区,内含 JPEG);`tools/extract-pkgs.js` 批量提取\n- **持久化**:Host 写 `config.json`(workspace 下),Client 镜像 localStorage\n\n## 目录结构\n\n```\ndsh-wallpaper-local/\n├── package.json          # dsh.bundle + dsh.client 声明\n├── cordis.patch.yml      # 组合补丁(挂载插件行)\n├── lib/\n│   ├── index.js          # Host 半(路由/枚举/持久化)\n│   └── client.js         # Client 半(bundle,__ModuleLoader__ 格式)\n├── src/client.js         # Client 源码(esbuild 打包)\n└── tools/extract-pkgs.js # 从 scene.pkg 提取壁纸纹理的脚本\n```\n\n## 配置\n\n插件路径**自动解析,无需修改代码**:\n\n| 项 | 解析顺序 |\n|---|---|\n| 壁纸扫描根目录 | ① 插件 `config.root` → ② 自动读 Steam 注册表 `HKCU\\Software\\Valve\\Steam\\SteamPath` → ③ 兜底 `D:\\steam\\...` |\n| 数据目录(缩略图/提取/配置) | ① 插件 `config.workDir` → ② `$DSH_HOME/wallpaper-data`(默认 `~/.dsh/wallpaper-data`) |\n\n如需自定义,在 profile 的 `cordis.patch.yml` 里按 id 覆盖:\n\n```yaml\n- id: dsh-wallpaper-local\n  name: '@baiiii/dsh-wallpaper-local'\n  config:\n    root: 'E:/SteamLibrary/steamapps/workshop/content/431960'\n    workDir: 'C:/Users/you/dsh-wallpaper-data'\n```\n\n`tools/extract-pkgs.js` 支持同样的环境变量覆盖:`WALLPAPER_ROOT` / `WALLPAPER_WORK`。\n\n## 已知限制\n\n- `.dxs` 是 DirectX 着色器,浏览器无法渲染(已确认不可用)\n- 纯着色器/DXT 纹理的场景壁纸没有内嵌静态图,只能用封面图\n- 4K 视频背景较吃 GPU/内存\n\n## License\n\nMIT\n","readmeFilename":"README.md"}