dsh-window-control:DSH 窗口铺满、置顶与带确认退出

前言

用 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

典型用法

  1. 安装并完成上述两次完全退出再启动后,进入 Settings → Window & Quit。
  2. 在「启动时铺满」里选最大化、真全屏或关闭;选项立即生效。
  3. 用界面上的全屏、最大化、最小化、置顶按钮按需切换。
  4. 在「退出快捷键」里选 Esc、双击 Esc、Ctrl+Q 或关闭;退出前会经过原生确认框。
  5. 若使用真全屏且开启「全屏下 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
羽毛球分组比赛记分
小程序二维码

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

小夜