DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

zengxiangpeng123 /

zengxiangpeng123/dsh-sidebar-fold-zxp

Verified

This plugin has no description yet.

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

dsh-sidebar-fold-zxp

把 DSH 左侧那排插件入口折成一行,把高度还给工作区与会话列表。

装上之后,左栏顶部只剩一行「插件 ▾」;点一下展开全部入口,再点一下收起。状态会记住。

为什么需要它

DSH 的 sidebar.panellist 是一个列表槽:每装一个带入口的插件就多一行,每行约 46px。装七八个之后,光这排入口就吃掉三分之一的高度,下面的工作区/会话列表被压到只剩一点。外壳对这批入口没有任何折叠或溢出逻辑——panels.map() 有几个排几个,也没有隐藏他人的接口。

它怎么做到的

不顶替外壳、不猜 CSS 类名:

  1. 它自己往 sidebar.panellist 注册一个入口,所以外壳会为它渲染一行按钮——天然和原生行长得一样。
  2. 从这个自己的节点 closest('nav') 往上找到列表容器,再按 :scope > button 数兄弟行。
  3. 折叠时把兄弟行的 style.display 设为 none(不用 hidden 属性:行上的类已经设了 display: flex,会盖掉浏览器对 [hidden] 的默认样式,属性写了也没用)。
  4. 点击在捕获阶段拦下并 stopPropagation(),否则外壳会拿我们的 id 去 selectPanel,而它没有对应的面板。
  5. 当前正打开的那个面板始终保留可见——折叠不该把你正在看的东西藏起来。

边界与风险

  • 纯客户端插件:没有宿主接口、没有路由、没有设置页,状态只存在页面 localStorage(dsh-sidebar-fold:folded)。
  • 结构依赖:如果 DSH 将来改了 nav > button 这层结构,折叠会失效。失效方式是「不折叠」,不会弄坏界面;找不到 nav 时它什么都不做。
  • 卸载即还原:插件卸载或停用时,它只把自己藏过的那几行恢复,不会误伤别人的行。
  • 它只能收起自己之外的兄弟行,没有改动任何插件的注册、图标或顺序。

安装

dsh plugin --profile desktop add github:zengxiangpeng/dsh-sidebar-fold-zxp

或本地开发时把目录链接进 profile 即可。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 8e659f0069aa

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