dsh-power-menu-mac:在 macOS 桌面版 DSH 標題欄一鍵刷新、重啓與關閉

前言

在 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)

  1. 打開 DSH Desktop 的插件 / 插件市場。
  2. 添加插件,輸入:
github:DDDMUC/dsh-power-menu-mac
  1. 安裝完成後補寫 bundles(不可省略)。在含 enable.sh 的目錄執行(腳本隨 GitHub 倉庫或 Release 提供):
./enable.sh
  1. 重啓 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。

典型用法

  1. 在會話標題欄右上角點擊電源圖標。
  2. 選擇 刷新、重啓、定時 或 關閉。
  3. 僅改界面狀態時用刷新;改插件或 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。

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

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

小夜