前言¶
在 DeepSeek Harness(DSH)里查文档、预览 Markdown 或 PDF、在右侧栏开浏览器页签时,常见做法是点「全屏」把内容铺满窗口。原生全屏往往把主会话区挤没或布局变窄,想对照文档继续对话就要来回切布局。社区插件 dsh-doc-focus(维护者 Altha-dt)只调整容器布局:文档仍占满窗口,主会话以底部居中悬浮卡片叠在上方,收起时可缩到右下角「对话」挂件,输入与滚动状态不丢。
这是什么¶
dsh-doc-focus 是 DSH 客户端插件,通过宿主公开的 DOM 标记适配右侧栏与会话区,不读取文件、不复制渲染器、不搬动 iframe,也不替换会话输入服务。它解决的是「全屏专注看右侧栏内容,同时不必离开主会话」的布局问题;交互思路类似 Codex 式悬浮对话,但底层仍是 DSH 原生会话组件。
- 目录页:skillhub.cn/plugins/Altha-dt/dsh-doc-focus
- 源码与说明:github.com/Altha-dt/dsh-doc-focus
- 包版本 0.2.0,许可 MIT
核心功能¶
下面介绍插件在 README 中明确写出的能力。
支持的右侧栏页签¶
支持所有原生右侧栏页签,包括但不限于 better-sidebar 文件编辑器、Markdown、PDF、图片、HTML 预览、原生浏览器与第三方浏览器页签。具体格式能否打开取决于宿主与已装查看器;插件保留原生查看器行为。
全屏 + 悬浮主会话¶
- 全屏时文档占满整个窗口,插件把主会话区改为
position: fixed的悬浮卡片(圆角、描边、阴影),不再压缩文档高度。 - 卡片宽度为
min(100vw - 48px, 1000px),居中叠在文档之上;窄屏自动全屏时宽度收敛为min(100vw - 24px, 1000px)。 - 底部会话区默认高度约 260px,可拖到视口高度的 65%;拖动卡片上沿分隔条或用方向键微调。
- 输入草稿、附件、模型选择、发送与审批仍走 DSH 原生组件;插件不会自动发送任何消息。全屏与调整大小不会因本插件重新加载浏览器或清空表单。
收起与恢复¶
点「收起」只隐藏卡片并显示右下角「对话」挂件,主会话 DOM 不卸载,草稿、附件与滚动位置保留。点挂件或「展开」即可恢复。收起状态与高度写入当前浏览器的 localStorage(键名 dsh-doc-focus:mode、dsh-doc-focus:height)。
退出全屏¶
点「退出全屏」恢复普通布局。在非输入控件、非模态弹窗内按 Escape 也可退出;浏览器 iframe 内的 Escape 由网页自行处理,此时可点外部工具条退出。
窄屏与软键盘¶
首次进入时若可视高度不足 400px,保持原生布局;已进入后若软键盘压缩可视区,会缩小布局并尽量保留输入区。测试用例覆盖软键盘下挂件往返等场景。
安装与启用¶
插件以当前 DSH 进程权限在客户端运行;安装前建议通读仓库源码与 MIT 许可证。宿主按 engines.dsh 判断兼容性,不满足时插件管理器会拒绝安装,必要时可用 dsh plugin allow-version 对指定版本显式放行。
从 GitHub 安装(宿主插件管理器支持 git 源时,命令来自仓库 README):
/Applications/DeepSeek\ Harness.app/Contents/Resources/runtime/cli/bin/dsh plugin --profile desktop add git+https://github.com/Altha-dt/dsh-doc-focus
安装后宿主应自动重新组合 profile;若已打开页面未同步,请刷新当前页面。插件会以 icon.svg 与 locale/en.json、locale/zh.json 中的名称与简介出现在插件清单中。
| 项目 | 值 |
|---|---|
| 最低 DSH 版本 | 0.2.1-rc.1(engines.dsh) |
| 开发验证 | DSH 0.2.1-rc.5(Desktop) |
| Node(构建) | >= 20 |
本地从源码开发时,README 给出 link: 路径示例及 pnpm install、pnpm run build、pnpm test;本文不展开 clone 流程。
卸载:在 DSH 插件页停用/卸载 dsh-doc-focus,或执行:
/Applications/DeepSeek\ Harness.app/Contents/Resources/runtime/cli/bin/dsh plugin --profile desktop remove dsh-doc-focus
停用时移除插件标记、样式与工具条,恢复原布局。
典型用法¶
按 README「使用」一节,可复现如下步骤:
- 在右侧栏打开文件、浏览器或其他页签。
- 点击右上角原有的「全屏」按钮。
- 文档保持整屏,主会话悬浮在窗口底部居中,可继续查看回复与对话;按需拖动分隔条或方向键调整卡片高度。
- 需要更大阅读面积时,点「收起」收进右下角「对话」挂件;点挂件或「展开」恢复。
- 读完点「退出全屏」,或在外部区域用 Escape 退出(注意 iframe 内例外)。
切换右侧栏页签时页面是否保留,由对应宿主查看器的生命周期决定,与本插件的全屏布局无关。
适用场景与注意¶
适合谁: 经常在 DSH 右侧栏全屏读长文、对照 PDF/Markdown/HTML 预览或浏览器页签,又需要随时在主会话里追问或改提示的用户。
限制(来自 README):
- 第三方插件若有独立于右侧栏的全窗口浮层,不受此布局管理。
- 悬浮卡片是原生会话区域盖在文档之上,不是侧线程;找不到匹配的会话或侧栏 DOM 时保持原生布局;宿主将来变更 DOM 标记时需要插件适配。
- 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文介绍的是社区维护的客户端插件之一。
结尾¶
dsh-doc-focus 在不改动文件读取与渲染的前提下,把「右侧栏全屏阅读」和「主会话常驻」合成一步:全屏看文档,会话以悬浮卡片或右下角挂件形式留在手边。更多细节与 issue 见 GitHub 仓库;插件索引见 目录页 与 Altha-dt/dsh-doc-focus。