dsh-ui-hub:DSH Web 插件 UI 集中管理

前言

DSH 插件生态里,多个插件可能同时往页面添加按钮、图标、图表、输入框等界面元素。插件之间没有统一的位置管理,界面重叠、遮挡、挤在一起是实际会遇到的问题。

dsh-ui-hub 是 Han-1413141 维护的 DSH Web 客户端插件,MIT 许可证。它把页面上的官方 UI 和插件 UI 枚举成可管理列表,提供逐个开关、拖拽/坐标定位、碰撞避让和一键自动排布。

这是什么

  • 插件名:dsh-ui-hub
  • 维护者:Han-1413141
  • 许可证:MIT
  • 运行环境:Node.js ≥ 20,并需要支持 dsh plugin 命令的 DeepSeek Harness
  • 启动方式:插件随 dsh web 启动

一句话:给 DSH Web 页面里的 UI 提供统一控制面板。

核心功能

下面介绍已核实的功能:

  • 枚举平台每个 [data-slot] 插槽里的插件 UI,以及脱离插槽的浮动控件。
  • 不认识的新控件可用「拾取元素」点击捕获。
  • 面板顶层分成「官方 UI」与「插件 UI」两个类别。
  • 类别与插槽组两级折叠,默认全部折叠,展开状态自动记忆。
  • 每个 UI 根节点独立开关,并可展开内部按钮、图标、图表、输入框逐个开关。
  • 支持默认、微调、浮动三种位置模式。
  • 拖拽模式下直接拖动任意 UI 改变位置,拖右下角手柄改变大小。
  • 碰撞避让支持关闭、智能、严格三档;锁定某项后只挤别人、不挤它。
  • 一键自动排布,把所有浮动 UI 沿右缘排成对齐的纵向列。
  • 所有开关、位置、大小与折叠状态保存在浏览器 localStorage,刷新或重开会话后自动恢复。
  • 不修改任何插件代码,关闭或卸载插件即逐元素还原。

安装与启用

先安装插件:

dsh plugin --profile web add github:Han-1413141/dsh-ui-hub

安装完成后重启 dsh web。页面右上角会出现「UI 管家」胶囊按钮,也可以使用快捷键 Ctrl+Shift+U 或 macOS ⌘⇧U 打开管理面板。

典型用法

1、打开面板后,顶层是「官方 UI」和「插件 UI」两个折叠类别。点击类别展开其下按插槽分组的组名,再点击组名展开该组的 UI 条目。

2、条目行左侧的开关用于立即显示或隐藏对应 UI,右侧 可展开详情。

3、在详情里设置位置模式:

  • 默认:保持原有布局。
  • 微调:填写水平/垂直偏移。
  • 浮动:填写 X/Y 坐标。

4、需要直接调整时,在顶部工具条开启「拖拽模式」。开启后可以直接拖动页面上的任意 UI 改变位置,也可以拖动右下角手柄改变大小。

5、顶部工具条还可以使用:

  • 「自动排布」:把所有浮动 UI 沿右缘排成对齐的纵向列。
  • 「拾取元素」:点击页面上未识别的控件,将其纳入管理。
  • 「恢复全部默认」:将手动调整后的设置恢复默认。

6、也可以通过编程接口操作:

window.dshUiHub.items()
window.dshUiHub.setConfig(key, { on: false })
window.dshUiHub.arrange()
window.dshUiHub.dragMode(true)

上述调用分别用于读取 UI 列表、隐藏某个 UI、一键自动排布和开启直接拖拽模式。

适用场景与注意

适合在 DSH Web 中安装了多个插件、页面 UI 较多,且需要单独隐藏、移动、锁定或整理浮动控件的使用者。

使用前注意:

  • 浮动模式使用 position:fixed。如果某个 UI 的祖先元素带 CSS transformfixed 会相对该祖先定位;这类 UI 建议使用「微调」模式。
  • 发现依赖平台公开的 [data-slot] 锚点与各插件的 data-* 标记。平台升级后若改名,对应条目会按新身份重新出现,旧配置仍保留在本地。
  • 内部元素按 DOM 顺序编号。插件重排子元素后,配置可能跟随序号落到相邻元素上。
  • 默认和微调模式尊重原插槽布局。跨插槽的整页重排,请把条目切到浮动后用「自动排布」。
  • 定位通过 data-uihub-float、CSS 变量和 !important 规则实现,去掉标记即恢复插件自己的样式。
  • 所有状态保存在浏览器 localStorage,与当前浏览器环境相关。
  • 插件会在当前 DSH Web 环境中运行。安装前请检查源码与 MIT 许可证,确认来源和代码可信。

链接

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

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

Xiaoye