前言¶
DeepSeek Harness(DSH)桌面版在 Windows 上常以獨立窗口使用。窗口若長期停在屏幕中央,會擋背景內容;若手動拖到左或右邊緣,又需要反覆點任務欄或托盤才能再調出來。社區插件 dsh-edge-dock(維護者 facai5382-lab,分類:工作流)針對的是另一類習慣:把 Harness 貼到屏幕一側,點窗口外自動滑進邊緣,鼠標再碰到那條邊就滑出;並可選窗口置頂、全屏前臺時仍可從邊緣喚出。
下面介紹它的定位、能力與在 Windows 上的安裝啓用方式。資料來源於項目 GitHub README 與 SkillHub 目錄頁。插件以當前 DSH 進程權限運行;安裝前建議自行查看源碼與 MIT 許可證。DSH 生態主張「一切皆插件」;SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
這是什麼¶
dsh-edge-dock 是僅面向 Windows + DSH 桌面版 的插件(package.json 版本 1.0.0)。它不修改 DSH 的 app.asar,而是通過獨立進程 DshEdgeDock.exe 操作主窗口:貼邊判定、滑動收起與伸出、置頂及托盤菜單。宿主側(Node)負責部署 exe、守護進程,並向設置頁暴露本地 API;瀏覽器側只負責開關與狀態展示。
不需要管理員權限,也不需要單獨安裝 .NET SDK——Win10/11 自帶 .NET Framework 4.x 即可。
核心功能¶
經 README 覈實,能力可概括爲:
- 貼邊自動收起:Harness 貼在左/右邊緣後,點擊窗口外自動收起;鼠標碰到對應屏幕邊緣任意高度可喚出。收起時窗口滑到邊緣僅留約 4px 寬(多顯示器鄰屏場景會改爲隱藏,避免擋鄰屏)。
- 窗口置頂:可選讓 Harness 始終在最前;收起時會臨時撤掉置頂,避免長期擋住其他全屏窗口。
- 其他窗口全屏時也能喚出:前臺有全屏程序時,鼠標碰邊緣仍可將 Harness 提到最前;點外收起後恢復原前臺關係。
- 貼靠佈局豁免(默認開):經 Windows「貼靠佈局」擺成半屏/三分屏等的窗口不自動收起;自行拖到邊緣的仍會收。可在設置裏關閉該豁免。
- 開機自動啓動:寫當前用戶
HKCU\...\Run,僅對當前用戶、當前機器有效。
設置頁還提供「立即喚出 / 立即收起 / 重啓助手」及狀態條(是否檢測到窗口、貼哪一側、是否已收起),便於排查。托盤右鍵可暫停自動收起、置頂、全屏喚出、開機啓動、顯示窗口與退出。
安裝與啓用¶
不想從倉庫拉代碼時,可直接在 Releases · v1.0.0 下載 zip,解壓後執行安裝腳本。
在插件目錄中執行官方安裝命令:
powershell -ExecutionPolicy Bypass -File .\install.ps1
腳本會把插件複製到 %USERPROFILE%\.dsh\profiles\desktop\plugins\dsh-edge-dock 與 ...\node_modules\dsh-edge-dock,並在 profile 的 package.json 裏補充 dependencies 與 dsh.profile.bundles 兩處登記;改前備份 .bak,寫完自校驗,失敗自動還原。
profile 不在默認路徑時:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Profile "D:\xxx\.dsh\profiles\desktop"
隨後:
- 完全退出 DeepSeek Harness(托盤圖標右鍵退出),再重新打開。
- 打開 設置 → 貼邊自動收起(左側導航,圖標爲靠右的窗口),打開「啓用貼邊自動收起」。
DshEdgeDock.exe 無需手動安裝:宿主半側首次加載時會展開到 %LOCALAPPDATA%\DshEdgeDock\ 並啓動,之後約每 8 秒守護一次。
典型用法與設置項¶
日常流程:把 Harness 拖到左或右邊緣 → 點外面自動收起 → 需要時用鼠標碰同側邊緣喚出。全屏寫代碼或看視頻時,若開啓「其他窗口全屏時也能喚出」,仍可從邊緣拉出 Harness,用完點外收回。
設置頁開關含義(與 README 一致):
| 開關 | 作用 |
|---|---|
| 啓用貼邊自動收起 | 總開關,關閉後窗口行爲復原 |
| 窗口置頂 | Harness 常置最前(收起時臨時撤掉) |
| 其他窗口全屏時也能喚出 | 全屏前臺時邊緣仍可喚出 |
| Windows 窗口布局的窗口保持原樣 | 貼靠佈局窗口不自動收起 |
| 開機自動啓動 | 當前用戶登錄後自啓助手 |
頁面上的三個操作按鈕與 2 秒輪詢的狀態條,用於確認 exe 是否檢測到 DSH 主窗口。
架構與通信(便於排錯)¶
lib/index.js:宿主側部署 exe、守護,並提供/api-dsh-edge-dock/state|set|action。lib/client.js:設置頁 UI。bin/DshEdgeDock.exe:Win32 側實際窗口邏輯;瀏覽器無法直接拿句柄,故設置經宿主轉成 TCP 發往127.0.0.1:59731(一行命令一行應答,僅環回)。- 配置與日誌目錄:
%LOCALAPPDATA%\DshEdgeDock\(config.ini、edgedock.log、selftest.txt)。
自檢窗口矩形邏輯:
& "$env:LOCALAPPDATA\DshEdgeDock\DshEdgeDock.exe" --selftest
結果寫入同目錄 selftest.txt。
卸載¶
Stop-Process -Name DshEdgeDock -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILE\.dsh\profiles\desktop\plugins\dsh-edge-dock" -Recurse -Force
Remove-Item "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-edge-dock" -Recurse -Force
再從 profile package.json 去掉 "dsh-edge-dock" 兩處登記;%LOCALAPPDATA%\DshEdgeDock\ 可按需刪除。
適用場景與注意¶
適合:在 Windows 上長期開着 DSH 桌面版,希望窗口像側欄一樣貼邊、少佔視野,又要快速邊緣喚出的開發者。
限制(README 明確列出):
- 僅 Windows;非 win32 平臺宿主直接不加載。
- exe 未簽名,首次運行可能遇到 SmartScreen 或殺軟提示。
- 端口固定
59731,單實例互斥,同一機器不會跑兩份。 - 貼靠佈局按幾何識別半屏/三分屏等;非標準自定義佈局仍可能被視爲貼邊而收起。
貼邊判定留 64px 容差;窗口被拖離邊緣、最小化或收進托盤不會誤判爲「已收起」。從源碼重建 exe 可用倉庫內:
powershell -ExecutionPolicy Bypass -File .\src\build.ps1
(使用系統自帶 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\csc.exe。)
結尾¶
dsh-edge-dock 把 DSH 主窗口的貼邊收起與喚出放在獨立 exe 中,避免改動會被夜間更新覆蓋的 asar;插件側主要負責安裝登記、進程守護與設置頁遙控。若你需要在 Windows 上減少 Harness 常駐佔屏,又保留邊緣一觸即用的工作流,可按上文腳本安裝並在設置裏打開總開關。