dsh-panel-titlebar:把侧边栏全局面板收进 Windows 标题栏

前言

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 构建上按设计不生效。

核心功能

全局面板进标题栏

导航仍来自侧边栏插件在 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),侧边栏立即恢复为内置竖向列表,不影响其它插件。

典型用法

  1. 在 Windows 上打开 DSH Desktop,用上述 install_bundle 安装并刷新。
  2. 确认标题栏「应用 / 编辑」右侧出现与原先侧边栏相同图标的紧凑菜单项;侧边栏应从品牌行、「New session」和工作区列表开始,不再堆六行面板。
  3. 打开带 View 标签的会话界面,统计 pill 应出现在 View 行 … 右侧;进入全屏面板或无会话时,统计应回到 composer 下方默认位置。
  4. 再次点击当前已选中的面板项,应回到对话视图而非重复打开同一面板。

适用场景与注意

适合谁:长期在 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(含 简体中文):

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