前言¶
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 常驻占屏,又保留边缘一触即用的工作流,可按上文脚本安装并在设置里打开总开关。