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(含 簡體中文):

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

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

小夜