dsh-desktop-ui:把 DSH Web 会话变成可拖拽的多窗口桌面

前言

DeepSeek Harness(DSH)的 Web 界面默认一次只展示一个会话。当你同时开着长任务 Agent、临时问答和代码审查时,只能在侧栏里来回点选,很难并排对照。社区插件 dsh-desktop-ui 在保留侧栏的前提下,把主对话区改成「桌面」:每个会话是一扇可移动、可缩放的窗口,底部还有任务栏,用来切换和排布窗口。README 标明该能力为实验性质(experimental)。

这是什么

dsh-desktop-ui 由维护者 mrbeandev 发布,分类属于 DSH 客户端(web profile) 插件,npm 包名与插件名均为 dsh-desktop-ui,当前资料中的版本为 0.1.9,许可证 MIT。它不改动侧栏结构,只在浏览器里扩展对话区域的交互方式。

核心功能

下面按 README 已说明的能力归纳,均可在安装后于界面中验证。

桌面模式开关

侧栏 Settings 正上方会出现 Desktop mode 开关,默认关闭;开关状态保存在当前浏览器。关闭后回到普通单会话视图,且聚焦窗口所对应的会话会作为当前对话。

会话即窗口

在侧栏点击会话会在桌面上打开对应窗口;同一会话只能有一扇窗口,再次点击会聚焦已有窗口。窗口内复用与主聊天相同的对话 UI(标题、视图标签、 transcript、输入框,以及其他 Web 插件注入的控件,例如 dsh-rewind-plugin 的消息旁按钮)。

标题栏显示 workspace | session(未分组会话只显示会话名),完整字符串同时作为 tooltip 与无障碍名称。

任务栏与窗口管理

底部任务栏提供:新建会话、每个窗口一个按钮(点击聚焦,对已聚焦按钮再点可最小化,圆点表示会话仍在运行)、级联 / 平铺 / 并排布局、时钟,以及最右侧「显示桌面」条。支持拖标题栏移动、拖边或角缩放、双击标题最大化/还原,以及最小化、最大化、关闭按钮。

贴靠:拖到左/右半边或顶部可半屏/最大化。相邻窗口并排时,拖动共用边框会联动缩放(有最小尺寸限制)。

悬停窗口时,侧栏会高亮对应会话与工作区;折叠的工作区会临时展开(可在 Plugins → dsh-desktop-ui → Highlight the sidebar on hover 关闭,选项与布局一并保存)。

弹出独立浏览器窗口(仅浏览器)

标题栏最小化按钮左侧的 ↗ 可将该会话弹出为无侧栏的独立浏览器窗口;桌面上保留占位与 Pop back in。在 DeepSeek 桌面应用中该按钮会隐藏(通过 data-platform 检测)。自行关闭弹出窗口也会把会话收回画布。

外观与缩放

Plugins → dsh-desktop-ui → Desktop background 可设置壁纸(PNG、WebP、GIF、JPEG、AVIF、SVG,最大 12 MB)及 Fill / Fit / Center / Tile、壁纸透明度、画布透明度、任务栏磨砂透明度等;Reset appearance 恢复默认。壁纸文件存于浏览器 IndexedDB(库名 dsh-desktop-ui),不同步到其他浏览器;仅设置项写入配置。

任务栏上的百分比控制窗口内容整体缩放(默认 85%,可在 70%–100% 间调节);全宽普通对话视图不受影响。

持久化与数据范围

桌面模式开关、打开窗口、几何与最小化/最大化状态、叠放顺序、文字大小等会写入 DSH profile 配置(插件项 dsh-desktop-ui 下的 layout,经 settings 服务写入 cordis.patch.yml),并带有浏览器 localStorage 副本(dsh-desktop-ui.state.v1)以便快速恢复;重启 DSH 后仍可恢复,换浏览器也可同步布局(壁纸除外)。关闭窗口不会删除或归档会话。插件自述不发起自有网络请求,布局 JSON 仅含会话 id 与几何信息,不含对话内容或凭据。

窄屏(宽度低于 720px)时,聚焦窗口占满画布,通过任务栏切换。主题跟随 DSH 明/暗令牌;与其他侧栏 footer 插件(如 dsh-all-usage)共存时,Desktop mode 开关保持在 Settings 之上。

安装与启用

安装命令来自官方 README,须使用 web profile:

dsh plugin --profile web add dsh-desktop-ui

按提示重启 dsh web,并刷新 DSH 页面后即可看到 Desktop mode 开关。

卸载:

dsh plugin --profile web remove dsh-desktop-ui

重启并刷新后恢复普通对话视图;仅浏览器本地的窗口布局可能仍留在 localStorage,直至你清理或改写配置。

package.json 中声明对 @deepseek-ai/dsh 的 peer 依赖为 >=0.2.0-rc.2 <0.3.0,Node 引擎要求 >=22.19.0。README 的「Compatibility and limitations」在已抓取片段处截断,安装前建议在 GitHub 仓库阅读完整兼容性说明。

典型用法

1、完成上述安装并重启 Web 服务后,在侧栏打开 Desktop mode。

2、在侧栏点击多个会话,将它们拖成左右或平铺布局;需要对照代码审查与 Agent 输出时,可使用任务栏的 Tile 或 Side-by-side。

3、临时只需要某一对话、又不想看侧栏时,在浏览器里对该窗口使用 Pop out;收回时使用 Pop back in 或关闭弹出窗口。

4、在 Plugins → dsh-desktop-ui 中调整壁纸与侧栏高亮行为;若布局异常,可关闭 Desktop mode 并关掉所有窗口,或从 profile 中移除 layout 配置项重置桌面。

适用场景与注意

适合经常在 DSH Web 里并行多个会话、又希望保留官方对话 UI 与侧栏工作区结构的开发者。不适合把插件当成会话备份或跨设备同步对话内容的方案:壁纸与部分状态仍绑定浏览器本地存储。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无官方从属关系。插件随当前 dsh 进程与 Web 前端加载执行,安装前应自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境与安全要求。

结尾

dsh-desktop-ui 把 DSH Web 从「单会话全屏」扩展成带任务栏的多窗口桌面,侧栏与会话模型不变,布局可写入 profile 并在重启后恢复。进一步了解可访问目录页 skillhub.cn/plugins/mrbeandev/dsh-desktop-ui 与仓库 github.com/mrbeandev/dsh-desktop-ui。

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

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

Xiaoye