dsh-workspace-cards:把 DSH 側欄工作區改成圖標網格

前言

DeepSeek Harness(DSH)側欄裏,工作區與會話通常以列表形式堆在一起。工作區一多,掃一眼當前在哪家、哪家有待辦或正在跑,都要在文字行裏找。若你更習慣「圖標 + 當前焦點會話」這種佈局,官方默認側欄未必順手。

下面介紹社區插件 dsh-workspace-cards(維護者 Traveritas):用正方形卡片網格替代側欄裏的「工作區」區,當前工作區常駐在網格上方展開會話;點卡片可切換焦點,並支持兩種視口切換。插件分類爲客戶端,當前版本 0.4.0(MIT)。

這是什麼

dsh-workspace-cards 是 AveritA 系列 DSH 側欄插件之一,與同系列目錄 AveritA 的 DSH 插件目錄 並列維護。

瀏覽器端(client.js)以 priority -1 接管官方 sidebar.workspaces 座位;Host 端(index.js)負責把 ~/.dsh/workspace-icons/*.svg 讀給頁面。Host 未安裝或未重啓時,文件型圖標位爲空,其餘功能仍可用。

一句話:側欄工作區區 → 圖標網格 + 上方常駐會話面板,可選「工作區優先」或「會話欄優先」兩種佈局。

核心功能

網格與卡片

  • 每張卡片爲正方形,默認 76×76,列數隨欄寬與卡片大小自動排(auto-fill),一行排不滿時整行居中。
  • 統一底色(不按工作區上色),圓角默認 21%(0% 方塊、50% 整圓),圖標默認 26px;可在「設置 → 工作區卡片」調整。
  • 工作區名稱默認僅懸停顯示;可在設置裏改爲常顯。
  • 角標一卡一枚:實心 = 待處理,脈衝點 = 運行中,空心環 = 未讀完成。
  • 側欄摺疊時退化爲單列圖標。

常駐卡片與會話

  • 網格上方釘一塊 192px 高的常駐區域,展示當前工作區的會話列表;跟隨當前會話所在工作區,無當前會話時保留上一個,避免切換面板時把網格頂來頂去。
  • 點任意網格卡片 → 該工作區換到常駐位;再點其中的會話才真正切換。再點一次已展開對應的那張網格卡(或左上角收起按鈕)→ 收起;收起狀態寫入本地存儲。
  • 已在常駐裏展開的工作區,網格里同一張卡按 0.86 縮放(140ms 緩動),表示「已在上面展開」。
  • 常駐高度可拖:工作區優先模式下,常駐與網格之間有 12px 分隔條;拖動改高度,鬆手落盤;雙擊復位 192px;下限 124px,上限隨卡片大小變化(76px 卡時約 434px)。
  • 會話不折疊,超出部分在面板內滾動;面板標題只顯示工作區名,路徑需通過「⋯ → 複製路徑」。

兩種視口

右上角「視圖選項 → 視口」二選一,落盤,切換瞬時完成:

模式 行爲
工作區優先 常駐會話卡片 + 下方卡片網格(默認描述的那套)
會話欄優先 會話欄貼邊鋪滿底層;卡片收成底部 32px「工作區」按鈕,點開拉出抽屜

會話欄優先下:點抽屜裏一張卡 = 切到該工作區並打開最近一條會話,抽屜收起;Esc 與點外面可關抽屜。

視圖選項與搜索

  • 排序:手動 / 最近活躍。
  • 歸檔:隱藏 / 全部 / 僅已歸檔。
  • 搜索:標題 + 工作區名本地匹配,並接 ctx.sessions.search 做內容搜索(250ms 防抖)。

圖標與 Host 配合

  • 圖標可爲字符(漢字 / 字母 / emoji)、內置 36 個線性圖標,或自定義 SVG(粘貼 / 選文件 / 由 agent 寫入文件)。
  • 自定義 SVG 文件路徑:~/.dsh/workspace-icons/*.svg(由 Host 半提供)。

設置頁

「設置 → 工作區卡片」:

  • 滑塊:卡片大小 56–120 px、圓角 0–50%、圖標 14–40 px。
  • 開關:名稱(常顯 / 僅懸停)、邊框(顯示 / 隱藏)、滾動條(顯示 / 隱藏)。
  • 「恢復默認」與三張卡片的實時預覽。

瀏覽器側狀態鍵:localStorage 的 dsh.workspaceCards.v1(結構含版本字段等,詳見倉庫 README「存儲」一節)。

皮膚插件接口

從 0.2.0 起提供穩定 DOM 與 CSS 變量;掛載時在 html 上設置 data-dwc-api="1" 與 data-dwc-version="0.4.0"。皮膚規則應以 html[data-dwc-api="1"] 爲前綴。README 中列出了 .dwc-stage、.dwc-panel、.dwc-grid、.dwc-tile 等節點及 --dwc-tile-bg、--dwc-pinned-h 等變量,供例如 dsh-workspace-cards-skin 一類擴展使用。

安裝與啓用

已抓取資料與 SkillHub 插件頁 均未給出形如 dsh plugin add … 的固定 CLI 原文。常見做法有兩種:

  1. 在 SkillHub 打開上述目錄頁,使用頁內「發送給 DeepSeek Harness 安裝」的說明,讓 Harness 按插件名 Traveritas/dsh-workspace-cards 安裝(頁內文案示例:「請安裝 DSH 插件 Traveritas/dsh-workspace-cards」)。
  2. 按你本地 DSH 版本支持的插件安裝流程,從 GitHub 倉庫 Traveritas/dsh-workspace-cards 安裝;安裝後若使用文件型 SVG 圖標,需確保 Host 半已加載並重啓,以便讀取 ~/.dsh/workspace-icons/。

插件在 package.json 中聲明爲 web 客戶端、immediately: true,並 patch 側欄與工作區相關 UI 模塊;啓用後應替換側欄原工作區列表爲卡片舞臺。

典型用法

  1. 切換當前工作區並看會話:在工作區優先視口下,點網格里某張卡 → 上方常駐面板換成該工作區會話;點面板裏某條會話進入對話。
  2. 收起常駐面板:再點網格里已縮放(is-pinned)的那張卡,或點常駐頭部左側收起按鈕;Esc 只關彈層 / 退回列表,不收常駐(與收起語義分開)。
  3. 窄屏或更愛會話列表:視圖選項 → 視口 →「會話欄優先」→ 用底部「工作區」按鈕開合卡片抽屜選工作區。
  4. 調外觀:設置 → 工作區卡片,拖滑塊看預覽;需要路徑時用工作區菜單「複製路徑」。
  5. 寫皮膚:在獨立皮膚插件裏用 html[data-dwc-api="1"] 選擇器覆蓋 --dwc-tile-* 或在 .dwc-tile-paint 上畫動態背景(README 含示例 CSS)。

適用場景與注意

適合:工作區數量多、希望用圖標快速切換;希望在側欄內固定一塊「當前工作區會話」而不反覆滾列表;需要與會話欄優先佈局來回切換的 DSH 日常使用者。

注意:

  • 插件以當前 DSH 進程權限運行,安裝前請閱讀 源碼 與 MIT 許可證,自行評估信任邊界。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本文介紹的是社區維護的客戶端插件。
  • 依賴 @deepseek-ai/dsh-client-ui-sidebar 等宿主 UI 模塊;大版本升級 DSH 後若側欄 API 變化,需關注插件 issue 與版本號(當前 0.4.0)。
  • 截圖與演示 README 說明取自基座本身;若疊加 dsh-workspace-cards-skin,運行中卡片可能出現 canvas 流光等效果,與裸插件靜幀不同。

結尾

dsh-workspace-cards 把 DSH 側欄工作區從列表改成可配置的圖標網格,並在上方或底層(視口不同)固定當前工作區的會話上下文,適合以工作區爲單位組織智能體任務的場景。

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

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

小夜