dsh-window-state:自定義 DSH 桌面窗口的啓動狀態

前言

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 桌面客戶端提供了標準化的窗口啓動控制能力。

GitHub 倉庫 | 社區目錄

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

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

小夜