dsh-nb-plugin:用开关与拾取模式控制 DSH 界面显隐

前言

DeepSeek Harness(DSH)把客户端界面拆成可组合的模块与插槽。日常使用时,侧边栏、输入区、模型选择、底部栏等会同时出现在屏幕上;若你只想留对话内容做演示、录屏,或临时收窄界面,靠浏览器缩放或改主题通常做不到「只藏某一栏」。社区插件 dsh-nb-plugin 在 DSH 里增加一套界面显隐控制:预设区域开关、设置页入口,以及「点哪藏哪」的拾取模式,状态保存在浏览器本地。

下面介绍插件定位、能力、安装步骤和用法,并说明默认行为与恢复方式,避免装完误以为客户端坏了。

这是什么

dsh-nb-plugin 是 DSH 的 Web 客户端插件,维护者为 wzc520pyfm。它通过右侧浮动面板和设置菜单项「界面显隐」,逐项显示或隐藏界面区域;精细开关依赖 DSH 的 data-slot 插槽锚点,可在不关掉整个输入框的前提下单独隐藏附件区、模型选择等子区域。

插件不联网、不上报,不向 DSH 安装目录写文件,仅向 localStorage 写入显隐状态并向页面注入样式表。许可证为 MIT。当前 npm 包版本为 1.4.0。

核心功能

22 个预设开关(三组)

  1. 侧边栏:整体、会话列表、面板入口、设置入口。
  2. 会话:主面板、标题栏、标题栏按钮、对话内容、消息按钮、输入区、工作区选择、模式选择、附件区、模型选择、权限选择、计划开关。
  3. 外壳:右侧面板、右侧内容、底部栏、顶部工具、拖拽手柄、浮层与挂件。

开关定位到 data-slot="…" 包装器(DSH 插槽出口的 display:contents 锚点),因此粒度可到输入区内的单块,而不是整页粗暴隐藏。

拾取元素

面板或设置页中点击「拾取元素」进入拾取模式:悬停高亮、点击即隐藏;没有插槽的零件(例如 + 按钮、发送按钮)也可被选中。Esc 或「取消」退出且不改动;已拾取项出现在列表中,可逐个恢复或「全部恢复」。选择器优先落在最近 data-slot,否则用区域锚点加 tag:nth-child(n) 路径,并在全页唯一时才接受。拾取结果最多保存 60 条,存在状态 v2 的 custom 数组里;「全部显示」快捷键不会自动恢复拾取隐藏的元素,需在列表中清除。

入口与快捷键

  • 浮动面板中的「悬浮按钮」开关可隐藏面板入口本身;隐藏后按钮不再渲染,显隐逻辑仍生效。
  • 设置 →「界面显隐」与浮动面板共用同一份状态;按钮被藏时仍可从设置改回。
  • ⌘⇧H / Ctrl+Shift+H:一键切换全部区域;「全部显示」时同时恢复悬浮按钮。

安装默认行为

全新安装时默认隐藏输入区与悬浮按钮,刷新后 DSH 可能像只读界面。这是设计默认值,不是客户端故障。恢复见下文「典型用法」。

安装与启用

先安装 npm 包,再以 desktop 配置档案注册插件:

npm install dsh-nb-plugin
dsh plugin --profile desktop add dsh-nb-plugin

本地开发可直接链接当前目录:

dsh plugin --profile desktop add "file:$PWD"

安装前建议阅读 GitHub 仓库 源码与 LICENSE;插件以当前 DSH 进程在浏览器中的权限运行,只应在你信任的来源安装。

典型用法

装完找不到输入框时

若初始界面没有浮动按钮,可任选其一:

  1. 设置 →「界面显隐」→ 打开「悬浮按钮」或「输入区」。
  2. 按 Ctrl+Shift+H(macOS 为 ⌘⇧H)执行「全部显示」,输入区与悬浮按钮一并恢复。
  3. 从旧版 v1 状态升级时,插件会迁移 localStorage,悬浮按钮保持可见,不会被新版默认值覆盖。

按需隐藏区域

  1. 打开浮动面板或设置中的「界面显隐」。
  2. 在侧边栏 / 会话 / 外壳三组中关闭不需要的区域,例如只留「对话内容」做展示。
  3. 需要更细控制时,使用「拾取元素」点选界面上的具体控件;误操作后在「已拾取元素」中恢复。

状态存储(便于排查)

浏览器 localStorage 键名与含义如下:

键 内容
dsh.ui-visibility.v2 { "hidden": ["composer"], "dock": false, "custom": [{ "selector": "…", "label": "…" }] }
dsh.ui-visibility.v1 旧版纯数组;首次加载时迁移并删除

无 v2 时有 v1 则迁移;两者都没有则使用安装默认值。默认值在第一次交互后才写入磁盘。卸载插件可彻底移除注入逻辑;若仅清除站点数据,会回到出厂默认(输入区仍为隐藏,需用快捷键或设置打开)。

适用场景与注意

适合需要在 DSH 里快速切换「完整 UI / 精简 UI」的开发者或演示场景:录屏、截图、向他人展示对话区而不暴露模型与权限控件。不适合在未告知对方的情况下给他人安装——默认会隐藏输入框与入口,容易造成「无法打字」的误解;README 中也明确不建议对不熟同事或生产环境做此类玩笑。

拾取选择器在 DSH 大版本升级、DOM 结构变化后可能失效,清除对应拾取项后重新拾取即可。插件依赖 @deepseek-ai/dsh-client-ui-layout、dsh-client-ui-settings、dsh-client-locale 等客户端注入点,需与当前 DSH 版本兼容。

DSH 生态强调「一切皆插件」;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-nb-plugin 把 DSH 界面拆成 22 个可开关区域,并支持拾取隐藏与本地持久化,适合需要可控、可逆 UI 显隐的场景。安装时务必记住默认隐藏输入区与浮动按钮,以及 Ctrl+Shift+H 与设置页「界面显隐」的恢复路径。

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

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

Xiaoye