dsh-sidebar-dock:把工作区与会话列表四向停靠

前言

DeepSeek Harness(DSH)左栏通常同时承担插件图标条、品牌行、底部设置,以及「工作区 / 会话记录」树。插件装得多了,会话列表很容易被挤窄,甚至难以浏览。宿主 ctx.layout 只提供 toggleSidebar、openRightbar 等开关,并没有把会话树换到其它边的 API;官方插件文档也倾向于「占住已分配好的 slot」,而 sidebar.workspaces 仍由 @deepseek-ai/dsh-client-ui-sidebar 内部渲染。

dsh-sidebar-dock(维护者 Ethan1999991231)用可移除的样式表与 DOM 标记,把「工作区 / 会话记录」整块单独停靠到左、右、上、下任意一边,插件条与设置钮留在原位;运行时可在 设置 → 通用 里切换,无需改宿主文件。

这是什么

  • 定位:DSH bundle 插件(package.json 声明 dsh.bundle.patch),当前包名 @local/dsh-sidebar-dock,版本 1.3.0,许可证 MIT。
  • 解决的问题:左侧栏拥挤时,把会话树挪到其它边,并可按需收窄左栏、贴边自动收纳。
  • 社区目录:SkillHub 条目;源码:GitHub — Ethan1999991231/dsh-sidebar-dock。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

下面介绍 README 中已写明、可在界面复现的能力。

四向停靠与数据同步

  • 停靠:左侧(默认,等同不改动)/ 右侧 / 上侧 / 下侧;点选后立即生效,无需重启 DSH。
  • 「工作区 / 会话记录」仍跟随宿主数据更新,新建工作区与会话会照常出现在已选一侧。

左栏宽度

停靠到非左侧时,左侧插件条可按档位收窄,把横向空间还给中间会话区:

选项 含义
原始 保持宿主宽度(默认)
适中 176px 固定视觉宽度约 176px
紧凑 112px 固定视觉宽度约 112px

自动收纳与触发范围

  • 自动收纳:面板平时收成贴边约 5px 的细条;鼠标贴近该边时展开,移开 420ms 后自动收起。
  • 触发范围(仅监听 pointermove,触发带不可见、不挡点击):窄 32 / 标准 64 / 宽 104 / 很大 160 px。

状态持久化与卸载行为

  • 选项写入浏览器 localStorage;卸载或禁用插件后布局自动还原宿主默认(不写宿主配置、不改宿主文件)。
  • 卸载后 localStorage 键可保留,下次安装同一 bundle 时可继续沿用。

安装与启用

本插件以本地目录为安装目标(需使用本仓库在本机的绝对路径)。安装前请自行阅读源码与 LICENSE,插件在当前 DSH 进程/页面权限下运行。

方式一(推荐)

在 DSH 的 Agent 会话中安装 bundle:

plugin_manager action=install_bundle target=<本仓库的绝对路径>

成功时会加入 profile 依赖并自动 enable;返回 application: applied 即表示已生效。

方式二(命令行)

dsh plugin --profile <profile-name> add <本仓库的绝对路径>

该方式只添加依赖;还需在 DSH「插件」界面打开对应 bundle。

重载说明:首次安装或修改 client.js 后,已打开的窗口通常需要重载页面或重启软件端才能加载新的 client 模块;部分版本里应用内「刷新」不足以更新插件集合。

卸载:在「插件」界面关闭或移除该 bundle。

设置项

路径:设置 → 通用 → 工作区列表停靠位置。

控件 取值 localStorage 键
停靠位置 左侧 / 右侧 / 上侧 / 下侧 dsh-sidebar-dock/position
左栏宽度 原始 / 适中 176px / 紧凑 112px dsh-sidebar-dock/rail
触发范围 窄 32 / 标准 64 / 宽 104 / 很大 160 px dsh-sidebar-dock/zone
自动收纳 开 / 关 dsh-sidebar-dock/peek

恢复默认布局:将停靠位置改回 左侧,或清除上表对应键。

典型用法

  1. 按上文任选一种方式安装 bundle,并重载页面或重启客户端。
  2. 打开 设置 → 通用,找到「工作区列表停靠位置」。
  3. 若左侧插件较多,可将停靠改为 右侧 或 上侧,左栏宽度选 紧凑 112px 或 适中 176px。
  4. 需要更多中间区域时,可开启 自动收纳,并按习惯调整 触发范围(例如标准 64px)。
  5. 若侧栏处于收起(rail)态,README 说明插件不会接管布局,设置行会提示先通过宿主侧栏展开;可先展开侧栏再改停靠。

实现要点(便于排障)

插件 README 写明:因 @deepseek-ai/dsh-client-ui-layout 三列 grid 写在 AppFrame 内且无换边 API,实现走最小侵入样式表——用 [data-shell-bottom] 等稳定属性锚定列,从 getComputedStyle 读列宽,通过 html[data-dssb-pos] / html[data-dssb-peek] 切换规则;默认 left 时不追加规则,与宿主一致。DSH 升级后若 class 哈希变化,插件不依赖 class,而依赖 data-shell-bottom、data-rightbar-col、data-slot="sidebar.workspaces" 等属性。

适用场景与已知边界

适合:左栏插件多、希望会话树占满一侧或贴边收纳;愿意接受样式层调整而非宿主原生 API。

请注意:

  • 侧栏收起时插件不接管,需先展开。
  • 非左侧停靠时,宿主分栏拖拽把手会隐藏(left 按默认 lane 计算,换边后易错位);改回「左侧」可恢复。
  • 右栏(rightbar 等)仍在原位置,面板会为其让路;其它插件的固定层若 z-index 更高,可能压住面板边角。
  • 官方 ui-plugin.md 不建议读改他人 DOM;本插件在文档中坦承该约束,并采用可移除样式与自有 data 属性降低侵入。

结尾

dsh-sidebar-dock 在不改宿主配置的前提下,把工作区与会话列表四向停靠,并配合左栏宽度、贴边收纳与可配置触发带,缓解左栏过挤的问题。安装命令与配置项以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/Ethan1999991231/dsh-sidebar-dock
  • GitHub:https://github.com/Ethan1999991231/dsh-sidebar-dock
羽毛球分组比赛记分
小程序二维码

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

小夜