中文 · English
给 DeepSeek Harness(DSH)换肤。挑一套主题,或者拖几个滑杆(色相、彩度、中性色调、对比度、明暗、强调色),棱镜就把宿主全部颜色变量重算一遍,亮色暗色成对出现,每一组文字都检查过对比度。
十套内置主题:每张卡左上半是亮色、右下半是暗色。图里的颜色由配色引擎现算,不是截图。
示例:赛博朋克 HUD
主题文件不只能带配色,还能带变量覆盖和自定义 CSS。下面这套「赛博朋克 HUD」就是一个主题文件,导入即用:
- 样子:红黑底色,青色标题,黄色强调;侧栏、按钮、代码块、消息改成切角框体,窗口四角带括号,一层很淡的扫描线。
- 动起来:扫描线慢慢往下走,悬停时有轻微的故障抖动,选中时闪一下。系统打开「减少动态效果」时全部停下。
- 怎么装:下载
cyberpunk-hud.json,在 设置 → 棱镜 → 导入导出 里点「选择文件…」,再点「应用」。它会带着名字进「我的主题」,以后一点就回来。
[!NOTE] 这套主题的框体靠自定义 CSS 匹配宿主内部的类名,DSH 升级后可能有部分框体失效(配色不受影响),届时更新这个文件即可。只有暗色版本。风格致敬赛博朋克题材,和任何游戏或公司无关。
安装
需要 DSH 0.2.1-rc.5 及以上、0.3 以下。已在 0.2.1-rc.5(网页版)和 0.2.2-rc.1(网页版、macOS 桌面版)上实测。
命令行 / 网页版
dsh plugin --profile <名字> add https://github.com/Wildchiken/dsh-prism-skin/releases/latest/download/dsh-prism-skin.tgz
macOS 桌面版:先用 ⌘Q 完全退出 DeepSeek Harness,用桌面版自带的命令行装到 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
上面的链接总是指向最新版。想固定版本,换成 https://github.com/Wildchiken/dsh-prism-skin/releases/download/v<版本>/dsh-prism-skin-<版本>.tgz,版本号见 Releases。目前还没有发布到 npm。
怎么用
- 侧栏底部「换肤」:换主题、切明暗、随机一套、撤销。面板上显示当前主题名,改过会标「已修改」。
- 设置 → 棱镜:最上面一行是当前主题,带三个按钮——「丢弃修改」「存为我的主题」「恢复默认」。下面依次是主题画廊、强调色、背景与玻璃、省电、字体、代码配色、微调和圆角、高级覆盖、导入导出、对比度检查结果。
一套主题和你在上面做的修改是分开的两层:
flowchart LR
T["主题<br/>内置 · 我的主题 · 宿主默认"] --> M["你的修改<br/>微调 · 圆角 · 变量 · CSS"] --> B["背景与玻璃<br/>壁纸 · 玻璃感 · 省电"] --> U(("你看到的界面"))
- 换主题就是整套换:选哪张卡就是哪套的原样,之前的修改一起清掉(对比度和明暗两项个人偏好保留)。
- 修改想留下:点「存为我的主题」,起个名字,连同修改存成一套。「我的主题」最多 24 个,卡片悬停时右上角可以删除(要点两次)。
- 想全部回到原样:点「恢复默认」,主题、修改、背景一起清掉。
- 每一步都能撤销,悬停预览、点击才生效。
能做什么
配色
- 一套主题覆盖宿主全部 224 个颜色变量(含 markdown、diff、代码高亮),亮暗各一份。换强调色时,按钮、链接、气泡、选中态、代码高亮全部跟着重算。
- 每套主题逐对检查 258 组文字和背景,WCAG 和 APCA 两个标准都要过,不够就只调明度直到达标。悬停时的文字也按 4.5:1。
- 代码配色可以单独选 GitHub、One、Solarized、Dracula、Monokai、Nord,对比度照样自动达标。
背景
- 图片(选文件、拖进来、粘贴链接)、渐变、纯色、链接轮播、文件夹轮播;一根「玻璃感」滑杆管所有表面。
- 图片只模糊一次,不开实时
backdrop-filter。文字对比度按壁纸上最暗和最亮的地方算,不够就自动降低透明度。一键从壁纸取色。 - 省电模式:跟随系统 / 开 / 关。系统开「减少透明度」,或电量低于 20% 且没在充电时自动省电,表面换成按壁纸算出的纯色。
自定义
- 字体和字号(和「通用 → 字体」是同一份设置)、圆角倍数。
- 按名字搜宿主全部变量直接改,能看到当前值和来自哪一层。
- 自定义 CSS:最多 8192 字符,禁止
@import和外部链接的url()。
导入导出
- 主题文件是一小段 JSON:配色种子,可以带变量覆盖、自定义 CSS 和圆角。导入后进「我的主题」。
- 分享码很短,也能放进链接。
- 一键从 dream-skin 迁移,兼容导入 dream-skin 主题包;可以导出成 skin-center 皮肤(zip)。
轻和快
- 首屏不闪:保存的配色在页面第一次绘制之前就生效。
- 开机只加载约 21 KB 的入口;配色引擎和设置界面约 97 KB,第一次打开设置页或快捷面板时才加载;壁纸处理约 5 KB、高级和导入导出约 32 KB,用到才加载。不开实时模糊,不挂整页的 DOM 监听。
| 设置 → 棱镜 | 侧栏快捷面板 |
|---|---|
![]() |
![]() |
| 图片壁纸 · 暗色 | 渐变壁纸 · 亮色 |
|---|---|
![]() |
![]() |
| 代码配色 Dracula · 暗色 | 高级:变量搜索编辑 |
|---|---|
![]() |
![]() |
十套主题的亮暗截图都在 docs/screenshots/。截图都在临时环境里录制,用的是示例会话。
和其他换肤插件一起用
棱镜本身不用 !important,也不依赖宿主的哈希类名,只通过宿主正式的主题接口(overrideTokens)改颜色变量。(你自己写的或主题文件带的自定义 CSS 例外,比如上面的赛博朋克 HUD。)
别的换肤插件如果用自己的样式盖住这些变量,棱镜的配色就会显示不全,建议同一时间只开一个换肤插件。棱镜能认出几个常见的(目前是 skin-center 和 claude-style),检测到时只在设置页和快捷面板上提示,不去抢。
设置保存在 $DSH_HOME/dsh-prism-skin/state.json(默认 ~/.dsh/dsh-prism-skin/state.json,权限 0600),壁纸存在同目录的 wallpapers/ 里。浏览器的 localStorage 只做缓存,多个标签页之间实时同步。
- 圆角约三成改不到:宿主约七成的圆角走
--dsw-radius-*变量,会跟着「圆角」滑块变;其余约三成(多是 1–4px 的细节)写死在宿主样式里。棱镜不靠宿主的哈希类名去补。 - 桌面版之间分享用分享码:分享链接里带的是当前地址,桌面版每次启动端口都不一样,所以链接在别的电脑上打不开。请复制分享码,在对方的「导入」框里粘贴。
- 字体改动不进撤销:字体和字号写的是宿主「通用」里的设置,不在棱镜的撤销历史里;导入主题文件时带的字体也不能撤销(导入前的预览会写明)。
- 「我的主题」暂时不能直接改名:要换名字,先用新名字「存为我的主题」,再删掉旧的。删除不能撤销。
- 还没在桌面版上实测的:真实窗口下的 GPU 占用、低电量自动省电(电池状态接口只在模拟电池上测过)、选本地图片作壁纸时的系统选择框。
- 快捷面板跳不到设置页:宿主目前没有让侧栏插件「打开设置并定位到某一栏」的接口,所以面板底部只写了一句说明。
- dream-skin 迁移不会一模一样:主题按底色、强调色、明暗换算成种子,其余颜色重算并保证对比度。偏亮的暗色底(如 Nord)会更深一点。
- 壁纸目录不会自动清理:换下来的图片会一直留在
wallpapers/里。 - Safari 和 Firefox 没有电池状态接口,在这两个浏览器里「跟随系统」只看「减少透明度」。
npm install
npm test # 单测,含体积门和对比度审计
npm run build # 产物在 lib/
npm run audit:contrast # 逐套主题、逐套代码配色打印对比度审计
node scripts/readme-art.mjs # 重画 README 的横幅和主题一览图
真宿主上的冒烟和截图需要一份本地安装的宿主(npm install @deepseek-ai/dsh@<版本>):
node scripts/smoke.mjs --host <宿主目录> [--host <另一个版本>]
node scripts/shots.mjs --host <宿主目录> --extras --wallpapers --p3
两个脚本都用 ~/.dsh-prism-* 作临时 DSH_HOME,用完删掉,不碰你自己的 ~/.dsh。改动记录见 CHANGELOG.md。






No comments yet. Be the first to write one.