dsh-sidebar-collapse:侧边栏全局面板按钮条一键折叠

前言

DeepSeek Harness(DSH)把扩展能力做成插件,左侧栏里会堆叠「全局面板按钮条」——插件、任务看板、技能中心等各占一行。每装一个面板插件,按钮条就多 36px 高度,且宿主侧栏不会把这条区域折叠或滚动,工作区与会话列表可用高度就被一点点挤没。若你已经在用多个客户端面板插件,却不想改 DSH 本体,社区里有一个只做折叠开关的客户端插件可以试:dsh-sidebar-collapse(维护者 lakejason0)。下面介绍它是什么、怎么用,以及和宿主版本、内部类名相关的注意点。

这是什么

dsh-sidebar-collapse 是 DSH 客户端插件(npm 包名 dsh-sidebar-collapse,当前版本 0.1.1,MIT 许可)。它在侧栏 「工作区」标题右侧、搜索图标左侧 增加一个折叠按钮:点一下收起整条全局面板按钮条,把列高度让给工作区与会话列表;再点一下恢复。不替换宿主组件,也不改动其他插件的注册逻辑。

插件目录页:skillhub.cn/plugins/lakejason0/dsh-sidebar-collapse。源码与说明:github.com/lakejason0/dsh-sidebar-collapse。DSH 生态强调「一切皆插件」;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

它解决什么问题

DSH 左侧栏自上而下大致是:品牌行 → 新会话 → 全局面板按钮条 → 工作区/会话列表 → 底部。按钮条里每一行由各个插件注册,占 36px 且不会被压缩——插件越多,列表区域越扁,而按钮条本身在宿主里既不能折叠也不能滚动。

本插件只做上述折叠开关一件事;README 中用展开/折叠对比图说明了视觉差异(见仓库 docs/expanded.png、docs/folded.png)。

核心功能与行为

以下均来自项目 README,安装前可在 GitHub 核对。

  1. 出现条件:全局面板按钮达到 5 个 时,折叠按钮才显示;少于 5 个时不显示。
  2. 折叠效果:收起后整条插件按钮条不可见,工作区列表占用整列高度;折叠按钮仍留在标题行,可随时展开。
  3. 状态持久化:折叠状态写入浏览器 localStorage,键名 dsh-sidebar-collapse:collapsed,刷新或重启 DSH 后保持。
  4. 自动让位与暂停:
    - 侧栏收成 56px 图标栏时,折叠功能自动暂停(该模式下按钮条是唯一导航)。
    - 工作区标题行搜索框展开时,折叠按钮自动让位。
  5. 边界:不设侧栏高度上限、不增加第二条滚动条;折叠通过纯 CSS 隐藏按钮条子元素,不在组件树外写 DOM。

安装与启用

任选其一(命令与步骤以 README 为准,不要自行拼接 github:owner/repo 形式的 add 参数)。

方式一:插件页(推荐)

  1. 打开 DSH 设置 → 插件 → 添加。
  2. 填入包名 dsh-sidebar-collapse 并完成安装。

也可让 DSH 代理调用 plugin_manager 的 install_bundle,target 填 dsh-sidebar-collapse。

方式二:命令行

需要本机 dsh CLI 已在 PATH 中:

dsh plugin --profile <你的 profile 名> add dsh-sidebar-collapse

将 <你的 profile 名> 换成你实际使用的 profile。

卸载:在插件页禁用或卸载;或 plugin_manager 的 remove_bundle,target 填 dsh-sidebar-collapse。

插件以当前 DSH 进程权限在客户端运行;安装前建议浏览 client.js 与许可证,确认符合你的安全策略。

典型用法

安装并启用后无需额外配置文件。当全局面板按钮不少于 5 个时,在工作区标题行搜索图标左侧会出现折叠控件;点击即可在「按钮条占满侧栏」与「按钮条隐藏、列表变高」之间切换。若按钮未出现,先确认面板数量是否达到阈值,以及侧栏是否处于 56px 图标栏模式(该模式下折叠会暂停)。

兼容性与实现要点

在 DSH 0.2.1-rc.3(Electron 44 / Chromium ~144)上开发并验证。实现依赖宿主两处内部命名(类名子串):

依赖 用途
nav 上的 …_panelList 判断折叠范围与「5 个按钮」阈值
工作区标题行搜索槽的 …_searchSlot 定位锚点(测量回退也用它)

若未来 DSH 重命名这些选择器,最坏情况是按钮位置错误或不再出现,README 说明不会破坏侧栏或影响其他插件;届时可改 client.js 顶部常量:FOLD_THRESHOLD、BUTTON_SIZE、GUTTER、ANCHOR_SELECTOR。

工作原理简述:控件注册在宿主 sidebar.footer.action 座位,用绝对定位脱离 footer 行流;优先用 CSS 锚点把按钮放在搜索槽左侧 32px;引擎不支持锚点时用 getBoundingClientRect() 与 position: fixed 回退,并在窗口尺寸变化、折叠操作后重新测量。折叠本身由 html:has([data-dsh-sidebar-collapse][aria-expanded="false"]) … 将按钮条子元素设为 display: none。

适用场景与注意

  • 适合:常装多个 DSH 客户端面板插件、侧栏按钮条挤占工作区与会话列表高度的用户。
  • 不适合:面板少于 5 个时本插件不会显示按钮(按设计如此);依赖窄图标栏导航时不应依赖折叠(宿主会暂停折叠)。
  • 安全与信任:客户端插件注入 UI 与样式,安装前请自行审阅源码与 MIT 许可;社区目录与 GitHub 星标(截至资料抓取为 0)仅作参考,不代表官方背书。

结尾

dsh-sidebar-collapse 用一个小按钮换侧栏纵向空间,逻辑单一、可卸载即消失。需要安装入口可看 插件目录页,行为细节与截图以 GitHub README 为准。

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

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

小夜