前言¶
用 DeepSeek Harness(DSH)做智能体开发时,主窗口默认不会自动占满屏幕;想全屏或最大化往往要每次手动点。关闭窗口时,DSH 还会缩到托盘而不是退出,和「一键退出」的预期也不一致。官方主进程目前没有暴露最大化、最小化、置顶或退出的 IPC,单靠渲染层做不到真正的窗口级全屏(盖住任务栏)和原生确认对话框。
下面介绍的 dsh-window-control(维护者 YunLiZeMeng,GitHub 仓库 YunLiZeMeng/dsh-window-control)面向桌面端 DSH,在设置里集中管理窗口与退出行为;安装后插件自带的 host 半会自动写入窗口通道,无需额外脚本、Python 或手改配置文件。
这是什么¶
dsh-window-control 是 DSH 社区目录中的客户端类插件(目录页:skillhub.cn/plugins/YunLiZeMeng/dsh-window-control)。当前 package 版本为 1.4.2,许可证 MIT。
它解决的是:启动时自动铺满屏幕、随时最大化/还原/最小化/置顶,以及通过 Esc、双击 Esc 或 Ctrl+Q 触发带原生确认框的退出;在真全屏下 Esc 默认先退出全屏而不是直接问是否退出。
入口在 DSH 内:Settings → Window & Quit。
核心功能¶
以下能力均来自插件 README 与描述,主开关默认开启;关闭后主开关后插件完全不生效(无自动铺满、无快捷键退出,其它控件隐藏),并会恢复它曾改过的窗口状态。
| 能力 | 说明 |
|---|---|
| 启动时铺满 | 三选一:最大化(默认) / 真全屏 / 关闭;改后立即生效,无需重启 DSH |
| 全屏 / 退出全屏 | 窗口级全屏(覆盖任务栏),不是网页层 fullscreen |
| 最大化 / 还原 | 常规最大化与还原 |
| 最小化 | 窗口进任务栏 |
| 始终置顶 | DSH 窗口保持在其它窗口之上 |
| 退出 Harness | 退出前始终弹出原生确认对话框 |
| 退出快捷键 | 四选一:Esc(默认) / 双击 Esc / Ctrl+Q / 关闭 |
| 全屏下 Esc | 默认开启:真全屏时 Esc 先退出全屏,而不是直接走退出确认 |
插件自述为自包含:host 半会在安装后自行打开 DSH 的窗口通道。因 DSH 主进程未提供上述 IPC,实现方式是在首次运行时向 resources/app.asar 注入等量替换的 IPC 通道(保留 app.asar.orig 备份)。这与其它需要宿主行为的 DSH 插件做法一致。Windows 用户级安装已测;装在 Program Files 下时首次安装可能需要一次提权运行。macOS 修改 app.asar 可能影响代码签名,插件会提示,可用 restore 回滚。Linux 可用但路径回退较少。
安装与启用¶
官方推荐在应用内市场安装,不要用凭仓库名拼出来的 CLI 命令(桌面版默认没有 dsh 命令,会报 'dsh' is not recognized)。
Step 1 · 添加插件。 打开应用内市场,搜索 dsh-window-control 并安装。
若搜不到:目录同步可能需最多一天;刷新市场(或更新市场本身)后完全退出 DSH 再打开。条目已在社区 registry 中,多半是市场缓存未更新。
Step 2 · 完全退出 DSH。 托盘图标 → Quit。只关窗口会缩到托盘,不算退出,通道也不会装上。
Step 3 · 再次打开 DSH(第一次启动)。 此次会把窗口通道写入 app.asar。打开 Settings → Window & Quit 时可能仍显示通道未激活——属预期,不是失败。
Step 4 · 再次完全退出并打开(第二次启动)。 此后警告消失,按钮可用;之后一般不必再为此重启。
原因简述:DSH 主进程在启动时加载代码,插件只能在 DSH 已运行时打补丁;第一次启动写入通道,第二次启动才加载通道。两次启动之间都要托盘 → Quit 完全退出。
可选验证(Windows,将 dsh-primary-runtime 与 profile 名 desktop 按本机实际目录调整):
"%USERPROFILE%\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe" "%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-window-control\lib\bridge-cli.mjs" status
输出含 桥状态 : 已安装 v3(含最小化 / 窗口置顶) 即表示通道已装好。macOS / Linux 可在插件目录执行:
cd ~/.dsh/profiles/desktop/node_modules/dsh-window-control && node lib/bridge-cli.mjs status
典型用法¶
- 安装并完成上述两次完全退出再启动后,进入 Settings → Window & Quit。
- 在「启动时铺满」里选最大化、真全屏或关闭;选项立即生效。
- 用界面上的全屏、最大化、最小化、置顶按钮按需切换。
- 在「退出快捷键」里选 Esc、双击 Esc、Ctrl+Q 或关闭;退出前会经过原生确认框。
- 若使用真全屏且开启「全屏下 Esc 先退出全屏」,按 Esc 会先离开全屏。
排障时可在 cmd 中用同一 node.exe 与 bridge-cli.mjs 路径,把末尾子命令换成 check、install、restore、uninstall 等(详见 README「Manual commands」表)。仅还原 app.asar、保留插件时,用 restore 而非 uninstall。
适用场景与注意¶
适合谁: 每天打开 DSH 都希望窗口自动最大化或真全屏、需要置顶或最小化、且希望用 Esc / Ctrl+Q 等方式在确认后再退出的桌面用户。
卸载顺序: 必须先还原桥接再卸插件。推荐先执行(路径同上,子命令 uninstall):
"%USERPROFILE%\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\node\bin\node.exe" "%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-window-control\lib\bridge-cli.mjs" uninstall
期望看到 已还原为原始 app.asar 与 桥状态 : 未安装,再在市场中移除插件。无命令行时可在 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml 追加 autoInstall: false 后完全退出再开一次,由 host 半还原,再卸插件。
安全与权限: 插件以当前 DSH 进程权限运行,并会修改安装目录下的 app.asar。安装前请自行查看 GitHub 源码 与 MIT 许可证,确认接受宿主补丁方式与平台差异(尤其 macOS 签名、Windows 提权路径)。
DSH 生态强调「一切皆插件」;skillhub.cn 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文安装步骤以插件 README 为准。
结尾¶
dsh-window-control 把「启动铺满、窗口控制、带确认的退出」收进 Settings → Window & Quit,用自安装的窗口通道补上 DSH 主进程未暴露的能力;首次使用需市场安装并两次完全退出再启动。
- 目录页:https://www.skillhub.cn/plugins/YunLiZeMeng/dsh-window-control
- GitHub:https://github.com/YunLiZeMeng/dsh-window-control