dsh-compact-panel-nav:压缩 DSH 侧边栏顶栏,为工作区列表腾出约 130px

前言

DeepSeek Harness(DSH)Web 界面左侧边栏顶部,默认会占多行:「插件」「自动化任务」「更多」各占一行,「新会话」再占一整行按钮。工作区列表从更靠下的位置才开始,侧边栏一窄,可见会话数就更少。下面介绍社区客户端插件 dsh-compact-panel-nav(维护者 dyguests):在不改宿主业务逻辑的前提下,把这三项收成一行,并把「新会话」收成品牌行右侧的图标,把大约 130px 高度还给下面的列表。

这是什么

dsh-compact-panel-nav 是 DSH 的 profile bundle 客户端插件:package.json 里声明 dsh.bundle.patch,浏览器侧由 ./client 模块注入侧边栏相关 UI。npm 包名与仓库名均为 dsh-compact-panel-nav,许可证 MIT,当前资料中的版本为 1.3.3。分类属于 客户端(只影响 Web UI 布局与样式,不扩展后端能力)。

插件在 DSH Plugin Hub 目录页 与 GitHub 仓库 均可查阅;Hub 为社区独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

展开态侧边栏

  • Plugins / Automations / More(中文界面为「插件 / 自动化任务 / 更多」)由默认的三行合并为 一行:高度 32px,三等分单元格,图标与文字居中。
  • New Session(新会话) 不再独占整行,变为品牌行最右端的 28×28 纯图标按钮(与侧边栏收起按钮同规格)。tooltip 仍保留可访问名称与 ⌘N 提示;1.3.1 起隐藏行内 ⌘N 文案,避免在 28px 内与图标争抢空间。

收起态(56px 图标栏)

收起侧边栏时 不做改动:导航仍为竖排图标栈,「新会话」回到宿主在窄栏中的原位。

其余行为

品牌标识、行顺序、hover / 选中态、焦点环、键盘可达性以及 More 菜单均保持宿主默认;配色使用主题 token(如 --dsw-radius-*、--dsw-alias-*),深/浅色模式跟随宿主。

实现方式(便于评估风险)

导航行 依赖 纯 CSS:选择器通过导航容器的无障碍名称定位(中文 全局面板、英文 Global panels,来自侧边栏 panels.label),并用 :has() 判断行内是否存在「图标 + 标题」——仅展开态满足,因此收起栏不会被误改。

新会话 采用 不 reparent 的做法:按钮仍在 React 原 DOM 位置;脚本在满足前置条件时将其设为 position: absolute,以按钮父元素为基准测量一次,写入 28×28、垂直居中、右对齐的内联几何。品牌行与其它节点内联样式不被写入,避免「测量挤没品牌区」类问题。图标样式通过脚本设置的 data 属性 作用域限定,避免误伤其它元素。

停用插件或收起侧边栏时,会恢复此前保存的按钮 cssText。

安装与启用

插件以 当前 DSH 进程权限 在浏览器侧运行;安装前建议自行查看仓库源码与 MIT 许可证。官方 README 给出的 npm 路线(无需 clone 仓库) 如下。

在 web profile 中安装已发布包:

dsh plugin --profile web add dsh-compact-panel-nav

安装后在 Settings → 插件(设置 → 插件)中确认 bundle 已启用;目录中显示标题 Compact Sidebar Nav / 侧边栏导航压缩。一般即时生效;若侧边栏无变化,刷新页面一次(如 Cmd+R)。

也可通过 Harness agent 一步完成安装与 bundle 选择:

plugin_manager  action=install_bundle  target=dsh-compact-panel-nav

package.json 声明宿主版本约束:

"engines": {
  "dsh": ">=0.2.1-rc.3 <0.3.0"
}

宿主会在加载前校验;不满足时不会按预期装载。

典型用法

本插件 无额外配置项:安装并启用后自动作用于 Web 侧边栏。

  1. 展开侧边栏,确认「插件 / 自动化任务 / 更多」在同一行。
  2. 在 macOS 桌面端 且品牌条为「上方拖拽条、条内无 button」的布局时,确认「新会话」出现在品牌行最右侧图标位,下方工作区列表起始位置上移。
  3. 收起侧边栏,确认窄栏布局与未装插件时一致。
  4. 使用键盘与 tooltip 验证「新会话」仍可访问(含 ⌘N 提示)。

卸载:在插件列表中 停用或移除 bundle;样式表移除,脚本还原按钮内联样式,侧边栏恢复三行导航与整宽「新会话」按钮。

适用场景与注意事项

适合:长期在 DSH Web / 桌面客户端中使用侧边栏,希望 多看到几条工作区/会话,且接受仅调整顶栏布局、不增加新功能的用户。

兼容性(以 README 为准):

  • 在 DeepSeek Harness 0.2.1-rc.3(Desktop、macOS、中文界面)上验证。
  • 依赖面板导航的无障碍名称;若未来宿主改名或出现 README 未覆盖的第三种 UI 语言,插件会 静默不生效,而不是破坏布局。
  • New Session 进品牌行 依赖 macOS 品牌条形态。Windows / Linux 上品牌行本身可能是 button,前置校验会 按设计失败——此时仍可使用 一行导航 的压缩效果,但「新会话」不会移到品牌行。
  • 三等分单元格在侧边栏很窄时,较长标签(如「自动化任务」)会出现省略;拉宽侧边栏即可完整显示。

结尾

dsh-compact-panel-nav 用 CSS 与少量 DOM 几何调整,把侧边栏顶部的固定占用收成一行导航,并在 macOS 布局下把「新会话」收成品牌行图标,为工作区列表让出约 130px。若你在用 DSH 0.2.1-rc.3 且侧边栏顶栏显得「头重脚轻」,可按上文命令从 npm 安装并在插件设置里启用。

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

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

小夜