其他
完整应用
deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
为 DSH Web GUI 添加可自定义的背景图片:支持远程图片 URL 和本地图片(文件夹浏览),带清晰度 / 压暗 / 模糊调节;设置面板保持默认外观,不跟随背景变化。
两种安装形态:
| 形态 | 文件 | 特点 |
|---|---|---|
| 静态安装版(推荐) | package.json + cordis.patch.yml + lib/ |
作为 DSH 插件包装入 Web profile,重启后常驻,不依赖会话 |
| 动态插件版 | host.js + client.js + define.json |
通过 cordis_define 在会话中动态加载,重启后消失 |
| 文件 | 内容 |
|---|---|
package.json |
插件包清单(dsh.client 声明 + dsh.bundle.patch) |
cordis.patch.yml |
挂载声明:把插件行插入 Web profile 组合树 |
lib/index.js |
Host 半边(静态版):webServer 提供 /dsh-bg/api/list、/dsh-bg/api/set、/dsh-bg/api/img 路由 |
lib/client.js |
Client 半边(静态版):设置页 UI,fetch 直连 API 路由 |
host.js |
动态版 Host 源码(cordis_define 的 code.host) |
client.js |
动态版 Client 源码(cordis_define 的 code.client) |
define.json |
动态版完整重新安装载荷 |
README.md |
本文档 |
# 在 DSH 所在机器上,把本目录作为本地开发插件装入 web profile:
dsh plugin --profile web add link:<本目录绝对路径>
# 例:dsh plugin --profile web add link:D:\DSH插件\dsh-bg-plugin
然后重启 DSH(dsh web)。启动后:
/plugins/dsh-bg-plugin/client.js,Host 注册 /dsh-bg/api/* 路由。卸载:
dsh plugin --profile web remove dsh-bg-plugin
读取 define.json 作为 cordis_define 参数(plugin.kind: 'existing'、pluginId: 'dshbg-1';若不存在则 kind: 'new' + idPrefix: 'dshbg'),再用返回的 packageId 执行 cordis_run 并在 GUI 批准。
settings.section,id dsh-bg)<video> 元素渲染,object-fit: cover 等比铺满屏幕(自动裁掉超出部分,不拉伸、不裁剪、无需框选),静音循环自动播放$DSH_HOME/.dsh-bg-state.json(默认 C:\Users\<你>\.dsh\.dsh-bg-state.json);刷新页面、重启 DSH 后自动恢复状态并重应用背景(含上次的本地媒体与裁切区域)。{fx,fy,fw,fh} 存储并持久化。背景渲染用纯 CSS(calc/max + vw/vh)把裁切区域等比放大铺满视口、区域中心对准屏幕中心,窗口缩放自动跟随。视频不使用该机制。tool.view.cordis,动态专属座位,静态版不含);动态版为会话级,不持久化。body::before 固定层(position:fixed; z-index:-1),承载图片 + 压暗渐变遮罩 + 可选模糊(静态版用 <style> 元素注入,动态版用 styles.insert)。theme.overrideTokens 把 4 个背景 token(--dsw-alias-bg-base / -layer-1 / -layer-2 / --dsw-specific-sidebar-fill)覆盖为半透明色(浅色/深色各一套),让图片从应用底层透出;清晰度越高表面越透明。[role="dialog"][aria-modal="true"])内部重新声明这 4 个 token 的 DSH 原始色值(取自设计平台基础样式),因此面板始终 100% 不透明、保持默认外观。/dsh-bg/api/* 路由(ctx.effect 内注册,随插件生命周期清理),用 fs 服务读取图片字节(fs.contains 防路径穿越),客户端以相对 URL 作为 CSS 背景。fs 沙箱只拦截写入,读取任意目录均可;若「浏览文件夹」的系统选择器不可用,可直接粘贴文件夹路径。webServer.register 返回的注销函数不会自动随插件 fiber 清理,必须包在 ctx.effect(() => webServer.register(...)) 里,否则停止/更新后路由泄漏,下次注册同路径会报 duplicate exact route。/dsh-bg/img-<random>),避免与旧版本残留路由冲突;静态版使用固定路径(进程重启即全新)。slots.register、theme.overrideTokens 由 client runner 自动挂到 fiber(动态版),静态版同样依赖 cordis 服务自身的生命周期。btoa 是 UTF-8 编码,不能用于二进制图片转 base64;本地图片走 HTTP 路由而非 RPC 传字节。dsh plugin --profile web add link:<路径> 用 pnpm 建立 junction 链接(NTFS),改动源码目录即可热更新,重启 DSH 生效。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。