deepseek-harness
starsstreaming/beautiCode为 DSH Web 与 Desktop 设置本地图片与 MP4 视频背景(也支持 Codex、Cursor、豆包、WorkBuddy):侧栏「背景」面板、可保存命名主题、声音开关、恢复上次背景、只留背景的摸鱼模式,以及 /bg、/bg-theme、/bg-clear 命令。
DSH Web 界面的毛玻璃主题:磨砂半透明表面,可调不透明度、模糊半径与饱和度,支持氛围光与配色方案,并可设置自定义背景图片(填充、适应、拉伸、平铺、居中与裁剪),全部参数保存在设置页中。
给 DeepSeek Harness Web 界面加上「半透明 + 背景模糊」的毛玻璃外观,并在 设置 → 自定义主题 里提供一个完整的调参页(启用 / 不透明度 / 面板不透明度 / 模糊 / 饱和度 / 氛围光 / 配色 / 自定义背景图片)。
出厂默认即用户要的 80% 半透明(opacity: 20,即表面 20% 不透明); 信息面板单独一档 `panelOpacity: 85`,保证弹层和文件预览里的字看得清。
升级之前先看「升级」一节。 把 .../main.tar.gz 当安装地址时,pnpm 会把那个 tarball 的 integrity 和 version 一起写进 lockfile —— main 会动,你的依赖不会跟着动。重装多少次都还是当初装下的那个版本。
npm(推荐)
dsh-glass-ransworkcodeload 固定版本(不想用 npm 时)
https://codeload.github.com/rans725/dsh-glass-ranswork/tar.gz/refs/tags/v1.1.1本地目录:把仓库 zip(Code → Download ZIP)或 Release 的 .tgz 解压, 填含 package.json 的那层目录,例如 D:\Plugins\dsh-glass-ranswork。
v1.1.1);有新版时多一行提示。本包是一个 DSH bundle(package.json 的 dsh.bundle.patch 指向 cordis.patch.yml,dsh.client 声明浏览器半侧),不需要构建、没有依赖。
在 profile 目录里直接装:
pnpm add dsh-glass-ranswork为什么推荐 npm:装 npm 的包,插件市场能感知到新版本并推送更新提醒。 下面那些 URL 安装方式虽然能装,但永远收不到更新推送 —— 市场对 URL 安装 没有 registry 身份可比,宁可如实报「无更新」也不猜(dshmarket #768)。
从旧版 URL 方式升上来的用户:lockfile 里记的还是 URL,改 npm 后仍然收不到推送。
需要重装一次:pnpm remove dsh-glass-ranswork && pnpm add dsh-glass-ranswork好处是版本可以写范围(^1.1.1),升级由 pnpm 和市场的更新提醒共同覆盖。
pnpm add https://codeload.github.com/rans725/dsh-glass-ranswork/tar.gz/refs/tags/v1.1.1好处是版本可以写死在 tag 里,升级时换 tag 号即可;坏处是不能写成 ^1.1.1 这种范围(pnpm 无从解析),所以「有新版本」的提示靠设置页顶部那一行。
https://codeload.github.com/rans725/dsh-glass-ranswork/tar.gz/refs/tags/v1.1.1为什么不写 https://github.com/.../archive/...:
github.com 只负责 302 跳到 codeload.github.com;主站被墙 / 不稳时,pnpm 的 HEAD 请求会 ETIMEDOUT,而真正下发 tar 的 codeload 往往是通的;
版本号必须写进 URL。 refs/heads/main 看着“永远最新”,但 lockfile 一旦记录了这个 spec 的 integrity,pnpm 不会为了同一个 spec 重新解析远端。
升级 = 换成新 tag 的 URL 再装一次(见「升级」)。
为什么不推荐 `github:` 前缀:pnpm 解析github:依赖会调用系统git;
Windows 上没装 Git 就会报 git ls-remote failed。上面的地址由 pnpm 直接下载解包,不需要 Git。
到 Releases 下载 dsh-glass-ranswork-1.1.1.tgz,安装时填它的本地路径,或直接填资源地址:
https://github.com/rans725/dsh-glass-ranswork/releases/download/v1.1.1/dsh-glass-ranswork-1.1.1.tgz资产地址同样先经过 github.com。主站不通时,改用上面的 codeload 直链。两种来源都可以:
dsh-glass-ranswork-main/);dsh-glass-ranswork-1.1.1.tgz(解压后是 package/)。把含 `package.json` 的那一层目录放到任意位置,在安装入口填它的绝对路径,例如:
D:\Plugins\dsh-glass-ranswork安装器会把依赖写进当前 profile 的 package.json 并激活 bundle,不需要手动改配置文件。
slots / locale / theme)和宿主 webServer,没有私有 API、没有原生依赖;DSH 大版本升级后如果主题 token 改名, 退化结果是「某块颜色/模糊不生效」,不会崩。
纯装饰性的卡片前缀上依赖哈希;凡是「排除某个结构容器」的规则一律用 稳定 data 属性或结构判据(详细的坑见 v1.1.1 更新日志)。
设置 → 插件 → 卸载。插件不会改 DSH 本体;设置文件在 $DSH_HOME/glass-theme.json,壁纸在 $DSH_HOME/glass-theme-bg., 删掉即可彻底复位。
先确认当前版本:设置 → 自定义主题 顶部有 v1.1.1(旧版宿主没有这行, 可以在 profile 的 node_modules/dsh-glass-ranswork/package.json 里看)。
设置页顶部那行:v1.1.1 后面如果出现「有新版本 v1.2.0」的链接,点它去 Release。 宿主半侧每 6 小时静默问一次 api.github.com 的最新 Release(失败 10 分钟后重试, 全程不打扰;断网时只显示版本号)。
三步:
package.json 里的旧 spec 换成新 tag 的 URL;pnpm-lock.yaml 里对应的 dsh-glass-ranswork@... 条目(或整份 lockfile);pnpm install,重启 DSH。或者一步到位:
pnpm add https://codeload.github.com/rans725/dsh-glass-ranswork/tar.gz/refs/tags/v1.1.1pnpm 对 tarball 依赖记录的是 spec + integrity + version。spec 没变(还是 .../heads/main.tar.gz)时,它认为这份依赖已经解析过,直接用 lockfile 里的 旧包,不会去远端重新 HEAD。main 更新了、tag 打了,都和你的 lockfile 无关。
只有下面两种情况会真正换包:
pnpm install --force)。现象 · 原因 · 处理 重装后版本不变 · lockfile 钉住了旧 spec · 换成新 tag 的 URL HEAD https://github.com/.../main.tar.gz ... ETIMEDOUT · github.com 不通 · 改用 codeload 直链 安装返回 changed:false,日志只有 fetch failed · 旧依赖也在拉 github.com,一个失败整次回滚 · 先从 package.json 删掉旧条目再装 设置页没有版本行 · 宿主半侧还是旧版 · 重启 DSH(浏览器半侧热更新,宿主不会)
安装器目前只会把 fetch failed 透出来,不会告诉你是哪个 URL 失败。遇到时先看 profile 的package.json里还有没有github.com/.../archive/...
的旧条目 —— 通常就是它。
字段 · 默认 · 区间 · 说明 enabled · true · — · 关闭后完全恢复原生外观 opacity · 20 · 0–100 · 表面不透明度 %;20 = 80% 半透明,100 = 不透明 panelOpacity · 85 · 0–100 · 信息面板不透明度 %:弹层、文件预览、统计/费用面板、Modal 内容 blur · 32 · 0–80 · 三列骨架背后那层的模糊半径(px) overlayBlur · 32 · 0–80 · 浮层模糊半径(px):弹层、已归档面板、费用面板、Modal。运行时夹到 56px composerBlur · 24 · 0–80 · 发送框 / 任务卡片模糊半径(px)。运行时夹到 40px;设为 0 关闭这两处 previewOpacity · 85 · 0–100 · 文件预览 / 改动卡片不透明度 %:文件 diff、已编辑文件卡、文档预览 saturate · 180 · 100–200 · 背景饱和度 % ambient · true · — · 是否绘制氛围光背景 accent · aurora · aurora / ocean / sunset / mono · 氛围光配色 bgImage · '' · — · 背景图 token(空串 = 没设图)。只是缓存键,不是文件名 bgFit · cover · cover / contain / stretch / tile / center · 显示方式:填充 / 适应 / 拉伸 / 平铺 / 居中 bgCrop · {x:0,y:0,w:1,h:1} · 每项 0–1 · 自定义裁剪区域(占原图比例,整图 = 0,0,1,1) bgDim · 30 · 0–100 · 背景蒙层不透明度 %(浅色盖白、深色盖黑) bgGuard · true · — · 文字保护:有壁纸时给文字加光晕 + 加深次要文字(不加任何底色) bgAutoTone · true · — · 跟随图片明暗:暗图切深色主题、亮图切浅色,让文字颜色和图片对得上 bgBaseTheme · '' · light / dark / system · 内部状态:自动切换前用户的明暗偏好(空 = 没切过),删图/关开关时还原 bgLumaGrid · '' · — · 内部状态:上传时算好的 32×32 亮度图(base64),自动明暗按裁剪区域查表用
设置页常规是 7 个滑块:表面不透明度 / 面板不透明度 / 背景模糊 / 浮层模糊 / 发送框·任务模糊 / 文件预览·改动卡片 / 背景饱和度。设了背景图之后多一个 「背景蒙层」滑块、两个开关(文字保护 / 跟随图片明暗),并多出整行宽的 「自定义裁剪」区(设图前这些不显示,避免摆一个当前没有作用的控件)。
发送框与任务卡片的底色没有单独一档:它就是 --dsw-specific-input-major (属 SURFACES),跟着「表面不透明度」走。曾经有过 composerOpacity 滑块,实现方式是给卡片刷一层 color-mix(白 N%) 的白底 —— 行内 background 会顶掉卡片自己的 token,拖「表面不透明度」时发送框纹丝不动, 所以已删除。挡住背后的字靠模糊,不靠颜色。
设置持久化在 $DSH_HOME/glass-theme.json(宿主半侧用「临时文件 + rename」原子写入; 坏文件按默认值处理,删掉即可复位)。范围校验以宿主半侧为准。