前言¶
DSH 的理念是“一切皆插件”。在實際使用 DSH Web GUI 時,常見做法是通過 dsh web 啓動本地 HTTP 服務,再手動打開瀏覽器訪問。對長期在本地使用 DSH 的人來說,這個流程會多一步:每次都要記住端口、打開瀏覽器、管理標籤頁。
dsh-desktop-shell 解決的是這個入口問題:dsh web 啓動後自動彈出 Electron 窗口,關閉窗口時不退出 dsh 進程,而是隱藏到系統托盤;需要從托盤退出時,再結束整個 dsh web 進程。
這是什麼¶
dsh-desktop-shell 是一個 MIT 許可的 DSH 桌面外殼插件。它安裝到 web profile 後,讓 dsh web 具備 Electron 桌面窗口入口,同時保持 DSH 現有 HTTP 服務不變。
已覈實事實列出:dsh 引擎零改動。
倉庫地址爲:
https://github.com/Funnyvalentine00/dsh-desktop-shell
已覈實資料未單列維護者字段,僅倉庫地址指向 Funnyvalentine00。
核心功能¶
下面介紹已覈實的功能:
dsh web啓動後自動彈出 Electron 窗口,並加載 DSH 現有 HTTP 服務。- 關閉窗口時隱藏到系統托盤,dsh 進程繼續運行。
- 托盤菜單支持打開主窗口,以及退出 dsh 進程。
- 重複運行
dsh web時通過單實例鎖聚焦已有窗口,不彈新窗。 - 記憶窗口位置和大小,退出後重開保持。
- Electron 缺失、spawn 失敗或窗口加載失敗時,自動降級爲瀏覽器模式,不阻斷
dsh web。 - 可選桌面快捷方式,雙擊啓動
dsh web並喚起已有窗口。
安裝與啓用¶
已覈實資料沒有給出類似 dsh plugin add ... 的單一官方安裝命令,只給出 profile 接入方式。下面按照已覈實步驟說明。
1、接入 web profile¶
在 profile 的 package.json 中加入 dsh-desktop-shell 依賴,並把 dsh-desktop-shell 寫入 dsh.profile.bundles:
dependencies
dsh-desktop-shell
dsh.profile.bundles
dsh-desktop-shell
2、在 profile 目錄安裝鏈接¶
在 profile 目錄執行:
npm install
3、啓動驗證¶
執行:
dsh web
如果插件生效,dsh web 會啓動 DSH 現有 HTTP 服務,並自動彈出 Electron 窗口。
典型用法¶
啓動桌面窗口¶
dsh web
臨時關閉桌面窗口¶
如果只想使用瀏覽器模式,可以執行:
dsh web --no-desktop
或在 PowerShell 中設置環境變量:
$env:DSH_DESKTOP="0"; dsh web
也可以在 profile 配置中關閉桌面窗口:
enabled: false
使用托盤¶
啓動後,關閉窗口只會隱藏到系統托盤,dsh 進程繼續運行。托盤菜單支持:
- 打開主窗口
- 退出 dsh 進程
已覈實事實指出,托盤「退出」依賴 launcher 提供的接口結束 dsh 進程:
ctx.appExit(0)
使用桌面快捷方式¶
如果不習慣在終端輸入命令,可以使用插件提供的啓動腳本:
scripts/launch-dsh-web.cmd
scripts/launch-dsh-web.ps1
雙擊對應腳本會啓動 dsh web;如果已有實例在運行,則喚起已有窗口,不重複啓動。
降級與退出行爲¶
dsh-desktop-shell 的關鍵降級策略如下:
- Electron 缺失、spawn 失敗或窗口加載失敗時,自動回到瀏覽器模式。
- 窗口加載失敗時,Electron 會退出,DSH 保持瀏覽器模式。
- 托盤「退出」會結束整個
dsh web進程。
已覈實資料強調:任何 Electron 缺失、spawn 失敗或加載失敗都會自動回到瀏覽器模式,不阻斷 dsh web。
卸載¶
要恢復純瀏覽器模式,先做配置移除,再重新安裝 profile 依賴:
1、從 profile package.json 的 dependencies 與 dsh.profile.bundles 移除:
dsh-desktop-shell
2、在 profile 目錄執行:
npm install
3、重啓:
dsh web
適用場景與注意¶
適合本地長期使用 DSH Web GUI,並希望 dsh web 自動彈出桌面窗口的人。它不會改變 DSH 的 Web 服務主體,只是增加一個 Electron 窗口入口和托盤管理。
需要注意:插件會隨當前 dsh web 進程一起運行,並以當前 DSH 進程權限執行本地行爲。安裝前應檢查源碼、依賴和許可證。
另外,如果維護桌面快捷方式腳本,launch-dsh-web.cmd 必須保持純 ASCII 內容。內嵌中文路徑會在 GBK 系統上出現亂碼。
如果 Electron 二進制下載較慢,已覈實資料提到可以設置:
ELECTRON_MIRROR
結尾¶
dsh-desktop-shell 提供的是桌面入口、托盤管理和降級能力,不改變 DSH 的 Web 服務與進程主體。如果只需要本地 HTTP 訪問,可以繼續使用瀏覽器模式;如果希望 dsh web 自動彈出可管理窗口,它可以作爲一個 profile 插件接入。
已覈實資料未提供社區目錄頁 URL,不能給出可確認鏈接。GitHub 倉庫見:
https://github.com/Funnyvalentine00/dsh-desktop-shell