DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

AiCoderChenweishi /

AiCoderChenweishi/dsh-workspace-topbar

Verified

把工作区(项目)切换器放到窗口标题栏,选中项目后左侧只显示该项目的会话。

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

工作区顶栏(dsh-workspace-topbar)

把「工作区(项目)切换器」从左侧栏中部搬到窗口标题栏——也就是 macOS 菜单栏正下方、 红绿灯右边那一条,然后在顶部选定一个项目,左侧会话列表就只留下这个项目的会话。

效果

  • 标题栏左侧出现一个胶囊按钮:▣ 全部项目 ⌄;点开后列出全部工作区(显示会话数)。
  • 选定某个项目后,左侧列表只显示该项目的分组与会话,其他项目隐藏。
  • 选「全部项目」恢复原样;选择会记住,重启 DSH 后仍然生效。
  • 新建项目后自动切过去:顶部胶囊换成新项目,左侧同步只显示它。
  • 只在插件自己的选择器上做视觉优化,不改动现有布局。

为什么不在菜单栏里

macOS 菜单栏(Menu Bar)由 Electron 主进程用系统菜单 API 绘制,挂在安装包的 主进程代码里。DSH 插件运行在独立的 Node 进程和网页里,没有修改它的入口; 硬改安装包会被应用更新覆盖,也会破坏签名。因此选择器放在插件能到达的最顶部 位置:窗口标题栏。

安装

dsh plugin add dsh-workspace-topbar

也可以从源码目录安装(plugin_manager 的 install_bundle,目标是本目录的绝对路径)。 装好后重启 DSH 或刷新页面,插件页会显示「工作区顶栏」及说明。

原理

  • 顶栏:Client 半边向 conversation.header.leading 槽位注册组件,用槽位自带的 useWorkspaces 读取工作区快照;选中状态存 localStorage。
  • 过滤:ui-workspace 在渲染侧边栏时给行打了 data-row-key="workspace:<id>" / "session:<id>" 标记。插件按选中项目隐藏其他分组,并兜底隐藏其他项目的会话行; 列表被 React 重渲染时用 MutationObserver 重新应用。

限制与风险

  • 过滤依赖上述 data-row-key 标记。DSH 大版本升级若改了侧边栏结构,过滤可能失效; 失效时插件会安静地不处理(列表恢复原样),不会报错。
  • 隐藏只是显示层面,不删除、不归档任何会话;取消选择或卸载插件即恢复。
  • 若与其他改写侧边栏的插件(例如提供文件树的侧栏插件)同时使用,过滤逻辑仍作用于 「工作区/会话」标记所在的行,不会改动文件树区域。

卸载

在插件页停用或卸载本 bundle,然后重启 DSH。所有被隐藏的行会自动恢复显示。

—/ 5

No ratings yet

Verified DSH bundle

Commit 9d8ef1926985

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