棱镜(dsh-prism-skin):基于配种子的 DSH 换肤插件

前言

在 DeepSeek Harness(DSH)里长时间写提示、看对话和代码块,界面配色如果不统一、对比度不达标,亮暗切换时还容易「闪一下」。社区里有不少换肤方案,有的只改少量变量,有的用自定义 CSS 绑宿主内部类名,宿主一升级样式就对不上。下面介绍 Wildchiken 维护的 棱镜 Prism(dsh-prism-skin):用「配色种子」重算宿主全部颜色变量,亮暗成对,并做对比度校验;同时支持壁纸、玻璃感、省电和导入导出主题文件。插件归社区开发者维护,目录站在 SkillHub,与 DeepSeek / 幻方无官方从属关系。

这是什么

棱镜是 DSH 的换肤插件(分类:趣味换装)。一句话定位:种子生成整套配色,覆盖宿主声明的颜色接口(overrideTokens),本身不用 !important,也不依赖宿主的哈希类名来改色(主题文件里自带的自定义 CSS 除外)。

核心能力(README 已写明部分)

配色与对比度

  • 一套主题覆盖宿主 224 个颜色变量(含 markdown、diff、代码高亮),亮暗各一份。
  • 每套主题对 258 组文字与背景做检查,WCAG 与 APCA 均需通过;不足时主要调明度直到达标;悬停文字按 4.5:1。
  • 内置 十套 主题;可拖滑杆调色相、彩度、中性色调、对比度、明暗、强调色,棱镜会重算全部颜色变量。
  • 代码配色可单独选 GitHub、One、Solarized、Dracula、Monokai、Nord,对比度仍自动处理。

背景、玻璃与省电

  • 背景支持图片(选文件、拖拽、粘贴链接)、渐变、纯色、链接轮播、文件夹轮播;「玻璃感」滑杆统一控制表面。
  • 图片只模糊一次,不开启实时 backdrop-filter;文字对比度按壁纸明暗区域计算,不够则降透明度;可一键从壁纸取色。
  • 省电:跟随系统 / 开 / 关;系统「减少透明度」或电量低于 20% 且未充电时可自动省电(部分浏览器无电池接口,见下文限制)。

自定义与主题文件

  • 字体、字号(与「通用 → 字体」同一份设置)、圆角倍数;可按名称搜索并编辑宿主变量。
  • 自定义 CSS 上限 16384 字符,禁止 @import 与带外部链接的 url()。省电时 body 带 data-prism-saving,动画主题可用 :not([data-prism-saving]) 停动效。
  • 主题文件为 JSON(配色种子,可含变量覆盖、自定义 CSS、圆角、Material 动态取色规则);支持短分享码、从 dream-skin 迁移、导出为 skin-center 皮肤(zip)。

性能与加载

  • 保存的配色在首屏绘制前生效,减少闪烁。
  • README 给出分包体积:入口约 21 KB;配色引擎与设置界面约 97 KB(首次打开设置或快捷面板时加载)等。

安装与启用

环境要求(README / package.json):需要 DSH 0.2.1-rc.5 及以上、0.3 以下;README 写明已在 0.2.1-rc.5(网页版)和 0.2.2-rc.1(网页版、macOS 桌面版)实测。package.json 中 engines.dsh 为 >=0.2.1-rc.5 <0.2.2-0 || >=0.2.2-rc.1 <0.3.0-0。支持网页版与 macOS 桌面版。尚未发布到 npm,安装用 Release 里的 .tgz 链接。

插件在 当前 dsh 进程权限 下运行;安装前建议自行查看仓库源码与 MIT 许可证。

命令行 / 网页版

第一次安装可用 latest 链接(总是指向最新版):

dsh plugin --profile <名字> add https://github.com/Wildchiken/dsh-prism-skin/releases/latest/download/dsh-prism-skin.tgz

将 <名字> 换成你的 DSH profile 名称。

macOS 桌面版

先用 ⌘Q 完全退出 DeepSeek Harness,用应用内置 CLI 装到 desktop 配置,装完再打开:

