dsh-plugin-layout-organizer:DSH 插件布局整理

前言

DeepSeek Harness(DSH)采用插件化架构,把各类能力以按钮的形式分散在侧边栏、对话标签、输入框停靠行与设置导航等位置。当插件数量增多时,这些按钮往往会挤在一起,既不利于快速定位,也不容易区分官方与第三方能力。本插件聚焦于按钮的显示位置:通过拖拽排序、官方/第三方分隔线与按钮收纳包,把混乱的按钮面板整理成可预测的布局。

插件定位

dsh-plugin-layout-organizer 是一个 DSH 客户端插件,由 var-lin 维护。它不修改 DSH 的插件注册表,而是直接在 DOM 层对按钮的显示顺序与可见性做调整,因此依赖官方 UI 结构,大版本升级后可能需要适配。

核心功能

1. 拖拽排序

DSH 把插件按钮投放到五处槽位:侧边栏顶部、侧边栏底部、对话标签、对话输入框停靠行、设置导航。本插件对这五处一视同仁:

  • 按住任意可拖按钮拖动,松手即保存;拖动中按钮跟随指针,经过的行会留出缺口,松手不会触发按钮本身。
  • 第三方按钮始终可拖;官方按钮默认锁定,在设置里打开「允许拖动官方按钮」后即可拖动。
  • 默认遵循「分组主序」:官方整体在前、第三方整体在后,组内顺序完全由拖拽决定。
  • 「允许官方和第三方混合排序」默认开启(挂在「允许拖动官方按钮」下的子开关):开启后保存的顺序原样生效,第三方按钮可以落到两条官方按钮之间。

本插件自己的设置入口(设置导航里的「插件布局整理」那一行)同样支持拖拽与收纳。

2. 官方 / 第三方分隔线

默认关闭。打开「显示官方 / 第三方分隔线」总开关后,可在三个位置分别开关:侧边栏顶部、对话标签、设置导航;侧边栏底部与输入框停靠行永远不画——因为单列/单行里两类按钮本来就交错,插入一条线容易被误读为多出一组。

分隔线画在最后一条官方按钮与第一条第三方按钮之间的空隙正中,横排竖排自动适配方向。弹窗盖住时自动隐藏;设置导航里的线画在弹窗内部(z-index 1010),其余在 body 级(z-index 90),不会压过官方弹窗。当行被卸载、被祖先隐藏或裁剪,或在混合排序下两类按钮真正交错时,分隔线会自动收起。

3. 按钮收纳包

在任意可收纳按钮上点击右键,会弹出与 DSH 官方菜单样式一致的「上移 / 下移 / 官方·第三方 / 收纳」菜单;也可以在设置页行尾点击「收纳」。

菜单中有一项直接写目标分类:当前归「第三方」的行显示「官方」,当前归「官方」的行显示「第三方」,点击即可改判。改判只改本插件的本地记录,与设置页行内按钮同义,插件本身不受影响。

被收纳的按钮从界面消失,但插件仍在正常运行——收纳只是视觉隐藏,随时可恢复。

打开收纳包的方式有三种:

  • 快捷键:桌面端默认 Ctrl/Cmd + Shift + O;网页端 Windows/macOS 为 Ctrl/Cmd + Shift + Alt + O,Linux 为 Ctrl/Cmd + Shift + ,;均可在设置里重绑。
  • 悬浮启动器:屏幕右缘或顶栏正下方,可拖到任意位置,松手后吸附到较近的左/右边缘并保留纵向位置。
  • 设置页「按钮收纳包」区域。

收纳包面板尺寸固定:宽度 min(520px, 92vw)、高度 min(720px, 84vh)。标题、搜索、排序与「全部恢复」钉在顶部,只有列表区滚动,条目再多也不会把面板撑高。

顶部有一个搜索框,可按名称、id 或所属位置实时过滤,输入框左侧为放大镜,右侧 × 图标可清空。无匹配时列表会显示提示文案。

列表中的条目可直接点击:

  • 点「插件市场」会自动打开设置并跳到该页。
  • 点侧边栏按钮会切换收纳包面板。
  • 点底部图标或对话标签会触发原按钮。
  • 界面上本来就点不动的行(例如输入框停靠行的只读统计条)在这里也是灰的、点不动——它本来就没有对应页面,点击不会导航,也不会顺手把收纳包关掉。

收纳包支持三种排序:按页面、按分类、按名称。另有独立的「全部恢复」(两步确认);单行的「恢复」一点即恢复。

每行按「圆点 + 名称 + 插件 id + 恢复」排布,名称过长时打点省略,恢复按钮不换行;名称右侧的灰色标签是插件的 id,不是页面名。

