UI 美化
显示名 UI 美化;npm 包名
dsh-fold-polish(2026-10 两次改名,见文末「关于改名」)。
给 DSH 会话加一层"阅读优先"的显示优化:消息与工作步骤自动折叠、输入框可调、右栏占比可设、一键查找——想看清楚的点一下就回来。
dsh plugin --profile desktop add dsh-fold-polish
English — A display-only plugin for DeepSeek Harness: the newest turn always stays open, while older messages and every run of work-step rows fold into one click; plus composer sizing, right-sidebar width, and find.

工作步骤的三档展开(GIF,取自真实构建在无头 Chrome 里的截图):

| 帧 | 你看到的 |
|---|---|
| 1 | 状态 0:每轮只留一个控件,步骤折成一条缝 |
| 2 | 点一下:缝隙上展开三个控件——「本步骤」「展开全部」「所有步骤」(三个图标各不相同) |
| 3 | 点「所有步骤」:这一轮的每一步都打开,条数不变、内容回来 |

功能
消息
- 最新一轮永远展开 —— 你正在读的那条输入和那条回复,再长也不折,也不给按钮。
- 历史消息自动收起 —— 超出预算就折成几行:用户输入 6 行、助手回复 10 行(行数可调);切在段落边界上,不会把下一行切成半行。
- 折叠的消息下方有一个气泡胶囊键:
▾ 展开我的输入 · 还有 12 行/▾ 展开全文 · 还有 30 行,展开后变成▴ 收起。只影响这一条——就这一个按钮,复制交给宿主自带的那一个(折起来的部分照样复制得到,限高只是 CSS)。 - 图片不吃行数预算 —— 图片/附件占的高度单独算,行数预算只花在文字上:所以「一张图 + 几行字」不会被折,而「一张图 + 很长的正文」照样折得起来,并且图片永远完整、只切文字。
- 正在流式输出的回复不折 —— 等这一轮结束再说。
- 短消息不折 —— 只有真的超出预算才折,不会给每条消息都塞一个按钮。
- 轮次自动交接 —— 新的一轮开始时,上一轮从"最新"退成"历史",它的长消息随即折起。
工作步骤
- 两段消息之间的整串步骤收成一个折叠缝 —— 位置在最后一个步骤行与下面那条回复之间,是一条横线上的按钮。
- 一次折一整串 —— 这串步骤如果横跨了好几轮对话(连续自动续跑、中间没有回复),也是一个键全部折起。
- 默认就是收起的,最新那一轮也收起;悬停提示会写明折了多少步。
- 下面还没有回复时不出现(这一轮还在跑),等回复落地再补上。
- 不会留死按钮 —— 宿主那一行不能折叠时,折叠缝直接不出现。
- 尊重你的手动操作 —— 你点开过的那一段,不会被再次自动收起。
三个按钮,三种职责,三种图标(每轮最终正文上方最多只看到一个):
| 图标 | 按钮 | 管什么 |
|---|---|---|
| 单箭头 | 展开本步骤 / 收起本步骤 | 这一段(两条正文之间的步骤);只在摊开状态下出现 |
| 双箭头 | 展开全部 / 收起全部 | 这一轮的缝(版面):展开全部 = 摊开各条缝、内容仍收起;收起全部 = 内容全收、只留这一个按钮 |
| 箭头加横线 | 展开所有步骤 / 收起所有步骤 | 所有段的内容;只在摊开状态下出现 |
- 默认(每轮只有一个按钮):正文上方一个「展开全部」,中间各缝与步骤全部隐藏。
- 点它 → 各条缝摊开、每条缝一个「展开本步骤」,内容仍是收起的;同时旁边出现「展开所有步骤」。
- 内容全开后再点「收起全部」,直接从全开回到只剩一个按钮。
- 三个图标各不相同,不带文字也认得出;「按钮显示文字」设置(默认关)统一决定这三个按钮显不显示文字——打开后每个按钮各带自己的文案,绝不是一个按钮套在另一个按钮里。
输入框
- 输入框顶部有一条拖拽手柄:向上拖变高、向下拖变矮,双击恢复默认高度 336px。
- 设置面板里也能直接填高度数值,或按
Ctrl + Shift + ↑ / ↓每次微调 40px。
快捷键
| 快捷键 | 效果 |
|---|---|
Ctrl + Shift + B |
停用 / 启用插件 |
Ctrl + Shift + , |
打开设置面板(点外部或 Esc 关闭) |
Ctrl + Shift + ↑ / ↓ |
输入框高度 ±40px |
Ctrl + F(桌面版) |
打开右侧栏「查找」tab(浏览器里交给原生查找) |
设置项
Ctrl + Shift + , 打开对话页浮层面板,改动即时生效;设置 → 插件 → "UI 美化" tab 是同一套设置的宿主原生入口,两边一一对应、完全同步。
| 项 | 默认 |
|---|---|
| 启用插件 | 开 |
| 最新一轮保持展开 | 开 |
| 折叠我的输入 / 我的输入保留行数 | 开 / 6 |
| 折叠助手回复 / 助手回复保留行数 | 开 / 10 |
| 全部消息都折叠 / 折叠后保留行数 | 关 / 3 |
| 折叠后与控件的间距 (px) | 8 |
| 步骤区与回复之间加折叠按钮 | 开 |
| 步骤默认收起 | 开 |
| 默认只留一个按钮 | 开 |
| 按钮显示文字 | 关 |
| 输入框可拖动调高 / 输入框高度 | 开 / 336 |
| 右侧栏占比 | 45%(30–70%) |
打印与导出
- 打印 / 另存为 PDF 时会自动展开:浏览器打印(
Ctrl + P)前,消息与步骤的折叠全部展开,折叠控件本身也不会印到纸上——纸面上不留折叠的痕迹。 - 会话日志导出不受影响:
/export那一类导出读的是会话记录、不是页面,所以本来就包含全部内容,折叠从来不会让它丢东西。
右侧栏占比
- 在设置里选占比:
设置 → 插件 → UI 美化或Ctrl + Shift + ,面板里的「右侧栏占比 (%)」,范围 30–70%,默认 45%(宿主自己的默认值)。 - 重启后保持:宿主每次启动都会把右栏重置回它自己的默认宽度,插件按你的设置把它设回去。
- 为什么需要插件来做:宿主那一列是"按内容定宽、上限可变"的,光把上限调大并不会让面板变宽;插件直接钉住那一列的宽度,所以设置里的数字就是实际宽度。
- 拖动手柄自动同步:手动拖动右栏左边缘调宽时,设置里的百分比会跟着更新。
- 下次打开保持:百分比存在插件设置里,重启后按它恢复(宿主本身每次会重置回 45%,插件在启动时帮你设回你选的值)。
搜索(右侧栏「查找」tab)
- 桌面版自带查找:右侧栏(和"上下文""文件"同一列)新增一个「查找」tab,
Ctrl + F直接打开它;也可以从右栏的 tab 列表里自己加。它搜的是渲染出来的整段对话——折叠起来的内容从不离开 DOM,所以折叠的正文、被收起的步骤都搜得到;点一条结果会先把藏着它的折叠展开,再滚过去并短暂圈出位置。 - 浏览器版交给原生查找:插件在浏览器里不接管
Ctrl + F——折叠内容通过hidden="until-found"机制对原生查找可见,命中时整段自动展开。 - 滚轮不会展开任何东西:折叠的消息是裁切(不是滚动容器),鼠标滚轮滑过它不会改变状态;只有你点开、或从查找结果跳过去,它才会展开。
- 右栏服务不可用时不会留空面板:
Ctrl + F只在「查找」tab 真正注册成功后才动作;宿主没暴露右栏服务时它什么都不做(控制台会写明原因),而不是打开一个空右栏。
边界
纯显示层:只改界面显示,不写会话日志、不改模型输入、不碰上下文注入与系统提示词卡,也不影响宿主原生的步骤折叠与右缘导航。关掉开关或卸载,界面立刻回到原生状态。
安装
从 npm 安装(推荐):
dsh plugin --profile desktop add dsh-fold-polish
把 desktop 换成你的 profile 名(网页版是 web),也可以在 设置 → 插件 里手动填包名安装。
不想走 npm 时,也可以直接从 GitHub 安装:
dsh plugin --profile desktop add 'github:FiVE0016/dsh-fold-polish#v0.9.1'
装完重启宿主(dsh web 或桌面版):host 半与客户端 bundle 都只在启动时加载。
MIT License
关于改名
本插件 2026-10 改过两次名,显示名始终是「UI 美化」:
| 时间 | 包名 | 为什么改 |
|---|---|---|
| 最初 | dsh-bubble-fold |
起点:只做气泡折叠 |
| 第一次 | dsh-ui-beautify |
功能扩张到输入框、右侧栏、查找,名字跟不上 |
| 第二次(当前) | dsh-fold-polish |
上一个名字与社区里已有的一个 UI 插件撞词,搜索时会被压在后面;这个名字不撞词,也仍然说得清"折叠 + 整体显示打磨" |
安装命令:dsh plugin --profile desktop add dsh-fold-polish
改了这些:npm 包名、GitHub 仓库名(旧地址会自动跳转)、cordis.patch.yml 的 name/id、index.js 的导出名、模块加载 id、日志前缀、README 与徽章。
没有改(改了会重置你的设置,或纯属无谓改动):设置存储键 dsh.bubble-fold.settings、根作用域属性 data-dsh-bubble-fold(CSS 契约)、样式标签 id、右栏 tab 的内部 id,以及调试句柄 __DSH_BUBBLE_FOLD__(新别名 __DSH_FOLD_POLISH__ 指向同一个对象)。所以升级不会丢任何设置。
dsh-bubble-fold 与 dsh-ui-beautify 都已标记为 deprecated,仍可安装、会提示改用新名。
No comments yet. Be the first to write one.