dsh-workspace-resizer:用可拖動分隔條拉高側邊欄工作區

前言

DeepSeek Harness(DSH)的側邊欄是一列縱向 flex:上方是「插件 / 插件市場 / 自動化任務」等全局面板導航,下方是工作區與會話列表。導航區固定佔高、自身不滾動,工作區用 flex: 1 喫掉剩餘高度。窗口不高時,導航項一多就會把縱向空間佔滿,工作區往往只剩兩三百像素,會話列表只能在小塊區域裏滾動。原先沒有內置的調整手段——要麼拉高整個窗口,要麼到「更多」裏逐個取消固定導航項。下面介紹社區插件 dsh-workspace-resizer(維護者 nomxy,分類:客戶端),在導航與工作區之間加一條可拖動分隔條,把高度在兩塊區域之間重新分配。

這是什麼

dsh-workspace-resizer 給 DSH 側邊欄增加一條夾在「全局面板導航」與「工作區」之間的可拖動分隔條。邏輯在 lib/client.js,純客戶端;宿主側的 lib/index.js 爲空插件殼。包版本 0.1.0,許可證 MIT,要求宿主 dsh >= 0.2.1-rc.1(見 package.json 的 engines.dsh)。裝好後默認不改變現有佈局,直到你第一次拖動分隔條。

核心功能

拖動與恢復

  • 拖動分隔條:向上拖 → 導航變矮並在內部滾動,工作區立刻拿到省下來的高度;向下拖 → 導航變高。
  • 雙擊分隔條恢復默認佈局。
  • 鍵盤(分隔條聚焦後):↑ / ↓ 微調;按住 Shift 步長更大;Home 或 0 恢復默認。

拖動結果寫入瀏覽器 localStorage,鍵名爲 dsh.workspace-resizer.navHeight,重啓後沿用。

插件面板展示

在側邊欄進入「插件」管理頁時,該插件以卡片形式出現。標題與說明來自 locale/*.json,圖標來自 package.json 的 icon(icon.svg)。中文標題爲「工作區分隔條」,說明爲「上拖細線,讓工作區會話列表變高」;卡片上說明只顯示一行並截斷,文案因此較短。

實現要點(便於判斷是否信任)

插件不依賴帶構建 hash 的 class 名,而是通過 DOM 結構定位:flex 列容器裏帶多個按鈕的 <nav>,其兄弟節點爲 overflow: hidden 且 flex-grow: 1 的工作區容器;找不到目標時靜默不生效。只改 nav 的 inline max-height / overflow-y,工作區仍靠原有 flex: 1 伸縮;分隔條掛在 body 上、position: fixed,跟着導航底邊,不插入 React 管理的結構。DOM 連通性只做一次廉價檢查,重新定位交給 ResizeObserver 與 resize,避免聊天流式輸出時每幀強制排版。

安裝與啓用

已抓取資料中的 README 未給出 dsh plugin add … 一類官方安裝命令,此處不憑倉庫名拼接命令。可從社區目錄頁或 GitHub 倉庫獲取插件包信息,按你當前 DSH 版本支持的插件安裝方式安裝 nomxy/dsh-workspace-resizer。

安裝前建議自行查看 GitHub 源碼 與 MIT 許可證;客戶端插件在 當前 dsh 進程權限 下運行,與宿主同源頁面腳本能力一致。

若你在本地用 file: 依賴改動了源碼,pnpm 硬鏈接到 profile 後,已安裝副本不會自動跟隨 inode 變化。資料中的同步示例路徑爲 Windows 用戶環境:

bash C:/Users/siyin/Documents/deepseek-harness/default-workspace/_test/sync-plugin.sh

同步後需重啓應用:宿主列插件時會重讀元數據,客戶端腳本需重新加載才生效。Linux 或其他環境請以你 workspace 內實際的插件同步流程爲準。

典型用法

  1. 安裝並啓用插件後,打開 DSH 側邊欄(非僅圖標條的收起態)。
  2. 在導航底邊與工作區頂邊之間找到分隔條,向上拖動,直到工作區會話列表高度滿足閱讀需要。
  3. 若佈局拖亂,雙擊分隔條,或在分隔條聚焦後按 Home / 0 恢復默認。
  4. 關閉瀏覽器或重啓 DSH 後,上次拖動高度會從 localStorage 恢復,無需重複設置。

適用場景與注意

適合:長期在固定窗口高度下使用 DSH、導航項較多、又希望工作區會話列表儘量一屏可見的智能體開發者或日常用戶。

已知限制(來自 README):

  • 側邊欄收起成圖標條時,分隔條自動隱藏。
  • 工作區至少保留 132px,導航至少保留 34px,超出範圍會被夾住。
  • 依賴當前側邊欄 DOM 結構(<nav> + flex:1 工作區容器)。DSH 大版本若改側邊欄結構,插件會靜默失效而非報錯。

社區插件目錄 skillhub.cn 上的 nomxy/dsh-workspace-resizer 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝與使用責任在維護者與使用者之間,以倉庫 Issue 與許可證爲準。

結尾

dsh-workspace-resizer 用一條輕量分隔條解決「導航佔滿、工作區太矮」這一具體佈局問題,改動局部樣式與本地持久化,不碰會話數據。需要細節與源碼時,見 GitHub:nomxy/dsh-workspace-resizer 與 SkillHub 目錄頁。

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

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

小夜