用图片、GIF 或视频自定义应用背景
28.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add youzhoujiMrLiu/dsh-ui-wallpaper该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 32 处,展示前 29 条)
- 发起网络请求src/client/api.ts:66
const response = await fetch('/dsh-wallpaper/media', { - 发起网络请求src/client/api.ts:116
const response = await fetch(url, init) - 写入本地文件src/host/media.ts:47
await mkdir(root, { recursive: true }) - 写入本地文件src/host/media.ts:48
await writeFile(staging, bytes) - 写入本地文件src/host/media.ts:49
await rename(staging, target) - 读取本地文件src/host/media.ts:56
const info = await stat(fromPath) - 写入本地文件src/host/media.ts:58
await mkdir(root, { recursive: true }) - 写入本地文件src/host/media.ts:60
await rename(fromPath, target) - 读取本地文件src/host/media.ts:94
return (await stat(path)).isFile() - 删除本地文件src/host/media.ts:104
if (filePath !== keep) await rm(filePath, { force: true }) - 读取本地文件src/host/we.ts:78
readFile(path: string): Promise<string> - 读取本地文件src/host/we.ts:79
stat(path: string): Promise<{ isFile(): boolean; size: number } | undefined> - 读取本地文件src/host/we.ts:94
exists: (path) => existsSync(path), - 读取本地文件src/host/we.ts:95
readFile: async (path) => readFile(path, 'utf8'), - 读取本地文件src/host/we.ts:98
const info = await stat(path) - 读取本地文件src/host/we.ts:128
if (path !== undefined && path !== '' && existsSync(path)) return path - 发起网络请求src/host/we.ts:139
const response = await fetch(url, { signal }) - 写入本地文件src/host/we.ts:154
await mkdir(toDir, { recursive: true }) - 写入本地文件src/host/we.ts:275
await mkdir(installDir, { recursive: true }) - 删除本地文件递归src/host/we.ts:289
await rm(work, { recursive: true, force: true }).catch(() => {}) - 删除本地文件src/host/we.ts:669
await rm(output, { force: true }).catch(() => {}) - 写入本地文件src/host/we.ts:764
await mkdir(this.opts.mediaStore.root, { recursive: true }) - 写入本地文件src/host/we.ts:767
await writeFile(staging, JSON.stringify({ wallpaperEnginePath: overrides.wallpaperEnginePath, ffmpegPath: overrides.ffmpegPath }, null, 2)) - 写入本地文件src/host/we.ts:768
await rename(staging, path) - 执行外部命令来自配置/变量src/host/we.ts:777
execFile(command, args, { cwd: options.cwd, timeout: options.timeoutMs, windowsHide: true, maxBuffer: 4 * 1024 * 1024 }, (error, stdout, stderr) => { - 执行外部命令来自配置/变量src/host/we.ts:796
const child = spawn(exe, args, { windowsHide: true }) - 写入本地文件src/host/we.ts:871
await rename(fromPath, toPath) - 删除本地文件src/host/we.ts:876
await unlink(fromPath) - 删除本地文件src/host/we.ts:915
await rm(file, { force: true }).catch(() => {})
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-home-paths@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 图片自定义背景
- GIF动态背景
- 视频背景
仿 Wallpaper Engine 的壁纸插件,给 DeepSeek Harness 网页界面换自定义背景,支持图片、GIF 和视频
README
由 DeepSeek 最新模型翻译生成dsh-ui-wallpaper
DeepSeek Harness Web GUI 的壁纸插件,仿照 Wallpaper Engine:把任意本地图片、GIF 或视频设为自己的自定义背景,应用表面转为半透明让壁纸透出,并在设置中提供「壁纸」页面用于选择、预览与管理。
效果图
设置界面
壁纸效果
皮肤由本包拥有的三个独立贡献组成:
- Token 叠加层 — ctx.theme.overrideTokens() 为 --dsw-alias-bg-base 与 --dsw-specific-sidebar-fill 在深浅两套色板各叠加 60% 半透明混合。折叠按 token、按色彩模式进行,用户的深浅色偏好不受影响;卸载插件即恢复原始不透明 token。
- 背景层 — shell.overlay 注册项把固定、点击穿透的媒体面通过 portal 挂到 document.body 并使用负 z-index,因此应用内容绘制在其上,而半透明列 token 让媒体透出。图片与 GIF 支持平铺、填充、适应、拉伸;视频支持填充、适应、拉伸(平铺回退为填充)。整个媒体面统一施加 CSS brightness() 滤镜实现 20%–200% 亮度调节,对图片、GIF、视频与平铺背景同样生效。
展开完整文档(README 剩余 1 节)
dsh-ui-wallpaper DeepSeek Harness Web GUI 的壁纸插件,仿照 Wallpaper Engine:把任意本地图片、GIF 或视频设为自己的自定义背景,应用表面转为半透明让壁纸透出,并在设置中提供「壁纸」页面用于选择、预览与管理。 效果图 设置界面 壁纸效果 皮肤由本包拥有的三个独立贡献组成: - Token 叠加层 — ctx.theme.overrideTokens() 为 --dsw-alias-bg-base 与 --dsw-specific-sidebar-fill 在深浅两套色板各叠加 60% 半透明混合。折叠按 token、按色彩模式进行,用户的深浅色偏好不受影响;卸载插件即恢复原始不透明 token。 - 背景层 — shell.overlay 注册项把固定、点击穿透的媒体面通过 portal 挂到 document.body 并使用负 z-index,因此应用内容绘制在其上,而半透明列 token 让媒体透出。图片与 GIF 支持平铺、填充、适应、拉伸;视频支持填充、适应、拉伸(平铺回退为填充)。整个媒体面统一施加 CSS brightness() 滤镜实现 20%–200% 亮度调节,对图片、GIF、视频与平铺背景同样生效。 - Host 路由 — POST /dsh-wallpaper/media 将所选文件原子替换存储到 $DSH_HOME/wallpaper,GET /dsh-wallpaper/media 以 nosniff 内容类型回读。路由位于浏览器信任栅栏之后(loopback 加 trustedHosts 配置);接受的格式即 src/model/wallpaper.ts 里的共享 MIME 白名单。 设置页包含实时预览、四种显示方式、亮度滑块(20%–200%,实时作用于预览与背景)与本地文件选择(image/* 加 mp4/webm/ogg 视频)以及关闭/恢复默认操作。持久化偏好是 dsh.wallpaper store;只保存 URL、显示方式与亮度倍率,因此媒体字节落在磁盘而不是 localStorage。默认壁纸仍是 /eva.jpg(外壳静态资源 apps/web/public/eva.jpg),使用填充方式。亮度功能上线前持久化的偏好没有亮度字段,读取时按 100% 显示(观感不变),首次调整后该字段即随偏好持久化。 两个布局配合项保证染色只有一层:AppFrame 不画背景(body 拥有底色)、SidebarRoot 内容区画透明(布局列画填充色)。没有本皮肤时两者外观与原来完全一致;启用后壁纸从每一列单层透出,不会层层叠加变暗。 内容卡片、代码块、输入框等凸起表面保留自身填充,文字在媒体上仍然可读。 亮度控制 设置页提供 20%–200% 的亮度滑块,拖动时实时作用于预览与背景。实现上是对整个媒体面统一施加一个 CSS brightness() 滤镜:图片、GIF、视频与平铺背景共用同一条路径,动图与视频的播放完全不受影响,浏览器在 GPU 上合成也不增加渲染负担。亮度倍率与壁纸选择、显示方式一起持久化在 dsh.wallpaper store,重启后仍然生效;「重置亮度」按钮一键恢复 100%,「恢复默认」会把亮度与壁纸、显示方式一并还原。亮度功能上线前持久化的偏好没有亮度字段,读取时按 100% 显示(观感不变),首次调整后该字段即随偏好持久化。 播放速度 设置页提供 0.1×–5× 的播放速度控制,作用于 GIF 与视频:速度值可以直接输入,也可以用 ▲/▼ 按钮步进——1× 以下每按一次变化 0.1,1× 及以上每按一次变化 0.5。视频直接使用 的 playbackRate;GIF 没有浏览器原生变速能力,插件会把它逐帧解码后在 canvas 上按所选倍率重放,1× 时保持原生 渲染、零额外开销。速度倍率与壁纸选择、显示方式、亮度一起持久化在 dsh.wallpaper store,重启后仍然生效;「重置速度」一键恢复 1×。平铺模式下的 GIF 通过重复背景图渲染、没有逐帧路径,因此该模式下速度滑块会禁用并给出提示。变速重放需要在内存中逐帧解码,超大 GIF 会占用较多内存。 安装 本包是一个 dsh bundle:其 dsh.bundle 清单会把 ui-wallpaper 行插入任何列出该包的 profile,dsh.client 清单与 lib/client.js 携带 Web GUI 的浏览器半边。 最简单的安装方式是交给 agent 完成——DeepSeek Harness 本身,或任何能访问本仓库、且目标机器装有 dsh CLI 并有终端的 agent。把下面这段提示词粘贴给它: 帮我安装 GitHub 上的 dsh-ui-wallpaper 插件(https://github.com/youzhoujiMrLiu/dsh-ui-wallpaper)。 1. 执行 dsh plugin add github:youzhoujiMrLiu/dsh-ui-wallpaper(针对特定 profile 加 --profile )。 2. pnpm ≥10 首次会拒绝 git 依赖的构建脚本:把 pnpm 打印出的包键复制进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 块,然后重新执行 add。 3. 验证 ui-wallpaper 行出现在 profile 组合里(dsh --profile --dump-config)或 Web GUI 的插件页。 4. Web GUI 刷新页面——「壁纸」页会出现在设置里;服务器重启后请再次刷新。 信任提示:git 安装会在安装机上执行本包的 prepare 构建;如需固定版本可锁定提交(github:youzhoujiMrLiu/dsh-ui-wallpaper#)。 底层走的仍是官方 git 安装路径:prepare 在安装后从 src/ 构建 lib/,自包含、不依赖 monorepo。 在 deepseek-harness 源码 checkout 内,同一插件位于 packages/client/ui-wallpaper;那里的客户端半边还需要 web-app bundle 依赖与客户端 bundle 重建,随后重启服务器并刷新页面。 Wallpaper Engine 一键导入 设置页还可以一键导入本机已安装的 Wallpaper Engine 壁纸(仅 Windows)。导入面板通过 Steam 检测 Wallpaper Engine 安装(注册表、libraryfolders.vdf 或默认目录),并直接读取工坊索引(workshopcache.json),无需任何 Steam 集成。检测会报告 WE 版本,并要求 Wallpaper Engine 2.8.0 或更高版本——旧版本会得到明确的「请更新 Wallpaper Engine」提示,而不是一个坏掉的导入。若自动检测失败(非默认布局、其他盘符),面板允许直接指定 Wallpaper Engine 目录或它的 wallpaper32.exe / wallpaper64.exe;路径在服务端校验,缺失或错误时会给出具体原因。 按类型分流导入: - 视频壁纸直接复制源文件进入媒体存储——即时、无损,且不依赖 ffmpeg。 - 场景与网页壁纸通过 WE 自带的命令行(-control openWallpaper -playInWindow)弹出一个独立的「Wallpaper Pop-out」窗口,可选应用你保存过的 WE 预设与任意属性覆盖(例如关掉时钟,避免录屏把冻结的时间烙进视频),把窗口置顶后用 ffmpeg(gdigrab,H.264)录制,随后自动关闭——你的桌面壁纸和它的 WE 设置全程不被改动。属性值与命名预设读取自 WE 的 config.json(wproperties / wpresets),并按壁纸定义的控件渲染(布尔、滑条、下拉、颜色、文本)。 - 应用类壁纸会被拒绝并给出说明。 录制需要 ffmpeg,插件让这一步零配置:当机器上没有可用的 ffmpeg 时,导入面板提供一键「下载录制组件」,从官方构建下载(优先 BtbN GitHub 发布版,gyan.dev 兜底,每个源重试两次;两者均为 GPLv3,许可证文本随可执行文件一同安装),并用 Windows 自带的 Expand-Archive 解压到 $DSH_HOME/wallpaper/ffmpeg——无需管理员权限、不修改 $PATH,面板实时显示下载进度。解析顺序:面板中用户指定的路径、插件管理的安装、$PATH、常见安装目录,面板会明确显示实际使用的是哪一个。下载地址可通过 we.ffmpegDownloadUrl 配置镜像;视频壁纸完全不依赖 ffmpeg,离线机器依然可以走直接复制路径。WE 与 ffmpeg 的路径覆盖按机器持久化在 $DSH_HOME/wallpaper/we-settings.json。 已知录制说明:录屏无声(无音轨——音乐类壁纸导入后为静音视频);弹窗实际尺寸跟随 WE 的 DPI 处理(录制会自动取偶像素);录制期间弹窗会在屏幕上显示一段时间。 Model Experience 无,因为插件只改变浏览器呈现,不注册任何 prompt、工具、schema、会话事件或 provider 请求。 KV Cache 影响 无;本包不组装也不发送任何 provider 请求。 Known Limitations and Deferred Work - 上传上限 — Host 路由最多接受 maxBytes(默认 64 MiB)。更大的视频需要在挂载它的补丁层 config 中覆盖 maxBytes。 - WE 导入仅限 Windows 且要求 WE 2.8.0+ — 旧版本 WE 会在导入面板显示「请更新 Wallpaper Engine」;非 Windows 主机显示「未安装」。 - 录屏无声 — 弹窗录制没有音轨,音乐类壁纸导入后为静音视频。 - 应用类壁纸 — WE 的 application 类型无法导入,面板会拒绝并说明原因。 - 平铺 GIF 变速 — 平铺模式使用重复背景图渲染 GIF,无法逐帧变速;该模式下速度滑块会禁用并给出提示。 - 视频平铺 — 视频使用 object-fit 渲染,因此不提供平铺;旧偏好里的平铺会解析为填充。 - 启动闪现 — 外壳启动页先于插件 bundle 加载渲染,首帧先是纯色背景,随后才出现壁纸。 - 卸载在组合层完成 — dsh plugin --profile remove dsh-ui-wallpaper 会同时移除依赖与插入的挂载层;暂无运行时开关。用户安装的 bundle 插入的行目前还不会出现在「自定义插件」标签页(该分类当前只识别用户补丁层)。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
youzhoujiMrLiu/dsh-ui-wallpaper
用图片、GIF 或视频自定义应用背景
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目