dsh-preview-theme
IdentifiedColor presets and a custom paper-color picker for the built-in DSH sidebar PDF, converted Office, and spreadsheet previews, with dark-mode brightness control and locally saved preferences; changes onl
预览配色(dsh-preview-theme)
给 DeepSeek Harness 的侧边栏文档预览换纸张底色:PDF、Word(docx/doc,经 LibreOffice 转 PDF)和 Excel(xlsx/xls/csv/tsv)都能一键变成「黑底白字」,也可以选护眼米黄、豆沙绿、淡蓝、午夜蓝等, 或者用取色器调任意颜色。只改显示,不改文件——所有改动都是浏览器里的 CSS,原文件一个字节都不会动。
| 纯黑(黑底白字) | 护眼米黄 |
|---|---|
![]() | ![]() |
| Excel 黑色 | Excel 淡蓝 |
|---|---|
![]() | ![]() |
支持的文件类型
| 格式 | 预览方式 | 是否支持 |
|---|---|---|
| 内置 pdf.js 画布 | 支持 | |
| .doc / .docx | Host 用 LibreOffice 转成 PDF 后走 PDF 预览 | 支持 |
| .ppt / .pptx | 同上(转 PDF) | 支持 |
| .xlsx / .xls | FortuneSheet 表格(浏览器内解析) | 支持 |
| .csv / .tsv | 表格预览(切到纯文本时不套用配色) | 支持 |
| 图片 / Markdown / 代码 / HTML | 其它预览器 | 不在本插件范围 |
安装
从 npm 安装
在 DSH 的「插件」页面选择「添加插件」/「安装第三方插件」,输入 dsh-preview-theme 并安装、启用。
如果界面没有立即变化,刷新页面。也可以在完全退出 DSH 后,用其 CLI 安装:
dsh plugin --profile desktop add dsh-preview-theme
然后重新启动 DSH。Web 配置请把 desktop 换成 web。卸载时使用
dsh plugin --profile desktop remove dsh-preview-theme。
从本地源码安装
将仓库克隆到一个稳定位置,例如 ~/.dsh/plugins/dsh-preview-theme,然后在插件页面输入该目录的
绝对路径,或用 CLI 执行 dsh plugin --profile desktop add /绝对路径/dsh-preview-theme。
本地路径安装会链接该目录,因此安装后不要移动或删除它。
使用
打开右侧边栏里的 PDF / Word / Excel 预览,预览标题栏(路径那一行)最右边会多一个调色盘按钮:
- 点开就是配色面板:原色 / 纯黑 / 墨黑 / 深灰 / 午夜蓝 / 墨绿 / 护眼米黄 / 豆沙绿 / 淡蓝 / 淡粉 / 自定义;
- 「自定义」用系统取色器选任意颜色,深色自动变黑底白字、浅色自动变浅底深字;
- 深色方案多一个亮度滑杆(70%–120%),觉得白字太亮可以调暗;
- 选过的配色会记住(localStorage),重启/刷新后仍然生效;
- 点「原色」或「恢复默认」就完全还原成默认外观。
改动是全局预览配色:换一个文件、换一个标签页都沿用;想只临时看一个文件时,看完点回「原色」即可。
配色表
| 名称 | 色值 | 效果 |
|---|---|---|
| 原色 | — | 关闭插件效果(白色纸张 + 浅灰底) |
| 纯黑 | #000000 | 纯黑纸、白字 |
| 墨黑 | #0b0f14 | 近黑(偏冷) |
| 深灰 | #1f2126 | 炭灰纸、浅字 |
| 午夜蓝 | #101b2d | 深蓝纸、白字 |
| 墨绿 | #101f17 | 深绿纸、白字 |
| 护眼米黄 | #f4ecd8 | 米黄纸、黑字 |
| 豆沙绿 | #cce8cf | 护眼绿纸、黑字 |
| 淡蓝 | #dbe7f5 | 淡蓝纸、黑字 |
| 淡粉 | #f6e3e5 | 淡粉纸、黑字 |
| 自定义 | 任意 | 按亮度自动选深色/浅色方案 |
原理(为什么不用改预览器)
内置预览包 @deepseek-ai/dsh-client-ui-sidebar-documentpreview 在 DOM 上留了稳定的 data-* 钩子:
- [data-textpreview-body]:预览滚动区;
- [data-pdf-preview]:PDF / Word / PPT 的页面容器(每页是一个 canvas + 透明文字层);
- [data-excel-preview]:表格容器(FortuneSheet 画布 + 公式栏 + 工作表标签)。
本插件做两件事:
- 纸色:覆盖主题 token --dsw-alias-bg-document-preview(通过 ctx.theme.overrideTokens, 官方扩展点,写成 body 内联变量,不跟内置样式抢优先级);
- 页面内容:
- 浅色纸:给 canvas(PDF)/ 表格子元素(Excel)加 mix-blend-mode: multiply —— 白纸乘上纸色变成纸色,黑字仍是黑字;
- 深色纸:先 filter: invert(1) hue-rotate(180deg) 把白纸/黑字翻成黑纸/白字,再 mix-blend-mode: screen 把页面底色染成所选深色(白色文字保持不变)。hue-rotate(180deg) 让图表和图片的颜色尽量保持原色相。
插件只注册一个标题栏按钮(文档预览的 sidebar.right.tab.document.actions 槽位)和一段样式表, 关掉/卸载后样式与 token 覆盖都会被清理干净。
限制
- 只影响内置预览。「近期成品」等其它位置里用系统 PDF 查看器 iframe 显示的 PDF 不在可样式化范围内。
- 深色方案会反转文档里的图片/图表颜色(hue-rotate 只能近似还原色相),这是所有「反色阅读模式」的通病。
- Excel 是整块画布渲染,深色模式下公式栏、工作表标签会跟着一起反色(通常正是想要的效果);不支持只改单元格区域。
- 预览的 data-* 属性属于 DSH 内部实现,升级 DSH 大版本后如失效,重新适配即可(test/check-bundle.mjs 可做冒烟检查)。
开发与验证
node test/check-bundle.mjs # 无需浏览器:校验 bundle 契约、样式选择器、槽位注册
node --check lib/client.js # 语法检查
客户端半边修改后是热重载的(安装后 <1s 生效);Host 半边是空实现,不需要重启。
目录
dsh-preview-theme/
package.json # dsh.bundle.patch + dsh.client(无构建步骤)
cordis.patch.yml # Host 行(空实现,只为让 Loader 挂载并下发 client bundle)
lib/index.js # Host 半边:空 apply
lib/client.js # 全部功能:样式、token、标题栏按钮、配色面板(纯 React.createElement)
locale/{zh,en}.json # 插件管理里显示的名称/描述
icon.svg # 插件图标
docs/*.png # 效果图
test/check-bundle.mjs # 静态冒烟测试
README.md # 本文件
Comments
Loading…
Similar plugins
by MoYu-CN
Extra light and dark color themes for the DSH UI, registered as pure color tokens on top of the official theme runtime.
★ 0
MIT
JavaScript
Oct 12, 2026
dsh plugin --profile web add dsh-theme-packby Alicex7777
DSH Web 界面配色调节插件:在设置里直接调整会话栏、左右侧栏与文字色,含 OKLCH 深度/鲜亮度调节、日间夜间方案与预设
★ 0
MIT
JavaScript
Oct 2, 2026
dsh plugin --profile web add dsh-theme-colorsby HarmlessFunny
Per-model appearance for the DSH Web UI: an ordered rule list matched against the current session model name, each rule carrying its own wallpaper, theme colour, layout mode, framing and wallpaper opa
★ 24
↓ 1.2k/wk
MIT
TypeScript
Oct 25, 2026
dsh plugin --profile web add dsh-background-by-modelDockable Markdown preview for the DSH Web UI: side-by-side with the conversation, a per-session recently-read .md list, local relative-path images render in place, and clicking an in-chat .md referenc
★ 0
dsh plugin --profile web add dsh-md-previewLook & theme plugin for the DSH Web UI: built-in palettes, light/dark/follow-system appearance modes, Open VSX theme search & install, and VS Code theme import with a persisted theme library.
★ 1
MIT
TypeScript
dsh plugin --profile web add dsh-themesby Au1314
Theme studio for the DeepSeek Harness web GUI: eight switchable preset styles, accent and panel-translucency fine-tuning, host-side wallpapers painted on the first frame, and a one-click fix when the
★ 0
MIT
TypeScript
Sep 26, 2026
dsh plugin --profile web add dsh-style-hub






