dsh-workspace-folders:給 DSH 側邊欄補一層文件夾

前言

DSH 的左側欄按 Workspace 平鋪列出所有工作區:開得越多,列表越長,找起來只能往下翻。Session 也沒有歸類入口,歸檔只能靠內置的三態篩選。dsh-workspace-folders 這個插件就是在不改數據的前提下,給側邊欄加上一層文件夾組織——Workspace 可以歸入用戶自建的文件夾(支持嵌套),每個 Workspace 內部的 Session 也有自己的分類樹,另外每行可以掛圖標。目錄頁把它歸在「趣味換裝」分類下,維護者是 Larrtroffen。

它由 Larrtroffen 維護,是 dsh-session-keeper 的 fork,在其上補了僅用於展示的 Workspace 文件夾層、文件夾行、拖拽、圖標選擇器和 Session 行縮進。看懂它做了什麼之前,先記住一個前提:文件夾層是 display-only(僅顯示)的,不會重命名工作區或會話,不會把會話在工作區之間移動,也不會動磁盤目錄,只重排側邊欄。

它是做什麼的

一句話:給 DSH web 側邊欄補上摺疊與歸類能力,讓 Workspace 和 Session 各有一層文件夾。倉庫裏的三塊能力分別是:

  1. Workspace 文件夾,僅顯示層,不寫業務數據。
  2. 每個 Workspace 內獨立的 Session 分類樹,數據持久化到 Host 存儲域。
  3. 行首圖標,支持 40 個宿主圖標集圖標 + 48 個常用 emoji。

同時保留 DSH 原生側邊欄的操作:拖拽、重命名、固定、歸檔、搜索、視圖選項。

核心功能

Workspace 文件夾(僅顯示)

  • 在側邊欄裏創建、重命名、刪除、摺疊、重新排序文件夾。
  • 把 Workspace 行拖到文件夾塊的任意位置(標題行或展開的正文)即可歸入;也可以用行內 … → Move to folder… 菜單。
  • 把文件夾拖到另一個文件夾的中間即嵌套;拖到目標文件夾的上/下邊緣則平級重排。把 Workspace 拖到 Unfiled 上可以移出文件夾。
  • 把 Workspace 拖到它已所屬的文件夾裏,是在該文件夾內重排;拖到其他位置則是改歸屬。
  • 刪除文件夾只刪除分組:子文件夾升一級,成員 Workspace 回到 Unfiled,不刪任何 Workspace、Session 或文件。
  • 沒有建立文件夾時,列表的渲染效果與原生瀏覽器完全一致。

Session 文件夾(按 Workspace 獨立、持久化)

每個 Workspace 維護自己的嵌套分類樹:把 Session 拖進分類、在分類裏創建 Session、摺疊/重命名分類、固定、三態歸檔篩選,以及可恢復的刪除回收站。數據存放在 Host 存儲域(session_categories,位於 <DSH_HOME>/storages/),刷新頁面、清緩存、重啓都不會丟。

圖標

  • 每個 Workspace 行默認顯示一個安靜的圓點,點開是圖標選擇器。
  • 圖標目錄爲 40 個宿主圖標集圖標 + 48 個常用 emoji,另有「Reset to default」清空圖標。
  • 展示用的文件夾也可以單獨掛圖標。
  • 不引入新依賴,不發起網絡請求,不做圖片解碼;目錄只在選擇器打開時渲染,靜止的側邊欄每行只多一次 map 查找。

保留的原生能力

搜索、分組視圖(Workspace / Workspace tree / flat)、手動排序與按最近使用排序、固定 Session、歸檔篩選、Workspace 與 Session 行菜單,均照常工作。

安裝與啓用

插件要求 DSH >= 0.2.1-rc.1 < 0.3.0(項目在 0.2.1-rc.5 上構建並測試,覆蓋桌面版與 web 版)。Node.js >= 24.9 只在從源碼構建時才需要,發佈包裏已帶編譯好的 lib/。

發佈到 npm 之後,可以走 npm 安裝:

