前言¶
DeepSeek Harness(DSH)把每個插件的面板入口都掛在左側欄頂部。裝上幾款插件之後,這一列會佔掉側欄上方大量空間,下面的工作區被擠窄。外殼按註冊時的 order 排面板行,沒有對外暴露重排 API,單靠核心改排序也不現實。下面介紹社區插件 dsh-panel-compact(維護者 yingqi-studio,分類:客戶端):在瀏覽器側把可見入口收成三個,其餘進「更多」,並支持拖動與持久化,不卸載任何插件、也不改面板內部邏輯。
這是什麼¶
dsh-panel-compact 是 DSH 的 web 客戶端插件(dsh.web 側欄面板槽位)。它解決的是「側欄面板入口過多、佈局擁擠」的問題:默認只保留三個行級入口(其中一行是始終存在的「插件 / Plugins」),其餘通過 display: none 隱藏但仍掛載;完整列表在 shell 的 More 菜單裏操作。順序與「釘在側欄還是收進更多」寫在瀏覽器 localStorage,下次打開保持一致。
核心功能¶
側欄只留三個入口¶
摺疊的是列表展示,不是插件本身:隱藏行只是視覺上不可見,面板內容不受影響。若找不到 shell 的「More」入口,插件不會隱藏任何行,避免面板被藏掉卻無路可回。
拖動排序¶
側欄上可見的行可以用鼠標按住上下拖動;約 6 px 的閾值區分「打開面板」與「開始拖拽」。鬆手後順序寫入本地狀態。More 菜單裏的行同樣可拖。
More 菜單¶
插件佔用 shell 的 sidebar.panellist.actions 槽位,從而出現 More 行。菜單裏列出全部面板(按你的順序):點名稱打開對應面板並關閉菜單;每行右側 ✓(已在側欄)或 +(在 More 裏)切換是否釘在側欄。菜單裏也會隱藏 shell 自帶的「Browse other plugins」行(完整列表已在 More 中,插件瀏覽器仍可從側欄進入)。
恢復默認¶
More 菜單底部 「Reset to the default three」(中文環境爲「恢復默認(只留三個)」)按註冊順序恢復,並仍只留前三個在側欄。
新裝插件¶
之後新安裝的插件,其入口默認進「更多」,不會打亂你已選好的三個與順序。
安裝與啓用¶
官方 README 給出的 GitHub 安裝方式如下(將 <your-profile> 換成你的 profile 名):
dsh plugin --profile <your-profile> add github:yingqi-studio/dsh-panel-compact
包名 dsh-panel-compact 也已提交 npm;首版若仍在 staged 審覈,npm 上可能只有 0.0.0-stage 佔位,審覈通過後可改用:
dsh plugin --profile <your-profile> add dsh-panel-compact
在 DSH Desktop 中,也可打開 Plugins,搜索插件名安裝。
無論哪種方式,都需要 重啓應用:新 bundle 在啓動時纔會合成進 profile 樹,側欄壓縮纔會生效。
環境要求:engines.dsh 爲 >=0.2.0;需側欄面板槽位(README 寫明在 dsh.web 0.2.x 下驗證,對照 @deepseek-ai/dsh-client-ui-sidebar 0.2.1-rc.5)。
典型用法¶
- 安裝並重啓 DSH 後,側欄頂部應只剩三個面板入口,以及 More。
- 按住某個可見入口拖動,調整側欄順序。
- 打開 More:點擊某面板名稱直接打開;用 ✓/+ 決定它留在側欄還是收進更多;需要時在菜單內拖動排序。
- 想回到首次邏輯:在 More 裏點「恢復默認(只留三個)」,或清除瀏覽器中的狀態鍵(見下節)。
狀態保存在:
localStorage['dsh-panel-compact.v1']
示例結構(字段以 README 爲準):
{
"initialized": true,
"order": ["plugins", "guizang-design", "schedules", "dsh-context", "materials", "dsh-ppt.workbench"],
"pinned": ["guizang-design", "schedules"]
}
刪除該鍵即恢復首次運行行爲。注意:這是按瀏覽器 profile 存的,不是按 DSH profile;不同瀏覽器各有一份佈局。
實現要點(只讀瞭解)¶
插件在頁面裏對面板行 DOM 操作:style.display 隱藏、style.order 在 flex 列上排序、每行打 data-dshsc-id 映射 panel id;行數與註冊面板數不一致時會回退到標籤匹配,無法解析 id 的行保持可見。整段激活包在 try/catch 裏,外殼變更時最多退化爲「不壓縮」,而不是側欄報錯。順序是 CSS order,其他插件仍看到註冊順序——沒有改寫全局註冊表。
適用場景與注意¶
適合:經常同時啓用多款 DSH 插件、希望側欄固定少數常用面板、其餘從 More 進出的開發者。
已知限制(來自 README):
- 可見的「三個」裏包含固定的 Plugins 行,實際可自定義的側欄插件入口是另外兩個槽位加上 Plugins 共三行。
- 依賴當前 shell DOM 形狀(如
nav帶_panelList後綴、面板行爲button[aria-label]、More 爲button[aria-haspopup="menu"])。DSH 改 shell 後插件可能需要跟進。 - 隱藏僅視覺層面:隱藏行仍掛載,鍵盤焦點理論上仍可能移到 More 下方的隱藏行。
DSH 社區插件目錄在 SkillHub 等平臺展示,與 DeepSeek / 幻方無官方從屬關係。插件隨 DSH 客戶端在本地運行,安裝前建議查看 GitHub 源碼 與 MIT 許可證(package.json 版本 0.1.0)。
結尾¶
dsh-panel-compact 用客戶端側摺疊與 More 菜單,在不動核心排序 API 的前提下收束側欄面板入口,並記住你的順序與釘選。需要時可從目錄頁或倉庫安裝、重啓後即用。
- 目錄頁:https://www.skillhub.cn/plugins/yingqi-studio/dsh-panel-compact
- GitHub:https://github.com/yingqi-studio/dsh-panel-compact