前言¶
DeepSeek Harness(DSH)的 Web 界面默认是一张白板或简单的背景。对习惯沉浸式工作区的开发者来说,想要一张清晰的壁纸,又不想让控件被一层厚重的滤镜糊住,会很纠结:要么背景失真,要么文字看不清。dsh-glass-skin 把两者分开——壁纸保持清晰,控件换成半透明磨砂片。
是什么¶
dsh-glass-skin 是一个给 DSH Web UI 加上「透明玻璃」效果的插件。它以极光或自选图片作为画布,侧栏、弹层、输入框、消息气泡都变成半透明磨砂片,且只在控件上生效,画布本身不染色、不放大变形。维护者为 abyss2021。
核心功能¶
- 壁纸清晰,磨砂只在控件上:画布不做滤镜、不加颗粒,按钮、会话行、选项卡、输入框卡片、菜单弹层与对话框遮罩各自成片。
- 展开侧栏是一整块玻璃:左右侧栏展开时整列磨砂,面板内控件自动退回原生平面,不叠两层玻璃;收起后恢复裸照片 + 逐控件玻璃片。
- 新会话是透明描边:只保留自带的 0.5px 边框,按钮区域读到的就是侧栏那块磨砂;hover 用原生半透明色。
- 整页工具页同款磨砂:进入「插件」「自动化任务」等整页内容时,自动补上与侧栏同配方的磨砂,正文不再压在照片上。
- 一套配方两种明暗:颜色全走
--dsw-*token,深浅只换值,不会出现「深色玻璃 + 浅色文字」。 - 纯客户端、零构建:只有一个
client.js,没有依赖、没有构建步骤;卸载即完全还原。 - 可调:背景图(本地文件或 URL)、整站浓度、左右侧栏磨砂强度都在设置页里实时生效。
- 无障碍:尊重
prefers-reduced-motion与prefers-reduced-transparency。
安装与启用¶
要求:带 Web 界面的 DSH profile(dsh web);pnpm 在 PATH 上;DSH 版本 0.2.1-rc.2。
仓库:https://github.com/abyss2021/dsh-glass-skin
命令行(推荐)
dsh plugin --profile web add github:abyss2021/dsh-glass-skin
完整地址等价:git+https://github.com/abyss2021/dsh-glass-skin.git。安装会自动把插件加进 profile 的 bundle 列表并启用。
Web 界面
侧栏 → 插件 → 添加插件,粘贴 github:abyss2021/dsh-glass-skin;装完在插件页启用,刷新页面即可。
plugin_manager 工具
install_bundle,target 填 github:abyss2021/dsh-glass-skin;set_bundle enabled:false 停用,remove_bundle 卸载。
更新和卸载
# 更新:先卸载再装(git 依赖跟随仓库提交)
dsh plugin --profile web remove @local/glass-skin
dsh plugin --profile web add github:abyss2021/dsh-glass-skin
本地开发
dsh plugin --profile web add /path/to/glass-skin # 目录链接,改 client.js 刷新即生效
直连 github.com 慢或被拦时,可给 pnpm 配代理,或改用 GitHub tarball 直链:
dsh plugin --profile web add https://codeload.github.com/abyss2021/dsh-glass-skin/tar.gz/refs/heads/main
(Web 插件页只认 git 地址或 .tar.gz 结尾的链接,这条请走命令行。)
典型用法¶
背景与浓度¶
在设置 → 玻璃皮肤 中配置:
| 项 | 说明 |
|---|---|
| 选择文件 | 浏览器内压到最长边 2560px、JPEG 0.86 存 localStorage(glass-skin:wallpaper) |
| 用此 URL | https://… 或 data:,回车生效 |
| 恢复渐变 | 清空壁纸,回到内置极光 |
| 浓度 | 色调层 0–80%,默认 44(glass-skin:tint);照片太亮、看不清字就往上调 |
| 展开的侧边栏 | 左 / 右各 0–100%,默认 20(glass-skin:left-panel / glass-skin:right-panel) |
选中图片后,画布不再漂移并铺满视口(inset: 0 + background-size: cover),四边齐平,不会在边缘露出极光或色调。data URL 超过约 3.8MB 时不写 localStorage,只在本次会话生效,刷新后回到渐变。
明暗¶
设置页顶部的外观(深色 / 浅色)切换的是官方 ui-theme 偏好,所以文字配色和玻璃配方同源;官方 Appearance 那行由插件接管隐藏,卸载后自动回来。
调参¶
只改 client.js,改完刷新页面(无需重装):
| 想要 | 改哪里 |
|---|---|
| 更透 / 更实(整站) | CSS 里 :root 的 --glass-tint-light / --glass-tint-dark |
| 更透 / 更实(弹层、卡片) | TOKENS 里 --dsw-alias-bg-layer-*、--dsw-specific-* 的 alpha |
| 弹层更糊 | --dsw-menu-backdrop-filter 的 blur() |
| 换极光配色 | CSS 里 :root 与 body[data-ds-dark-theme] 的 --glass-aurora |
| 新会话恢复实底 / 换悬停色 | 第 8b 段;悬停色改 :hover 里的 --dsw-alias-interactive-bg-hover |
| 整页工具页浓度 | 默认跟随「展开的侧边栏 → 左侧」;单独调就设 --glass-main-top / --glass-main-bottom |
| 换背景图 | 设置页(或 localStorage glass-skin:wallpaper) |
实现与兼容性¶
dsh-glass-skin 纯客户端三层:token、样式表、画布与设置页。Host 半侧只有一个空的 apply。
-
token 层:通过
ctx.theme.overrideTokens('glass-skin', {...})定义{ light, dark }一对 token,落在 body 内联样式上。包括表面、侧栏/菜单/输入框/气泡、弹层磨砂、玻璃边等。 -
样式层:
client.js里的CSS,按段组织:画布与极光、色调层、框架与侧栏结构、展开侧栏整列磨砂、输入框卡片与消息气泡、控件玻璃片、新会话描边、无障碍降级、整页工具页补磨砂。 -
画布与设置页:设置 → 玻璃皮肤 独立设置页,选图/URL、浓度、左右侧栏强度,全部存 localStorage,没有 Host 状态。
兼容性:
- DSH:在 0.2.1-rc.2 上开发验证;只使用稳定的
ctx.theme.overrideTokens/ctx.theme.setTheme、ctx.slots.register/inject、ctx.locale.register、ctx.on('theme/change')接口。 - 上游耦合:类名子串选择器(
_sidebarCol、_composerSeat、_card、_bubble、_newSession)和插槽锚点(data-slot='main'/data-slot='main.conversation')。上游重命名时对应特效会静默失效(不报错、不白屏),按新名字改子串即可。 - 性能:blur 只用在弹层、对话框、输入框卡片、消息气泡四处;低配机掉帧时优先去掉气泡那条。
- 降级:
prefers-reduced-motion停漂移,prefers-reduced-transparency撤壁纸与 blur。
适用场景与注意¶
- 适合想要清晰壁纸、又需要控件可读性的 DSH Web 用户。
- 插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证(MIT)。
短结尾¶
dsh-glass-skin 把壁纸和控件磨砂分开,让 Web UI 既能看清背景,又保持控件清晰易点。目录页与源码仓库见下方。