dsh plugin --profile web add dsh-workspace-folders

也可以直接裝 GitHub 倉庫:

dsh plugin --profile web add github:Larrtroffen/dsh-workspace-folders

裝完刷新 web UI,或重啓 DSH Desktop。插件在插件管理器中顯示名爲 dsh-workspace-folders;在管理器裏禁用或卸載即可恢復原生側邊欄。

典型用法

下表是 README 給出的操作路徑,可以作爲上手清單。

新建頂層文件夾:視圖選項菜單(滑塊圖標)→ New folder,或點擊列表末尾的 + New folder 行。

新建子文件夾:文件夾行 … → New subfolder。

重命名文件夾:雙擊文件夾名,或 … → Rename。

把 Workspace 歸入文件夾:拖動 Workspace 行到文件夾上;或 Workspace … → Move to folder…。

移出文件夾:把 Workspace 拖到 Unfiled;或 … → Move to folder… → Unfiled。

嵌套/重排文件夾:把文件夾拖到另一個文件夾中間(嵌套),或拖到其上/下邊緣(重排);也可以用 … → Move to…。

摺疊/展開:點擊文件夾行,摺疊狀態會顯示其中 Workspace 的數量。

刪除文件夾:文件夾 … → Delete folder,只刪分組。

設置圖標:點擊行首的圓點/圖標,或 … → Set icon…。

Session 文件夾沿用 dsh-session-keeper 的交互:把 Session 拖到分類上、… → Move to category…、在分類內創建 Session、固定/歸檔/刪除並可撤銷。

數據與隱私

表格裏的兩類數據分開放,這個設計值得先了解再裝。

數據 位置
Workspace 文件夾、歸屬關係、展開狀態、圖標(本插件的顯示層) 瀏覽器 localStorage,鍵 dsh.session-categories.view.v2
Session 文件夾/歸屬/回收站 DSH Host 存儲域 session_categories(<DSH_HOME>/storages/)

任何地方都不上傳。顯示層刻意放在瀏覽器本地:清掉站點存儲後,Workspace 的文件夾排佈會重置(Session 文件夾不受影響)。

適用場景與注意

適合 work 區數量多、靠平鋪列表已經不好找的開發者,以及想按模塊給 Session 分類的人。如果你的 Workspace 長期不超過一屏,收益不明顯。

使用前有幾點需要自行判斷:

  1. 插件會替換側邊欄的 sidebar.workspaces 區域,因此不能與替換同一區域的插件並存(例如 dsh-better-workspace、dsh-workspace-categories),只能留一個。
  2. 裝了 dsh-claude-style 時,它的側邊欄補丁會與這個替換版瀏覽器衝突,需要在那個插件的配置裏設置:
workspaceView: false    # claude-style 的 Active/Archived 標題開關;本插件的視圖菜單
                        # 已經提供同樣的三態歸檔篩選
searchStyle: icon       # 把搜索入口保留在側邊欄頭部
  1. 只通過行插槽裝飾的側邊欄插件、只改樣式的主題可以繼續用。
  2. 插件以當前 DSH 進程的權限運行,安裝前請自行檢查源碼與許可證(本項目爲 MIT)。它只搬動側邊欄的顯示,不搬動業務數據,這是判斷它能做什麼的要點。
  3. 已知限制:Workspace 文件夾只在分組視圖(By Workspace / Workspace tree)出現,flat 列表和搜索結果保持平鋪;顯示層文件夾與圖標是瀏覽器本地數據,不隨 Host 持久化。Preview 版 DSH 不承諾插件 API 穩定,升級時插件要與 DSH 一併升級。

結尾

它的價值在於把側邊欄的整理成本從「記住哪個 Workspace 在哪」降爲「建個文件夾拖進去」,且不會在背後改動任何工作區或文件。目錄頁:https://www.skillhub.cn/plugins/Larrtroffen/dsh-workspace-folders ;GitHub:https://github.com/Larrtroffen/dsh-workspace-folders

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

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

小夜