前言¶
DSH 瀏覽器端無法直接調用 Win32 API 將桌面應用窗口置頂。這個插件通過 Remote 命名空間將按鈕點擊轉發給宿主,由宿主側執行 SetWindowPos 操作。
是什麼¶
這是一個輕量級工具,爲 DSH 桌面應用提供置頂開關。由 MARIOMLY 維護,開源協議爲 MIT。
核心功能¶
側邊欄控制¶
左側欄底欄(「設置」按鈕左邊)會出現一個圖釘按鈕。
* 空心圖釘:未置頂,點擊將窗口固定在最前面。
* 實心圖釘 + 高亮:已置頂,點擊取消。
模型工具¶
註冊了 window_pin 工具,可以直接通過指令控制窗口置頂:
window_pin { action: "status" | "on" | "off" | "toggle" }
狀態記憶與自動識別¶
- 狀態記憶:置頂狀態會被記住。落盤的是“意願”而非窗口句柄。桌面窗口重建後(如重啓服務、從托盤恢復),頁面加載時會根據“意願”自動恢復置頂狀態。
- 自動識別:自動識別目標窗口。默認通過標題包含
DeepSeek Harness來識別。識別順序爲:上次活着的窗口 -> 前臺窗口 -> Chromium--app可見窗口 -> 第一個可見窗口。
安裝與啓用¶
使用官方安裝命令:
dsh plugin --profile web add <本包目錄>
此命令會將 window-pin 注入到 profile 的組合樹中,重啓 DSH 後生效。
注意事項¶
- 平臺限制:僅支持 Windows 平臺。
- 無托盤項:沒有托盤菜單項。
- 操作耗時:單次操作耗時約 400-500ms(PowerShell 啓動 + 編譯 C#)。
- 腳本約束:
- 輔助腳本
window-topmost.ps1必須是 ASCII-only 且無 BOM。 - 子進程必須使用
spawn,不能用execFile(避免管道讀取問題)。
- 輔助腳本
結尾¶
該工具解決了瀏覽器無法直接控制原生窗口置頂的痛點,適合需要在開發或使用過程中頻繁切換置頂狀態的場景。