前言¶
DeepSeek Harness(DSH)在 profile 里装多个侧边栏面板时,Plugins、Market、Schedules 等入口会按行堆在侧边栏顶部。官方 README 估算,在笔记本上大约占 240px 纵向空间,且每个界面都会占着,会话列表被往下挤。Web 版没有 Windows 标题栏那一行,问题主要在 DSH Desktop(Windows) 上更明显。下面介绍社区插件 dsh-panel-titlebar(维护者 githublmk):不改面板注册逻辑,只改布局,把同一套入口挪到标题栏「应用 / 编辑」菜单之后,并顺带调整会话统计条的位置。
这是什么¶
dsh-panel-titlebar 是 DSH 的客户端类插件(npm 包名 dsh-panel-titlebar,当前版本 0.3.2,MIT)。它解决的是 Desktop 侧边栏顶部「全局面板」占高、会话区变窄的问题;plain Web GUI 没有 caption 行,插件通过 html[data-windows-titlebar] 限定作用域,在 Web 构建上按设计不生效。
- 目录页:https://www.skillhub.cn/plugins/githublmk/dsh-panel-titlebar
- 源码与说明:https://github.com/githublmk/dsh-panel-titlebar
核心功能¶
全局面板进标题栏¶
导航仍来自侧边栏插件在 sidebar.panellist 里的注册,插件不复制、不替换、不删除条目,因此 More 启动器、固定/取消固定菜单、当前面板高亮以及内置条目的行为保持原样。一份 scoped 样式表把现有 nav 从侧边栏 flex 流里用 position: fixed 拉出,在 caption 带里横向排布,行高与菜单一致(28px 高、14px 字、6px 圆角等主题 token)。
左侧起点动态测量:读取 preload 注入的 [data-windows-menu] 右缘,写入 CSS 变量 --dsh-panel-titlebar-left,侧边栏折叠(菜单起点 48px → 84px)、换语言或改窗口大小时仍对齐。
点击已选中的面板项会切换回对话(layout.selectPanel(null),等同面板内「返回聊天」),并在内置 handler 之前拦截;More 不作为面板项,仍只打开菜单。
会话统计移到 View 标签行¶
composer 下方的 turn/step、decode 速度、token、cache、context 等统计仍注册在 conversation.composer.dock,只改展示位置:锚在 View 标签行的 … 启动器旁(--dsh-statbar-top / --dsh-statbar-left)。无会话、在面板页或布局折叠等缺少锚点时,插件去掉 data-dsh-statbar,dock 回退到 composer 下方默认位置。
自定义(改 client.js 内 CSS 常量)¶
| 需求 | 做法 |
|---|---|
| 面板离菜单更远 | 在 :root 覆盖 --dsh-panel-titlebar-left(默认:测得的 menubar 右缘 + 10px) |
| 统计离标签更远 | 在 :root 覆盖 --dsh-statbar-left(默认:测得的 … 右缘 + 18px) |
| 更密的行 | 去掉 row 规则里的 padding/font-size,恢复内置 36px 度量 |
| 面板与菜单间分隔更柔 | 对 nav:has(> [class*="panelRow"]) > *:first-child 加 margin-left |
无构建步骤,改动集中在 client.js 的 CSS 常量。
安装与启用¶
环境要求:
- DeepSeek Harness Desktop,且运行在 Windows(caption 行仅 Desktop 存在)。
- Harness >= 0.2.1-0(需支持带 More 启动器的
sidebar.panellist行)。 - 面板条目本身由 profile 里其它插件提供;本插件不创建任何面板。
通过 Plugin Manager 指向仓库目录安装:
plugin_manager install_bundle
target: <absolute path to this repository>
管理器会写入 profile 依赖、选中 bundle 并应用 row;一般无需重启,刷新页面即可;若面板行未立刻出现,可先刷新再试。
包已发布时,同一命令可用包名(README 示例版本):
plugin_manager install_bundle
target: dsh-panel-titlebar@0.2.0
手动等价:在 profile 依赖中加入该 checkout,并在 patch 中插入 bundle row:
# cordis.patch.yml
- insert:
- id: panel-titlebar
name: dsh-panel-titlebar
卸载:在 Plugin Manager 中禁用或卸载 dsh-panel-titlebar bundle(或移除 panel-titlebar row),侧边栏立即恢复为内置竖向列表,不影响其它插件。
典型用法¶
- 在 Windows 上打开 DSH Desktop,用上述
install_bundle安装并刷新。 - 确认标题栏「应用 / 编辑」右侧出现与原先侧边栏相同图标的紧凑菜单项;侧边栏应从品牌行、「New session」和工作区列表开始,不再堆六行面板。
- 打开带 View 标签的会话界面,统计 pill 应出现在 View 行 … 右侧;进入全屏面板或无会话时,统计应回到 composer 下方默认位置。
- 再次点击当前已选中的面板项,应回到对话视图而非重复打开同一面板。
适用场景与注意¶
适合谁:长期在 Windows Desktop 上使用 DSH、profile 里装多个 sidebar.panellist 面板、希望把纵向空间还给会话列表的用户。
兼容与限制(来自 README):
- 样式依赖当前 shipped sidebar 的 CSS module 类后缀(
panelRow、panelTitle、panelGlyph)及承载面板行的nav;未来 Harness 若重写 sidebar,可能需要更新插件。客户端模块在@deepseek-ai/dsh-client-ui-sidebar之后加载。 - caption 带高 40px、不换行;窗口过窄时末尾项会省略并最终裁剪,不会顶开窗口控件。
- 统计条迁移依赖 View 行暴露
button.viewsMore*或viewTabs,且[data-composer-dock]仅含 ambient 统计项;若 profile 向 dock 加了其它 ambient 面板,会一并被移动。 - README 记载在 Windows 11、DSH Desktop(harness
0.2.1-rc.5)、150% 缩放下验证过布局与 live install;CI 覆盖静态契约,交互需自行在 Desktop 上确认。
安全与权限:插件随当前 DSH 进程以该进程权限运行,安装前请阅读 源码 与 MIT 许可证,确认 bundle 内容与个人环境要求一致。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-panel-titlebar 用纯客户端样式与少量 DOM 测量,在不动 Cordis 面板注册的前提下,把全局面板收进 Windows 标题栏、把会话统计挪到 View 行,换的是布局而不是功能集合。需要细节、截图与开发命令时,见 GitHub README(含 简体中文):