dsh-sidebar-left-split:为 DSH 左侧栏补上可拖动的行级分隔条

前言

DeepSeek Harness(DSH)左侧栏默认是上下两段:上方是全局面板列表,下方是「工作区」会话树。面板列表高度由内容撑开、不能手动调节。窗口较矮时,工作区经常被压到几乎看不见;想给会话树多留一点空间时,也没有现成的调节方式。

社区插件 dsh-sidebar-left-split 只改一件事:在面板列表与工作区之间加入按行磁吸的可拖动分隔条。下面介绍它的定位、能力与安装用法。

这是什么

dsh-sidebar-left-split(目录名 yhprime/dsh-sidebar-left-split)由维护者 yhPrime 发布,分类为客户端插件。它不改 node_modules 里的第三方包,也不改 DSH 本体;通过标记属性与 CSS 变量驱动样式,不往 React 管理的子树里插节点,避免上游重渲染冲掉分隔条。

插件在插件管理里显示为「侧栏工作区分隔 / Sidebar workspace splitter」。当前包版本为 0.3.0,许可证 MIT,要求 Node.js ≥ 22。

核心功能

DSH 原生侧栏里,「更多」按钮下方即是工作区上缘。本插件在交接处提供 2px 细分隔线与上下拖动光标,行为要点如下。

拖动与高度记忆

  1. 按住交接处上下拖动时,面板列表以「一个按钮」为一格跳变:往下拖露一行,往上拖收一行,不停在半行上。
  2. 最小状态只露一行,其余靠 overflow-y: auto 滚动;最大状态为全部按钮可见,再往下拖不再增加。
  3. 记忆的是「留几行」而非像素,刷新或重启后仍按行对齐;窗口变矮时自动回收,保证工作区至少约 120px。
  4. 双击交接处恢复「按内容自适应」,清除记忆的行数。

滚动磁吸

面板列表被压小后,滚轮一格对应一行;触控板细碎滚动会先累积再跳行。拖滚动条或键盘操作停下后,自动对齐到最近整行。全部按钮已露出时不拦截滚轮,页面照常滚动。

与宿主 UI 的衔接

侧栏收成窄轨(带 *_collapsed 状态时)自动让开,不影响图标列。滚动条外观沿用宿主;分隔线使用 --dsw-alias-border-l1/-l2,不另设主题色。选择器依赖上游 CSS Module 类名后缀 _regionArea、_panelList 及结构位置,不依赖哈希前缀。

安装与启用

插件以当前 DSH 进程权限在浏览器端注入逻辑(client.js,platform: web,immediately: true)。安装前应自行浏览源码与 MIT 许可证,确认可接受其行为与依赖边界。

官方 README 给出的获取与安装步骤如下。

  1. 将仓库克隆到本地(安装命令来自项目 README):
git clone https://github.com/yhPrime/dsh-sidebar-left-split.git
  1. 在 DSH 中通过插件管理安装:使用 plugin_manager → install_bundle,target 填克隆目录的绝对路径。

  2. 刷新页面;在插件管理中应能看到「侧栏工作区分隔 / Sidebar workspace splitter」。

建议先在该目录执行 pnpm pack 生成 tarball,再用 tarball 的绝对路径作为 target。直接传目录会建立 pnpm link(link:),卸载时可能连带删掉源码目录。若安装新版本后 application 报 restart-required(清单层版本号变更),需重启 DSH 才会加载新 bundle。

典型用法

操作 效果
悬停在「更多」与工作区之间 出现分隔线与上下拖动光标
按住上下拖动 按行磁吸:一格对应一个按钮;往下露一行、往上收一行
往上拖到底 只留一行,其余靠滚动条
往下拖到底 所有按钮显示,不再下移
压小后在列表里滚动 一行一步;拖滚动条停下后对齐最近整行
双击交接处 恢复自适应(清除记忆行数)

项目自带自检,可在克隆目录执行:

node test/check.mjs
node test/client.test.mjs

或 npm test(等价于上述两条串联)。

适用场景与注意

适合谁

  • 经常在矮窗口或多面板场景下使用 DSH,需要固定给会话树留出可视高度的人。
  • 希望面板列表与工作区边界清晰、且调节粒度与「一行一个面板」一致的用户。

实现边界(README 已说明)

  • 交接处为几何命中(距工作区上边缘 ±5px),没有可聚焦的 DOM 抓手,键盘无法直接操作分隔条;无障碍需依赖上游提供真控件。
  • 磁吸格距按实测行高与行距计算,换主题或字号仍应对齐行;面板行数变化时,记忆行数会被夹到当前上限。
  • 若上游重命名 regionArea / panelList 相关 CSS Module 类名,插件会静默不生效(不报错、不改布局)。

DSH 生态奉行「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的客户端扩展,非官方应用商店内置能力。

结尾

dsh-sidebar-left-split 用最小改动补上左侧栏上下分区的手动调节:行级磁吸拖动、滚动对齐与高度记忆,解决窗口变矮时工作区被挤没的常见问题。

  • 社区目录页:https://www.skillhub.cn/plugins/yhPrime/dsh-sidebar-left-split
  • 源码与说明:https://github.com/yhPrime/dsh-sidebar-left-split
羽毛球分组比赛记分
小程序二维码

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

小夜