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

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

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

小夜