DSH Session Groups:为 DSH Web 会话侧栏增加 Edge 标签页分组体验

前言

DSH Web 的会话侧栏默认只显示时间和标题,随着会话增多会变成一条很长的流水账。靠置顶和归档只能缓解,不能组织。Edge 浏览器的标签页分组提供了一种直接的心智模型:把同类的东西收进一个彩色分组,折叠起来,需要时再展开。

DSH Session Groups 把这个心智模型搬到了 DSH 的会话侧栏,通过分组、折叠、颜色标记和状态汇总,让一长串会话重新变得可管理。

插件介绍

DSH Session Groups 是一个 DSH Web 客户端插件,由 xyzYaeMiko 维护。它通过浏览器本地视图层叠加的方式,在 DSH 会话侧栏中实现类似 Edge 标签页分组的体验,支持组内分组、折叠状态汇总、工作区树、单列表视图和递归排序等功能。

核心价值在于:在 DSH Web 里,用分组的方式组织会话,保持原有侧栏习惯,不改变会话数据本身,只改变视图呈现。

核心功能

分组与排序

  • 拖入分组:把会话拖到另一条会话的中部,即可创建新分组,或加入目标会话所在分组。
  • 精确排序:拖到会话的上半区 / 下半区,插入到对应位置。
  • 同级混排:分组和未分组会话可以一起拖动排序。
  • 组内排序:组内会话可以重新排序,也可以拖出分组。
  • 拖动嵌套分组:把组拖到另一个组的中间即可嵌套,最多 3 层。把组拖到工作区空白、顶层会话或根组边缘可移出并重新排序;把组拖到组内会话的上/下边缘可插入到组内对应位置。
  • 工作区隔离:分组严格属于当前工作区;跨工作区拖拽会被拒绝。

视图模式

  • 分组视图:默认模式,会话按分组显示,支持组内分组。
  • 原版视图:保留 DSH 自带浏览器,不使用分组。
  • 工作区树:在视图选项中开启后,子工作区按目录层级嵌套显示,父工作区折叠会收起整棵子树。
  • 单列表:在视图选项中切换为一条跨工作区的会话列表;分组保持完整,不会被拆散成单个会话。

折叠与状态汇总

  • 分组折叠:折叠分组后,组头会显示组色边框,并汇总组内会话的状态(运行中、等待、已完成),相同状态显示数量。
  • 工作区折叠:最外层工作区和子工作区折叠时,都会在标题旁汇总内部会话的运行 / 等待 / 完成状态。
  • 折叠子工作区选中态:当前打开的会话位于某个折叠的子工作区中时,该子工作区标题会显示深灰色选中背景。
  • 展开水位线:会话多时显示「展开其余 N 个会话」,展开后可「收起」。

颜色与命名

  • 8 种预设颜色:在组头 ... 菜单中选择。
  • RGB 自定义:组头 ... 菜单里的颜色列表最左侧的 RGB 入口可以填写 R/G/B 自定义颜色。
  • 重命名:双击组名即可重命名。
  • 解散分组:组头 ... 菜单提供解散选项。

排序与主题

  • 递归排序:视图选项提供「按时间顺序排序」和「按首字母排序」,每层递归排序;组和子工作区按内部最晚时间 / 名称首字母排序。汉字按拼音首字母(如 会话 → hh、游戏 → yx)。
  • 主题适配:浅色模式保持原来的组色;深色模式使用单独提亮的分组配色。

原版功能保留

  • 会话行保留原版图标和右键/悬停操作:置顶、重命名、分叉、归档 / 取消归档、复制 Session ID。
  • 状态显示与官方一致:运行中转圈、等待审批 / 计划待审 / 等待回答、运行结束未读绿点。
  • 已归档会话默认隐藏;可在「视图选项」中取消隐藏,显示为原版灰色标题。
  • 工作区 ... 菜单提供「按时间顺序排序」「按首字母排序」。

安装

前置条件

  • 已安装并运行 DSH Web
  • DSH 版本满足 >=0.2.1-rc.2 <0.3.0
  • 当前 Web profile 允许安装本地插件

从 GitHub 克隆安装

git clone https://github.com/xyzYaeMiko/dsh-session-groups.git
dsh plugin install "$PWD/dsh-session-groups"

安装后刷新 DSH Web。

从本地目录安装

  1. 打开 DSH Web 的插件管理面板。
  2. 选择「从本地目录安装」。
  3. 选中本项目根目录(包含 package.json、cordis.patch.yml 的目录)。
  4. 安装完成后刷新页面。

安装成功后,侧栏底部会出现分组视图切换按钮。

快速上手

  1. 点击侧栏底部的分组按钮,进入分组视图。
  2. 把一条会话拖到另一条会话的中间:新建或加入分组。
  3. 把会话拖到另一条会话的上/下半区:调整位置,不分组。
  4. 拖动组头:调整分组在会话列表里的位置。
  5. 双击组名:重命名;组头 ...:换色、折叠、解散。
  6. 想回到原版侧栏:顶部「视图选项」→「原版视图」。

数据与兼容性

存储机制

所有分组数据都是浏览器本地视图状态,不写入 DSH Session / Host 记录。存储键为 dsh.session-groups.v1,存储位置为浏览器 localStorage。

存储内容包括:
- 分组、颜色、折叠状态
- 顶层顺序、子工作区顺序、手动排序
- 隐藏已归档偏好

兼容性与同步

  • 同步:不跨浏览器、不跨 profile、不跨 origin
  • 写入 Host:否,只做视图层重组
  • 平台:仅 DSH Web,不支持 Desktop 端
  • 卸载:禁用或卸载插件后,原版侧栏自动恢复

清除浏览器站点数据会丢失分组。分组状态不会上传到任何服务器。

常见问题

Q:刷新后分组会消失吗?
A:分组保存在 localStorage,正常刷新会保留。

Q:分组会同步到其他浏览器或设备吗?
A:不会。目前是当前 origin / profile 的本地视图状态。

Q:可以不用分组视图吗?
A:可以。顶部「视图选项」切回「原版视图」即可,原来的 DSH 侧栏会恢复。

适用场景与注意事项

适合需要通过分组方式组织大量会话的开发者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

结尾

DSH Session Groups 通过本地视图层叠加的方式,在 DSH Web 会话侧栏中实现了 Edge 标签页分组体验,支持组内分组、折叠状态汇总、工作区树、单列表视图和递归排序等功能。它让会话管理从流水账变成了可折叠、可分类的树形结构,适合需要组织大量会话的场景。

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

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

Xiaoye