4. 设置页

在 DSH 设置中找到「插件布局整理」(插件管理器的详情面板里也有同一设置页):

  • 顶部分页导航:药丸式分段控件,分为「位置管理」(收纳包入口与五张位置卡片)与「通用设置」(各项开关与快捷键),默认停在位置管理。点击只渲染当前那一组,滚动位置与搜索词在切换时保留;搜索期间收纳包入口卡片会让位。
  • 通用设置:
  • 「允许拖动官方按钮」总开关(子开关:混合排序)。
  • 「显示官方 / 第三方分隔线」总开关(子开关:三个位置)。
  • 悬浮启动器开关。
  • 「重置所有配置」(两步确认:首点武装,三秒内再点执行,超时复原;清空顺序、分类、收纳与全部开关)。总开关关闭时子行灰显但仍可点击,点灰子行等于「我要用这一路」,会点亮该路并连带顶起总开关。配置还是出厂值时该按钮是灰的,按下去不会改变任何状态。
  • 标题行:右侧显示当前版本号(如 v1.2.3),再往右依次是「导出配置」(将整个持久化状态写成 JSON 文件)、「导入配置」(版本不符的整体拒绝,不会半套用)、GitHub 仓库、问题反馈(打开本仓库的 Issues 页面)。窗口太窄放不下时整组掉到第二行,从左边开始与标题左边缘齐。
  • 快捷键:支持录制、恢复默认;冲突或不可用的组合会有文字警告。
  • 按钮收纳包:显示当前数量,一键打开。面板里按位置或按种类分组时,每个分组标题右侧有一个「恢复本组默认」(把这一组覆盖到的每一处位置的顺序与收纳一起清掉;按名称排序没有分组标题,也就没有这个按钮)。点分组标题即可折叠/展开该组(小三角在标题行最右端、恢复按钮之后,跟着转,状态跨刷新记住);搜索期间照旧可以折叠。
  • 搜索:位置管理页顶部有搜索框,按按钮名称或 id 实时过滤;卡片与行都不匹配时整张卡片让位,收纳包入口卡片在搜索期间也一并让位。收纳包面板里也有同样的搜索行。
  • 五张位置卡片:每张卡片标题右侧有「恢复本组默认顺序」(两步确认),同样是次级动作、不加粗。点卡片标题即可折叠/展开这一整类(标题行最右端、恢复按钮之后的三角跟着转,状态跨刷新记住;搜索期间照旧可以折叠)。每行的名称区(圆点 + 名称 + id)可点,点了会先跳到这个按钮所在的位置、再关掉设置弹窗。界面上本来就点不动的行,名称区灰着不可点。卡片既没有保存顺序、也没有收纳行时,「恢复本组默认顺序」是灰的。

当宿主服务缺失时,插件会进入降级模式(例如没有快捷键服务时收纳包只剩悬浮启动器),原因会显示在设置页顶部。

安装与启用

本包是标准 DSH bundle,用内置插件管理器安装:

dsh plugin --profile <你的 profile> add dsh-plugin-layout-organizer

安装完成后刷新页面。

典型用法

  1. 安装后,在任意可拖按钮上按住并拖动,调整顺序。
  2. 打开「允许拖动官方按钮」,把官方按钮拖到想要的位置,或开启「允许官方和第三方混合排序」后把两者交错排列。
  3. 打开「显示官方 / 第三方分隔线」,在侧边栏顶部、对话标签或设置导航中看到一条视觉分隔线。
  4. 对于不常用的按钮,在右键菜单或设置页行尾点击「收纳」,把按钮收进收纳包。
  5. 按 Ctrl/Cmd + Shift + O(或使用悬浮启动器)打开收纳包,搜索并恢复需要的按钮。

适用场景与注意

本插件适合需要频繁调整按钮布局、希望快速区分官方与第三方功能的 DSH 用户。插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。

插件只改变按钮的显示位置,不会卸载或启停任何插件,因此被收纳的插件仍然正常工作。

总结

dsh-plugin-layout-organizer 通过拖拽排序、官方/第三方分隔线与按钮收纳包,把分散在五处槽位的按钮面板整理成清晰、可控的布局。它不依赖任何外部依赖,与 DSH 的官方 UI 样式保持一致,适合作为 DSH 插件体系中的辅助工具。

  • 目录页:https://www.skillhub.cn/plugins/var-lin/dsh-plugin-layout-organizer
  • GitHub:https://github.com/var-lin/dsh-plugin-layout-organizer
羽毛球分组比赛记分
小程序二维码

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

Xiaoye