前言¶
DSH(DeepSeek Harness)是 DeepSeek 的桌面客戶端,採用插件化架構。在日常使用中,窗口每次啓動時的位置和大小往往不一致,這會打斷工作流。dsh-window-state 插件解決了這一問題,允許用戶在設置中指定窗口的啓動狀態。
核心功能¶
該插件在 DSH 桌面客戶端的「設置 → 通用設置」裏增加了一行「啓動窗口狀態」選項。
用戶可選擇每次啓動時窗口以「默認」、「最大化」或「全屏」打開。用戶的偏好會被持久化存儲在 localStorage(鍵名 dsh-window-state:startup)中,並在啓動時或修改設置時立即生效。
安裝與啓用¶
通過 CLI 安裝插件:
dsh plugin install github:gaoyian7251/dsh-window-state
安裝完成後,必須重啓桌面客戶端才能生效。
使用方法¶
重啓 DSH 客戶端後,打開「設置 → 通用設置」。
1. 找到「啓動窗口狀態」一行。
2. 選擇「默認 / 最大化 / 全屏」。
3. 選擇會立刻應用到當前窗口,並保存。下次啓動時自動應用。
注:選擇「默認」時,窗口將保持 Electron 記住的上次位置與大小。
工作原理¶
DSH 桌面主窗口由 Electron 主進程創建。經過反編譯驗證,dsh-desktop:window-fullscreen 通道是單向通知,且主進程代碼中沒有提供全屏/最大化的入口供插件調用。因此,本插件採用「越界機制」:通過 Win32 API(user32.dll)從子進程定位並控制窗口。
具體步驟:
1. 使用 EnumWindows 按窗口類 Chrome_WidgetWin_1 和標題含 DeepSeek Harness 定位主窗口。
2. 使用 ShowWindowAsync 發送 SW_MAXIMIZE 或 SW_RESTORE 指令。
3. 全屏模式通過剝離窗口邊框樣式(WS_CAPTION | WS_THICKFRAME)並調整位置實現。
注意事項¶
- 僅限 Windows:依賴 PowerShell 和 Win32 API。
- 全屏效果:屬於「僞全屏」,通過剝離邊框實現,視覺效果等同於
BrowserWindow.setFullScreen(true),無系統標題欄。 - 環境變量修正:插件會探測 PowerShell 的絕對路徑(如
System32\WindowsPowerShell\v1.0、PowerShell 7 等),並在起子進程前修正 PATH 和 SystemRoot 等環境變量,不嚴格要求它們出現在系統 PATH 中。 - 本地安裝報錯:如果通過本地路徑安裝,重裝時可能會因 Junction 鏈接殘留報錯。需使用
cmd /c rmdir刪除殘留鏈接,然後重新安裝。
結語¶
該插件爲 DSH 桌面客戶端提供了標準化的窗口啓動控制能力。