dsh-workspace-resizer:用可拖动分隔条拉高侧边栏工作区

前言

DeepSeek Harness(DSH)的侧边栏是一列纵向 flex:上方是「插件 / 插件市场 / 自动化任务」等全局面板导航,下方是工作区与会话列表。导航区固定占高、自身不滚动,工作区用 flex: 1 吃掉剩余高度。窗口不高时,导航项一多就会把纵向空间占满,工作区往往只剩两三百像素,会话列表只能在小块区域里滚动。原先没有内置的调整手段——要么拉高整个窗口,要么到「更多」里逐个取消固定导航项。下面介绍社区插件 dsh-workspace-resizer(维护者 nomxy,分类:客户端),在导航与工作区之间加一条可拖动分隔条,把高度在两块区域之间重新分配。

这是什么

dsh-workspace-resizer 给 DSH 侧边栏增加一条夹在「全局面板导航」与「工作区」之间的可拖动分隔条。逻辑在 lib/client.js,纯客户端;宿主侧的 lib/index.js 为空插件壳。包版本 0.1.0,许可证 MIT,要求宿主 dsh >= 0.2.1-rc.1(见 package.json 的 engines.dsh)。装好后默认不改变现有布局,直到你第一次拖动分隔条。

核心功能

拖动与恢复

  • 拖动分隔条:向上拖 → 导航变矮并在内部滚动,工作区立刻拿到省下来的高度;向下拖 → 导航变高。
  • 双击分隔条恢复默认布局。
  • 键盘(分隔条聚焦后):↑ / ↓ 微调;按住 Shift 步长更大;Home 或 0 恢复默认。

拖动结果写入浏览器 localStorage,键名为 dsh.workspace-resizer.navHeight,重启后沿用。

插件面板展示

在侧边栏进入「插件」管理页时,该插件以卡片形式出现。标题与说明来自 locale/*.json,图标来自 package.json 的 icon(icon.svg)。中文标题为「工作区分隔条」,说明为「上拖细线,让工作区会话列表变高」;卡片上说明只显示一行并截断,文案因此较短。

实现要点(便于判断是否信任)

插件不依赖带构建 hash 的 class 名,而是通过 DOM 结构定位:flex 列容器里带多个按钮的 <nav>,其兄弟节点为 overflow: hidden 且 flex-grow: 1 的工作区容器;找不到目标时静默不生效。只改 nav 的 inline max-height / overflow-y,工作区仍靠原有 flex: 1 伸缩;分隔条挂在 body 上、position: fixed,跟着导航底边,不插入 React 管理的结构。DOM 连通性只做一次廉价检查,重新定位交给 ResizeObserver 与 resize,避免聊天流式输出时每帧强制排版。

安装与启用

已抓取资料中的 README 未给出 dsh plugin add … 一类官方安装命令,此处不凭仓库名拼接命令。可从社区目录页或 GitHub 仓库获取插件包信息,按你当前 DSH 版本支持的插件安装方式安装 nomxy/dsh-workspace-resizer。

安装前建议自行查看 GitHub 源码 与 MIT 许可证;客户端插件在 当前 dsh 进程权限 下运行,与宿主同源页面脚本能力一致。

若你在本地用 file: 依赖改动了源码,pnpm 硬链接到 profile 后,已安装副本不会自动跟随 inode 变化。资料中的同步示例路径为 Windows 用户环境:

bash C:/Users/siyin/Documents/deepseek-harness/default-workspace/_test/sync-plugin.sh

同步后需重启应用:宿主列插件时会重读元数据,客户端脚本需重新加载才生效。Linux 或其他环境请以你 workspace 内实际的插件同步流程为准。

典型用法

  1. 安装并启用插件后,打开 DSH 侧边栏(非仅图标条的收起态)。
  2. 在导航底边与工作区顶边之间找到分隔条,向上拖动,直到工作区会话列表高度满足阅读需要。
  3. 若布局拖乱,双击分隔条,或在分隔条聚焦后按 Home / 0 恢复默认。
  4. 关闭浏览器或重启 DSH 后,上次拖动高度会从 localStorage 恢复,无需重复设置。

适用场景与注意

适合:长期在固定窗口高度下使用 DSH、导航项较多、又希望工作区会话列表尽量一屏可见的智能体开发者或日常用户。

已知限制(来自 README):

  • 侧边栏收起成图标条时,分隔条自动隐藏。
  • 工作区至少保留 132px,导航至少保留 34px,超出范围会被夹住。
  • 依赖当前侧边栏 DOM 结构(<nav> + flex:1 工作区容器)。DSH 大版本若改侧边栏结构,插件会静默失效而非报错。

社区插件目录 skillhub.cn 上的 nomxy/dsh-workspace-resizer 为独立站点,与 DeepSeek / 幻方无官方从属关系;安装与使用责任在维护者与使用者之间,以仓库 Issue 与许可证为准。

结尾

dsh-workspace-resizer 用一条轻量分隔条解决「导航占满、工作区太矮」这一具体布局问题,改动局部样式与本地持久化,不碰会话数据。需要细节与源码时,见 GitHub:nomxy/dsh-workspace-resizer 与 SkillHub 目录页。

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

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

小夜