dsh-glass-skin:DeepSeek Harness 的透明玻璃皮肤

前言

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。

  1. token 层:通过 ctx.theme.overrideTokens('glass-skin', {...}) 定义 { light, dark } 一对 token,落在 body 内联样式上。包括表面、侧栏/菜单/输入框/气泡、弹层磨砂、玻璃边等。

  2. 样式层:client.js 里的 CSS,按段组织:画布与极光、色调层、框架与侧栏结构、展开侧栏整列磨砂、输入框卡片与消息气泡、控件玻璃片、新会话描边、无障碍降级、整页工具页补磨砂。

  3. 画布与设置页:设置 → 玻璃皮肤 独立设置页,选图/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 既能看清背景,又保持控件清晰易点。目录页与源码仓库见下方。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