cd ~ && "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop add https://github.com/Wildchiken/dsh-prism-skin/releases/latest/download/dsh-prism-skin.tgz

升级

不要用 latest 链接反复升级(地址不变时 pnpm 可能认为已是最新)。应使用带版本号的 Release 链接,把 <版本> 换成 Releases 中的号(示例 README 写法:0.6.0):

dsh plugin --profile <名字> add https://github.com/Wildchiken/dsh-prism-skin/releases/download/v<版本>/dsh-prism-skin-<版本>.tgz

桌面版升级同样先完全退出,再用桌面版自带命令行执行。

典型用法

日常:侧栏与设置

  1. 侧栏底部「换肤」:换主题、切明暗、随机一套、撤销;面板显示当前主题名,有改动会标「已修改」。
  2. 设置 → 棱镜:当前主题行提供「丢弃修改」「存为我的主题」「恢复默认」;下方为主题画廊、强调色、背景与玻璃、省电、字体、代码配色、微调与圆角、高级覆盖、导入导出、对比度检查结果。

主题、你的微调、背景与玻璃是分层叠加的(README 有流程图说明):换主题会清掉之前的修改(对比度与明暗两项个人偏好保留);要保留改动就「存为我的主题」(最多 24 个)。恢复默认会清掉主题、修改与背景。操作可撤销,悬停预览不会立刻换掉整个界面。

导入扩展示例主题

Material 3(需棱镜 0.7.0 及以上):下载 release 中的 material-3.json,在 设置 → 棱镜 → 导入导出 导入并应用。强调色变化时通过 Google 开源的 material-color-utilities 按 Tonal Spot 现算整套配色。

赛博朋克 HUD:下载 cyberpunk-hud.json,在同一入口「选择文件…」后点「应用」;仅暗色。框体依赖自定义 CSS 匹配宿主类名,DSH 升级后可能部分失效(配色不受影响)。

Release 直链示例(与 README 一致,指向 latest):

  • https://github.com/Wildchiken/dsh-prism-skin/releases/latest/download/material-3.json
  • https://github.com/Wildchiken/dsh-prism-skin/releases/latest/download/cyberpunk-hud.json

与其他换肤插件、持久化路径

同一时间建议 只开一个 换肤插件:若其他插件用样式盖住颜色变量,棱镜配色会显示不全。棱镜可识别部分常见插件(README 写明目前有 skin-center、claude-style),检测到后仅在设置页与快捷面板提示,不抢占。

状态保存在 $DSH_HOME/dsh-prism-skin/state.json(默认 ~/.dsh/dsh-prism-skin/state.json,权限 0600);壁纸在同目录 wallpapers/。浏览器 localStorage 仅作缓存,多标签页可同步。

适用场景与注意

适合:希望在 DSH 里系统化换肤、要保证亮暗成对与可读性、需要壁纸/玻璃/省电,或要分享 JSON 主题 / 从 dream-skin 迁移的开发者。

务必注意:

  • 圆角约七成跟 --dsw-radius-* 与滑块走,约三成仍写死在宿主样式里。
  • 桌面版分享主题宜用 分享码,不要用带当前地址的链接(端口每次启动可能变)。
  • 字体改动写在宿主「通用」设置,不在 棱镜撤销栈里。
  • Safari、Firefox 无电池状态 API,「跟随系统」省电主要看「减少透明度」。
  • 自定义 CSS 主题(如 Material 3 组件样式、赛博朋克 HUD 框体)在 DSH 升级后可能需更新主题文件;仓库提供 node scripts/check-theme.mjs、node scripts/audit-theme.mjs 等检查手段(见 README「开发」)。

结尾

棱镜把 DSH 换肤收成「种子 → 全变量重算 → 对比度达标 → 可选壁纸与深度自定义」一条链路,安装用官方 Release 的 dsh-prism-skin.tgz,日常从侧栏「换肤」或 设置 → 棱镜 即可。进一步细节与截图见仓库 README。

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

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

小夜