dsh-edge-dock:DSH 窗口貼邊自動收起(Windows)

前言

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 覈實,能力可概括爲:

  1. 貼邊自動收起:Harness 貼在左/右邊緣後,點擊窗口外自動收起;鼠標碰到對應屏幕邊緣任意高度可喚出。收起時窗口滑到邊緣僅留約 4px 寬(多顯示器鄰屏場景會改爲隱藏,避免擋鄰屏)。
  2. 窗口置頂:可選讓 Harness 始終在最前;收起時會臨時撤掉置頂,避免長期擋住其他全屏窗口。
  3. 其他窗口全屏時也能喚出:前臺有全屏程序時,鼠標碰邊緣仍可將 Harness 提到最前;點外收起後恢復原前臺關係。
  4. 貼靠佈局豁免(默認開):經 Windows「貼靠佈局」擺成半屏/三分屏等的窗口不自動收起;自行拖到邊緣的仍會收。可在設置裏關閉該豁免。
  5. 開機自動啓動:寫當前用戶 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"

隨後:

  1. 完全退出 DeepSeek Harness(托盤圖標右鍵退出),再重新打開。
  2. 打開 設置 → 貼邊自動收起(左側導航,圖標爲靠右的窗口),打開「啓用貼邊自動收起」。

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 常駐佔屏,又保留邊緣一觸即用的工作流,可按上文腳本安裝並在設置裏打開總開關。

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

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

小夜