前言¶
在 DeepSeek Harness(DSH)桌面版裏改插件或改配置後,往往需要重啓一次應用才能生效;而 macOS 上關窗口只是把應用收進 Dock,真正退出或重啓通常要從菜單欄找「退出」。Windows 上已有社區插件 xichen-62/dsh-power-menu 把這類操作收到標題欄旁的電源菜單裏;macOS 沒有 taskkill 和 PowerShell 那套進程模型,需要單獨實現。dsh-power-menu-mac 是上述 Windows 版的 macOS 移植(MIT),由 DSH 社區維護者 DDMUC 發佈,在會話標題欄右上角提供電源按鈕,把刷新、重啓、定時與關閉集中到一處,純本地運行、無外部依賴。
下面介紹插件定位、能力、安裝步驟與使用注意。
這是什麼¶
- 名稱:
dsh-power-menu-mac(npm 包名與插件 ID 一致) - 維護者:DDDMUC(GitHub:DDDMUC/dsh-power-menu-mac)
- 分類:客戶端插件;
package.json中聲明僅支持darwin,非 macOS 宿主不會繪製按鈕 - 許可:MIT;思路與致謝對應 Windows 原版 xichen-62/dsh-power-menu
- 運行環境:Node.js >= 22,DSH >= 0.2.0-rc.1;當前資料中包版本爲 0.1.4
插件跑在 DSH Desktop 的 Host 進程裏,通過分離的 helper 完成結束 Electron 主進程與重新拉起,重啓成功時會用 lsappinfo 驗證新進程已註冊到 macOS 窗口服務器,而不是隻看進程是否還在。
核心功能¶
界面入口¶
- 有會話標題欄的頁面:電源按鈕位於標題欄圖標行最右側(順序爲「佈局 / 側欄 / 電源」)。
- 插件管理、自動化任務等無會話標題欄的頁面:按鈕固定在窗口右上角,換頁不消失。
- 歡迎頁與對話頁共用同一掛載位置;空會話也會顯示,樣式透明、不破壞主題。
四項操作¶
菜單爲白色圓角卡片,按破壞性從小到大排列:刷新、重啓、定時、關閉。支持方向鍵、Home/End、Enter/空格與 Esc;點擊後關閉/重啓會顯示半透明遮罩(「正在關閉DSH…」「正在重啓DSH…」)。點擊即執行,無二次確認;重啓與關閉會中斷正在生成的回答、工具與後臺任務,刷新只重載界面、不中斷後臺任務。
| 動作 | 結果 | 需要手動重開? |
|---|---|---|
| 刷新 | 只重載渲染層,應用與 Host 繼續運行 | 否 |
| 重啓 | 結束應用 → 等端口釋放 → 重新拉起 → 驗證窗口 | 否 |
| 定時(多種模式) | 到點關閉、到點重啓或立刻關再在 N 分鐘後啓動等 | 視模式而定 |
| 關閉 | 結束整個桌面應用,不重新啓動 | 是 |
刷新在點按前會比對插件 bundle 文件是否在本頁打開後被修改;若有改動會彈框列出相關插件,建議改走重啓,避免 revision 不一致導致整組 client.js 加載失敗。改完插件代碼應重啓,不要用刷新——DSH 的 versioned bundle 在磁盤文件變化後,刷新可能被宿主直接拒絕。
定時打開居中彈窗:填分鐘數並選擇「N 分鐘後關閉」「N 分鐘後重啓」或「現在關閉,N 分鐘後啓動」;排定後按鈕下方顯示倒計時膠囊,頁面刷新後可通過 /config 恢復定時狀態。
配置與系統提示詞¶
插件管理頁中 dsh-power-menu-mac 行右側有配置入口,路由爲 #/panel/plugins/dsh-power-menu-mac/dsh-power-menu-mac。也可編輯 ~/.dsh/dsh-power-menu-mac/config.json(首次讀取可自動生成),字段包括:
delayedRestartMinutes:定時彈窗默認分鐘數(1–1440,非法值回落 10)restartGuidance:是否在桌面宿主注入系統提示詞(僅顯式false關閉)restartGuidanceText:自定義提示詞正文(最長 2000 字)
默認注入的提示詞大意是:DSH 的重啓與關閉由用戶通過右上角電源菜單完成,模型不要詢問或主動提議。僅在桌面宿主生效;dsh web 無電源按鈕,該段會被丟棄。
其它說明¶
- 接口只監聽本機迴環地址並做同源校驗;無遙測、無外部依賴。
- 同一包也可用於
dsh web部署,關閉/重啓目標與就緒判據與桌面版不同;無頭部署可設DSH_POWER_MENU_NO_OPEN=1關閉重啓後自動open瀏覽器。
安裝與啓用¶
DSH 插件管理器安裝依賴後不會自動寫入 dsh.profile.bundles,裝完本插件後必須補 bundles 並重啓 DSH,否則客戶端 bundle 可能 404。倉庫提供 enable.sh(或 ./install.sh 一併處理)。
通過插件管理器(方式 B)¶
- 打開 DSH Desktop 的插件 / 插件市場。
- 添加插件,輸入:
github:DDDMUC/dsh-power-menu-mac
- 安裝完成後補寫 bundles(不可省略)。在含
enable.sh的目錄執行(腳本隨 GitHub 倉庫或 Release 提供):
./enable.sh
- 重啓 DSH,在插件市場 → 已安裝中確認
dsh-power-menu-mac爲「啓用中」。
命令行(方式 C)¶
若 dsh 不在 PATH,可使用應用包內 CLI:
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add github:DDDMUC/dsh-power-menu-mac
./enable.sh
然後重啓 DSH。
一鍵腳本 ./install.sh(及 --mirror、--tgz 離線參數)見 GitHub README;腳本會查找 DSH 自帶 dsh、安裝依賴並補齊 bundles。
典型用法¶
- 在會話標題欄右上角點擊電源圖標。
- 選擇 刷新、重啓、定時 或 關閉。
- 僅改界面狀態時用刷新;改插件或 profile 配置後用重啓;臨時離開或按計劃重啓可用定時;徹底退出用關閉。
若出現 bundle script … failed to load 且未改本插件,README 建議檢查 ~/.dsh/profiles/desktop/node_modules 下各插件 lib/client.js 語法(例如 node --check),整組 bundle 共用一個 script 標籤,任一插件語法錯誤會連坐報錯。
適用場景與注意¶
適合:在 macOS 上日常使用 DSH Desktop,頻繁改插件/配置、需要快速重載界面或重啓而不想每次從菜單欄退出;需要定時關閉或延遲重啓的場景。
注意:
- 插件以當前 DSH 進程權限運行,安裝前請自行查看源碼與 MIT 許可證,確認 helper 寫 handoff、發信號等行爲可接受。
- 僅 macOS 桌面版有標題欄電源按鈕;Linux/Windows 上不會加載 UI。
- 社區插件目錄 SkillHub 條目 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,安裝來源以你信任的倉庫爲準。
結尾¶
dsh-power-menu-mac 把 macOS 上 DSH 的刷新、重啓、定時與關閉收到標題欄電源菜單,並針對 bundle revision 與重啓就緒做了額外校驗;裝完後務必 enable.sh 補 bundles 再重啓。詳情與架構說明見 GitHub 倉庫 README,目錄頁:SkillHub - dsh-power-menu-mac。