给桌面窗口换背景图,右下角实时调参
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add diancangdu/dsh-desktop-background该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件写入剪贴板(不计风险)
查看扫描证据(共 5 处,展示前 5 条)
- 写入剪贴板client-script.js:286
navigator.clipboard.writeText(text).then(done, done); - 写入本地文件index.js:32
appendFileSync(LOG, JSON.stringify({ ts: new Date().toISOString(), ...entry }) + '\n', 'utf8'); - 读取本地文件index.js:62
if (!existsSync(path)) return { uri: null, reason: 'not-found' }; - 读取本地文件index.js:63
const bytes = readFileSync(path); - 读取本地文件index.js:265
const source = readFileSync(file, 'utf8');
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 桌面窗口换背景图
- 右下角实时调参
- 零网络请求
DeepSeek Harness 原生插件:给桌面窗口加背景图,带实时调节面板;零网络请求
README
由 DeepSeek 最新模型翻译生成dsh-desktop-background
给 DeepSeek Harness(DSH)桌面窗口加背景图的原生插件,附带右下角实时调参按钮。
零外部依赖、零网络请求。
当前版本:v1.0.0 —— 已在实际的 DSH 桌面端验证有效。变更历史见 CHANGELOG.md。
为什么需要它(而不是随便找个主题插件)
DSH 桌面窗口的 index.html 不经过宿主 web server:
- Electron 主进程把 dsh-app://app/ 的 /、/index.html、/assets/ 交给一个直接从磁盘读 dsh-web-frontend/dist/index.html 的函数,只替换一句 __DSH_BOOT_READY__
- ⇒ webServer.tapIndex() 的变换在桌面窗口永不执行
- ⇒ 凡是把样式全部交给 tapIndex 注入的主题插件,在桌面窗口都会静默失效:设置卡片照常出现(那是纯客户端 slot 注册),但界面毫无变化
能到达桌面窗口的只有两条路:
1. 结构化 index 注入行 —— 桌面窗口的 boot payload 就是 injections: ctx.webServer.collectIndexInjections(),而页面侧解释器里有 case "style" 与 case "script"
展开完整文档(README 剩余 1 节)
dsh-desktop-background
给 DeepSeek Harness(DSH)桌面窗口加背景图的原生插件,附带右下角实时调参按钮。
零外部依赖、零网络请求。
当前版本:v1.0.0 —— 已在实际的 DSH 桌面端验证有效。变更历史见 CHANGELOG.md。
为什么需要它(而不是随便找个主题插件)
DSH 桌面窗口的 index.html 不经过宿主 web server:
- Electron 主进程把 dsh-app://app/ 的 /、/index.html、/assets/ 交给一个直接从磁盘读 dsh-web-frontend/dist/index.html 的函数,只替换一句 __DSH_BOOT_READY__
- ⇒ webServer.tapIndex() 的变换在桌面窗口永不执行
- ⇒ 凡是把样式全部交给 tapIndex 注入的主题插件,在桌面窗口都会静默失效:设置卡片照常出现(那是纯客户端 slot 注册),但界面毫无变化
能到达桌面窗口的只有两条路:
1. 结构化 index 注入行 —— 桌面窗口的 boot payload 就是 injections: ctx.webServer.collectIndexInjections(),而页面侧解释器里有 case "style" 与 case "script"
2. 客户端插件自己注入
本插件走第 1 条,并且把背景图内联成 data URI,于是完全不依赖路由 / 鉴权 cookie / CSP / 任何可能在桌面窗口里失败的请求。
安装
把插件目录放到 profile 下,然后在 profile 的 cordis.patch.yml 里加一个 insert:
- insert:
- id: desktop-background
name: './desktop-background/index.js'
config:
lightImage: 'D:/pictures/light.jpg'
darkImage: 'D:/pictures/dark.jpg'
maskOpacity: 0.30
surfaceOpacity: 0.08
⚠️ name 必须指向具体文件(./desktop-background/index.js)。写成目录会触发 Node ESM 的 ERR_UNSUPPORTED_DIR_IMPORT,插件静默不加载、没有任何报错。
改完重启 DSH。profile 配置只在进程启动时读一次,没有热重载。
配置
| 键 | 默认 | 说明 |
| lightImage | — | 浅色模式的背景图(绝对路径,建议 jpg ≤ 1920×1080) |
| darkImage | — | 深色模式的背景图 |
| image | — | 只给一张时的回退值 |
| maskOpacity | 0.35 | 压在图上的一层暗纱,0 = 原图,1 = 全遮。用来压亮度保可读性 |
| surfaceOpacity | 0.10 | 其余面板的不透明度。想背景更明显就调小这个 |
| inputOpacity | 跟随 surfaceOpacity | A 输入框(composer 输入框) |
| todoOpacity | 跟随 surfaceOpacity | B 待办框条(输入框上方那条任务进度面板) |
| optionOpacity | 跟随 surfaceOpacity | C 答案选项(提问卡里的选项行) |
| todoScope | precise | B 的作用范围:precise 只影响待办框条 / broad 连同菜单、对话框一起变 |
| optionScope | precise | C 的作用范围:precise 只影响选项行 / broad 连同预设卡、选择器一起变 |
三个分区旋钮不写就跟随 surfaceOpacity,所以不配它们时行为与只有两个旋钮时完全相同。
三处分区是怎么定位的(不是猜的)
| 区域 | 锚点 | 依据 |
| A 输入框 | token --dsw-specific-input-major | composer 用它;提问卡、审批卡、它们的文本行共用同一个 token |
| B 待办框条 | [data-testid="todo-panel"] | 待办面板挂在插槽 conversation.input.dock(输入框上方),自带的稳定属性 |
| C 答案选项 | [data-question-key] | 提问卡根节点带这个属性;选项是 role="radio|checkbox" 的按钮 |
precise 与 broad 的实际差别
precise(默认)把 token 声明在目标元素本身上 —— 只有该元素及其子树看得到新值,所以菜单、对话框、预设卡都不受影响,这才是真正「分开设置」。
broad 把同一份声明提升到 html body,于是所有共用该 token 的表面一起变:
- B 会同时改写 --dsw-specific-menu 和 --dsw-menu-surface-fill 两个名字。⚠️ 这里踩过坑:主题里 --dsw-specific-menu 只是 --dsw-menu-surface-fill 的别名(--dsw-specific-menu: var(--dsw-menu-surface-fill)),而前端外壳里共享的菜单材质直接消费别名背后的真身:
.material { background: var(--dsw-menu-surface-fill) }
只改别名时,真正吃真身的菜单与对话框一动不动 —— 表现为「勾了『同类一起变』却什么都没发生」。
两个都写,菜单与对话框才会跟着变。
- C 改写 --dsw-alias-bg-module-platform,它同时被 agent 预设卡、模型选择器、轨迹视图、快捷键面板、设置页*等约 15 个包消费。
⚠️ 所以 broad 的效果不在你正盯着的那一处(那一处由 precise 规则管,两种模式下长得一样),而在别处的同类表面上。勾上之后,请打开一个菜单或对话框来看效果。
两种模式都已生成为 CSS 规则,broad 那组由 上的属性门控,因此切换范围是实时的。
为什么面板不透明度要单独一个旋钮
DSH 的界面是多层半透明表面叠加(外壳 → 布局 → 会话 → 正文),背景图只能按各层透过率的乘积活下来。实测把所有层都设成 0.45 时,聊天区的像素统计是 (26,26,30) —— 跟没有背景几乎没有区别。所以「暗纱」和「面板」必须是两个独立的值。
侧栏固定为 surfaceOpacity + 0.15。输入框已有独立旋钮,不再叠加旧的 + 0.35。
实时调参
插件同时注入一个 script 行,在右下角放一个圆形按钮。点开是一张调参卡片:
- 五个滑块(暗纱 / 面板 / 输入框 / 待办框条 / 答案选项),拖动立即生效,不用重启
- B、C 各带一个「同类一起变」开关,对应 precise / broad,切换同样实时
- 值存在 localStorage,跨重启保留
- 「复制配置」把当前值输出成可粘贴的 cordis.patch.yml 片段;想固化成默认值就用它
- Ctrl+Alt+B 开合面板
面板只写三个 CSS 变量(--dbg-mask-light / --dbg-mask-dark / --dbg-surface),所有颜色与推导公式都留在宿主样式里 —— 这样不存在两份真值。
不含背景图
仓库里没有任何图片。DSH 是通用宿主,背景图请自备(注意版权)。
maskOpacity 与 surfaceOpacity 的调参不依赖具体图片,换图只要改配置里的路径。
目录
index.js 宿主半侧:读图 → 内联 data URI → 生成样式;推 style + script 两行注入 client-script.js 浏览器半侧:右下角按钮 + 调参卡片(被 index.js 读入后作为 script 行注入)
已知边界
- 只在 DSH 桌面窗口验证过;同样的结构化行在浏览器载体(dsh web 打印的 URL)下也应当生效,因为那条路径两者都会执行
- surfaceOpacity 是对「多层叠加」的近似补偿:DSH 改版增删层级时,可能需要重新调这个值
- 面板的打开/收起状态与调参值存于浏览器 localStorage;换 profile 或清缓存会回到配置文件的默认值预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
diancangdu/dsh-desktop-background
给桌面窗口换背景图,右下角实时调参
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,332已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,153已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,244已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,046已汉化DSH
71.1
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,480已汉化DSH
71