DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

rsdgnchen /

rsdgnchen/dsh-bottom-dock

Verified

DSH Web 插件:把官方右侧栏 dock(终端/文件树/文档预览)整体搬到底部,仿 iOS 上滑横杠唤出、可拖拽调高。不改官方代码,只用官方 data-* 钩子重定位;探测不到官方结构时完全惰性。

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

@rsdgnchen/dsh-bottom-dock

把 DSH 官方的右侧栏 dock(终端 / 文件树 / 文档预览 / 标签 / 引导)整体搬到底部, 用一根仿 iOS 上滑横杠唤出,可拖拽调高、可轻点收起。

  • ✅ 不修改官方任何代码:内容仍由官方组件渲染、官方数据流驱动、官方 host 侧保活/恢复; 我们只改它的定位与网格(注入一段 CSS),并把"从右侧滑入"换成"从下方升起"。
  • ✅ 只用公开 API 开合:ctx.sidebarRight.isExpanded() / toggleExpanded()。
  • ✅ 只依赖官方稳定的 data-* 钩子(不是哈希类名)。
  • ✅ 健康检查 + 完全惰性:探测不到官方结构 → 一行样式都不注入、界面一个节点都不渲染, 只把原因上报到 Host 诊断端点。最坏情况是"插件没生效",绝不会把界面搞坏。

依赖的官方契约

钩子 用途
[data-shell-overlay] 我们挂 UI 的层(shell.overlay 槽)
[data-rightbar-col] 官方右侧栏列 —— 健康检查锚点,找不到就整体不介入
[data-sidebar-right-panel="push"] dock 面板(我们把它重定位到底部)
[data-sidebar-right-panel="fullscreen"] 官方全屏形态 —— 我们完全让位,不套任何规则
[data-sidebar-right-open] 展开态(驱动"下方升起"动画与我们的 UI 切换)

实现要点

  • 官方 panel 的样式是 position:absolute; top:0; bottom:0; right:0; transform:translateX(100%); 我们用 !important 改成 position:fixed; left:<侧栏宽>; right:0; bottom:0; height:<H>, 并把 AppFrame 的网格第三列压成 0px(!important 能赢过官方写在同一元素上的内联 grid), 于是对话区保持满宽、dock 落在底部。
  • 收起/展开动画:translateY(100%) → none(visibility 的延迟照抄官方,否则收起瞬间消失)。
  • 布局那个右侧竖把手(右列压成 0 后会浮在对话区中间)由 JS 打标记隐藏;左侧把手绝不误伤。
  • 对话区 padding-bottom:展开时 H + 8(拖拽条那 8px),收起时 8,官方全屏时 0。

设计取舍:为什么不与右侧并存

官方右侧栏是一个面板(里面是终端 / 文件树 / 文档预览的标签页),同一时刻只能在一个 位置。想"底部终端 + 右侧预览"同时成立,底部就必须换成另一套终端(比如走官方终端模型 ctx.webTerminals 自己渲染)。实际用下来官方那套多标签已经够用,所以本插件选择整体搬家: 官方 dock 连同它全部标签与按钮一起落到下方,让"上方对话 + 下方一切"成为主界面。

安装 / 生效

从 GitHub 一键安装(推荐)

本插件已标注 GitHub dsh-plugin 主题。

dsh plugin --profile web add github:rsdgnchen/dsh-bottom-dock
pm2 restart dsh        # 新增插件行需要重启(Host 半 + 客户端 boot 图都在启动时组装)

本地源码安装(开发/调试)

dsh plugin --profile web add file:$HOME/dsh/plugins/dsh-bottom-dock
pm2 restart dsh

与 @rsdgnchen/dsh-terminal(自带底部终端)功能重叠,两者同时启用会出现两根底部横杠。 试用本插件时建议在 profile 的 cordis.patch.yml 里临时关掉旧的:

- id: dsh-rsdgnchen-terminal
  disabled: true

回退只需去掉这两行并重启。

诊断

浏览器半探测失败/开合失败会 POST /__rsdgnchen-bottomdock/error, Host 半追加到 $RSDGNCHEN_BOTTOMDOCK_ERROR_LOG(默认 os.tmpdir()/rsdgnchen-bottomdock-errors.log)。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 7772b812fe83

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