DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

KhalilYamber /

KhalilYamber/dsh-footer-manager

Verified

DSH 侧栏底部入口管理器:统一入口 + 逐条开关 + 布局修复

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@4bf18984

dsh-footer-manager · 左下角管家

DeepSeek Harness(DSH)的侧栏底部入口管理器。它在侧栏左下角占一格,点开是一个贴着它展开的小抽屉,里面列出底部区域目前所有插件的入口,每条一个开关:可以遮住、恢复。

定位:它不是"更强的插件",它是一把尺子和一个窗帘。 尺子用来量清楚底部区域到底有谁;窗帘用来把不想看的先遮住。

它解决什么

DSH 的 sidebar.footer.action 是一个 kind: "list" 的插槽——所有插件注册的入口都会画出来,没有赢家,也没有谁能把别人摘牌。带来两个现实问题:

  1. 入口一多,底部这一行就挤,且谁先注册谁的位置靠左,后来者只能排队;
  2. 某个入口"看不见了"时,用户没有任何地方可以确认:它是没注册上、被样式挤没了、还是压根没加载。宿主不提供这块的诊断面。

这个插件补的就是这两件:看得见(列出全部入口与其状态)、管得住(逐条遮住 / 恢复)。

功能

  • 统一入口:左下角一个图标,不新增一整行。
  • 入口清单:抽屉里列出底部区域的全部入口,标注「显示中 / 已隐藏 / 本插件 / 不可识别」。
  • 逐条开关:每条一个开关,关掉即从视野里移除;状态存 localStorage,刷新与重启后保留。
  • 全部恢复:一键把遮住的都放回来。
  • 固定占位:管家这一格用 order:-1 钉在底部行首,后装的插件再多也挤不走它。
  • 收编模式(默认关):把其它入口全部藏进抽屉,底部只留管家一格。藏起来不等于失效——它们仍在 React 树里,抽屉里点「打开」就是点它本人,功能一个不少。
  • 宽入口收窄(默认开):把「占满整行」的入口压回内容宽度。背景是有插件在宽侧栏下把入口写成 width: 100%(例如 dsh-wsl-workspace 的 .dww-action--wide),它在 flex 行里会吃掉整行,把同排其它入口挤出去。收窄不改布局方向,也不减功能。
  • 布局修复(可选,默认关):把底部区域从「谁先写谁赢」的抢占式布局拉回正常流,用于排查"入口被挤压"。
  • 自己不会被遮:本插件那条的开关是禁用的,避免把抽屉入口关掉后再也打不开。

安装

仓库是一个标准的 DSH bundle 插件包(package.json 里带 dsh.client 与 dsh.bundle.patch)。

# 从本地目录装配
dsh plugin --profile <profile-name> add link:/path/to/dsh-footer-manager

或者把本目录放进 profile 的 node_modules 并用 dsh.profile.bundles 登记;两种方式等价,重启后由 bundles 列表正常装配。

已知边界(重要)

  1. 遮住 ≠ 停用。 插件之间没有注销对方注册的权限(插槽是全开设计)。这里做的是把那条 DOM 的 display 设为 none,用 MutationObserver 在对方重渲染后贴回。被遮的插件仍在运行。 真要停用,去 profile 里禁用该插件。
  2. 会闪一下。 对方重渲染到我们贴回样式之间最多 250ms,那一瞬它可能露一下脸。
  3. 指纹依赖文案。 遮挡按「元素文字 → 类名」打指纹;对方改文案或宿主改结构时失效——失效的表现是"它自己又冒出来",不会把界面弄坏。
  4. 同名条目会一起隐藏(指纹相同)。目前底部区域通常只有个位数入口,实践中未遇到。
  5. 收编模式下「打开」依赖对方对 click 的响应。 用居中弹层的插件(如 WSL、远程配对)没问题;如果某个入口是从自身位置弹出浮层,藏起来后浮层可能出现在原位置(屏幕左下角)而不是鼠标处。真遇到再针对处理。

结构

package.json          # dsh.client(浏览器半)+ dsh.bundle.patch(宿主行)
cordis.patch.yml      # 把宿主行插进 profile 的插件名册
lib/index.js          # 宿主半:最小可装载体,不注册服务、不开路由
lib/client.js         # 浏览器半:入口、抽屉、遮挡、布局修复

浏览器半是零构建的经典脚本,通过 window.__ModuleLoader__.load({ id, factory }) 注册,只依赖运行时提供的 react / react-dom。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 4bf18984d4de

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout