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