dsh-sidebar-suite:为 DSH 左侧栏提供三种可切换布局

前言

在 DeepSeek Harness(DSH)桌面客户端里,左侧栏通常同时承担「扩展面板」和「工作区」两段内容。它们挤在同一列垂直空间里,谁展开得多,另一方就被压缩。对经常在不同面板与工作区之间切换的开发者来说,这种「抢高度」的体验并不理想。

社区插件 dsh-sidebar-suite(维护者 YONAN1269,npm 包名 dsh-sidebar-suite)针对这一问题,在不重写宿主 DOM 的前提下,提供三种侧栏布局与图形化默认模式设置。本文介绍其定位、能力与安装用法,事实依据为项目 GitHub README 与包元数据;插件在 SkillHub 目录 归类为客户端,截至资料记录 GitHub 星标为 1。

这是什么

dsh-sidebar-suite 是一个 DSH 组合包(bundle):客户端通过 cordis.patch.yml 自动挂载,并向侧栏注入控制逻辑。它解决的核心问题是:让扩展面板组与工作区组在左侧栏中的占用方式可由用户选择,而不是固定堆叠。

项目作者写明已在 DSH 0.2.2-rc.1(desktop profile) 上验证;当前发布版本为 0.1.3,许可证 MIT。更长的中英说明见仓库内 DETAIL.md。

三种布局模式

下面三种模式通过 config.mode 区分(a / b / c),并在侧栏顶部控制栏支持会话内切换。

模式 值 行为(中文说明)
折叠 a 扩展组与工作区组各自独立折叠
标签页 b(默认) 两组共用一栏,通过标签互斥切换
浮层 c 工作区常驻,扩展面板以浮层形式展开

标签页模式下,整块工作区区域会被隐藏,区域内其它入口一并隐藏——这是 README 中写明的「一组一栏」设计,而非遗漏。

浮层模式定位依赖 CSS :has(),需要 Chromium 内核 客户端。

默认模式与会话切换

config.mode 写在 profile 的 cordis.patch.yml 中,表示启动时的默认布局。在侧栏控制栏上临时点选「折叠 · 标签页 · 浮层」只影响当前会话, deliberately 不写盘、不进 localStorage;下次启动仍回到配置文件里的默认值。

若要在文件中设定启动默认,可参考 README 示例:

# ~/.dsh/profiles/desktop/cordis.patch.yml
- id: dsh-sidebar-suite
  config:
    mode: b            # a = fold, b = tabs, c = overlay
    showQuickSwitch: false

在 插件详情页顶部 的图形化设置里修改 mode,会通过宿主 configForms 控制器写入,成为新的启动默认,无需手改 YAML、无需重启。其它字段(tab、foldExt、foldWs、showQuickSwitch)仍按控制栏操作正常持久化。

组合包注册了 plugins.bundle.config 槽位;设置区以 order:-1 置于该插件详情页最上方,且仅作用于 [data-plugin-detail="dsh-sidebar-suite"]。React 与 slots 服务为可选依赖:缺省时跳过图形化注册,侧栏控制栏仍可工作。

控制栏与配置项

侧栏顶部有一排文字按钮,大致为:折叠 · 标签页 · 浮层 │ 显示工作区 / 展开扩展 · 换布局。

  • 换布局(Cycle):侧栏宽度小于 300px 时自动隐藏;若不需要,可在配置中设 showQuickSwitch: false 彻底移除。
  • 实现上,持久状态写在 <html> 上的 data-dsbs-* 属性,由 CSS 控制显隐,插件不重构宿主 DOM。
  • 官方配置服务不可用时,会降级到 localStorage["dsh-sidebar-suite:state"],并在控制栏给出提示。

宿主节点 [data-slot="sidebar.workspaces"] 与 nav.panelList 被 README 称为半稳定约定;宿主变更时插件会降级而不抛错。

安装与启用

从 npm 安装(README 原文命令):

dsh plugin --profile desktop add dsh-sidebar-suite

本地开发时,可将命令中的包名换成本地目录路径,或使用 pnpm pack 生成的 .tgz。

注意以下说明均来自 README:

  1. 组合包自带的 patch 会自动挂载,不要再在 profile 的 cordis.patch.yml 里手写同名挂载行,否则会加载两次。
  2. 客户端代码不支持热重载;安装或修改文件后需完全退出并重新打开 DSH。
  3. 本包刻意不声明 engines.dsh,因当前 DSH 为预发布版,常规 semver 范围易被误判为不兼容。

典型用法小结

  1. 执行上述 dsh plugin --profile desktop add dsh-sidebar-suite,重启 DSH。
  2. 打开 插件 → dsh-sidebar-suite,在详情页顶部图形化卡片中选择默认布局(a / b / c)。
  3. 日常在侧栏顶栏切换布局;需要长期默认时再改图形化设置或 cordis.patch.yml 中的 mode。
  4. 窄屏或精简 UI 时,按需设置 showQuickSwitch: false。

适用场景与注意

适合谁:使用 DSH desktop profile、左侧栏同时依赖扩展面板与工作区,且希望用折叠、标签或浮层之一固定工作方式的开发者。

运行与安全:插件以当前 DSH 进程权限在客户端运行;安装前建议自行阅读 仓库源码 与 MIT 许可证。README 中含自愿打赏的微信收款码说明,与插件功能无绑定。

生态说明:DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装来源以 npm 包名与仓库文档为准。

结尾

dsh-sidebar-suite 用三种布局与可选图形化默认设置,缓解 DSH 左侧栏「扩展 vs 工作区」争高问题,且声明零 DOM 重写、会话级临时切换与配置级启动默认分离。进一步了解可查阅 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