dsh-sidebar-fold-zxp
Discovered把 DSH 左侧那排插件入口折成一行「插件列表」,按组归类、自定义顺序,把高度还给工作区与会话列表。
dsh-sidebar-fold-zxp
把 DSH 左侧那排插件入口折起来、按组归类、按你定的顺序排,把高度还给工作区与会话列表。
装上之后左栏大致是这样:
▾ 插件列表 ← 点一下,下面全部收起
▾ 日常 2
│ 打开工作台(任务 / 日历 / 知识库 / 点子)
│ 插件市场
▾ 开发 2
│ 任务看板
│ 自动化任务
▸ 统计与记忆 2 ← 收起状态,箭头朝右
(「更多」这类外壳自己的入口会被隐藏)
为什么需要它
DSH 的 sidebar.panellist 是一个列表槽:每装一个带入口的插件就多一行,每行约 46px。装到七八个之后,光这排入口就吃掉三分之一的高度,下面的工作区/会话列表被压得只剩一点。
外壳对这批入口没有任何折叠或溢出逻辑——panels.map() 有几个排几个,也没有「隐藏他人」的接口。所以只能由插件自己做。
怎么用
侧栏:点「插件列表」收起整块;点某个组标题收起/展开那个组。
设置 → 插件列表:
- 新建分组、改名、删除、调整组顺序
- 把条目拖到别的组,或拖到某一行前面换位置
- 也可以用下拉框和 ↑ ↓ 精确调整(键盘更顺手)
- 每行还有一个三态选择:跟随折叠(默认,折叠时一起收起)/ 折叠时仍显示(折叠后它还在)/ 始终隐藏(一直不出现)
它是怎么做到的
外壳用 React 渲染那些行,所以:
- 排序用 CSS
order,不移动 DOM 节点——移动会被下一次渲染复原; - 隐藏用内联
display,不用hidden属性——行上的类设了display: flex,会盖掉浏览器对[hidden]的默认样式; - 组标题是本插件自己创建的节点,插进外壳的
nav里;外壳重渲染把它冲掉时,观察者会补回来; - 点组标题在捕获阶段拦截并
stopPropagation,否则外壳会拿本插件的 id 去selectPanel,而它没有对应的面板; - 折叠状态先存本地再往宿主保存——保存失败不该让一次点击看起来毫无反应。
配置存在 ~/.dsh/dsh-sidebar-fold-zxp/settings.json(分组与顺序),折叠状态和设置页的交互状态存在当前页面。
接口
宿主侧只有三个:
GET /api/dsh-sidebar-fold-zxp/settings 读配置
PUT /api/dsh-sidebar-fold-zxp/settings 写配置(原子写)
GET /api/dsh-sidebar-fold-zxp/plan?entryIds= 按当前条目算布局
排序规则全部在 src/plan.js 与 src/edits.js 里,是纯函数,node --test 覆盖(40 项)。
边界与已知限制
- 需要 DSH ≥ 0.2.1-rc.1。
- 改完代码要彻底退出桌面端再打开,只刷新页面不够:客户端插件按
?rev=<文件元数据哈希>加载,响应头是immutable(缓存一年),桌面端会一直吃旧缓存。 - 它只动自己之外的兄弟行的样式,不改任何插件的注册、图标或点击行为;卸载时把改过的行原样还回去。
- 如果 DSH 换了左栏的 DOM 结构(行不再是
nav > button),折叠会失效——失效方式是「什么都不做」,不会弄坏界面。
许可
MIT
Comments
Loading…
Similar plugins
by zuojinxin
让 DSH 的扩展入口和视图标签支持折叠、排序、隐藏。Collapse, reorder and hide the DSH sidebar extensions and the conversation view tabs.
★ 5
↓ 857/wk
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add dsh-sidebar-managerby Alail691
把 DSH 侧栏的「插件」整体收进设置:在「设置 → 插件」里新增一个「插件管理」标签页,内嵌官方插件面板的全部能力(浏览 / 安装 / 开关 / 卸载)。Bring the sidebar's Plugins page into Settings as a tab, embedding the official plugin manager.
★ 0
MIT
JavaScript
Oct 16, 2026
dsh plugin --profile web add dsh-plugins-in-settingsby AsakuraAOI
DSH 待办清单:左侧导航、Agent 工具与可置顶的独立窗口。
★ 0
MIT
JavaScript
Oct 18, 2026
dsh plugin --profile web add dsh-todoby imshz6669
DSH 插件:把任意会话作为完整对话开进右侧栏,主区 + 右栏可同时对话(最多 3 个)。DSH plugin: open any session as a full chat tab in the right sidebar.
★ 0
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add dsh-split-chatby lumine-423
让你可以从侧边栏拖拽会话,使其成为一个独立窗口,省得来回切换会话的插件!
★ 5
NOASSERTION
JavaScript
Oct 20, 2026
dsh plugin --profile web add dsh-session-popoutby jipika
DSH 插件中心(本地改版):插件管理/市场额外提升为设置窗口左侧导航的独立分栏(settings.section#plugin-console),原「设置 → 插件」tab 保留。基于上游 0.3.63。
★ 0
MIT
JavaScript
Sep 27, 2026
dsh plugin --profile web add @noob-stupid/dsh-plugin-console