前言¶
DSH 浏览器端无法直接调用 Win32 API 将桌面应用窗口置顶。这个插件通过 Remote 命名空间将按钮点击转发给宿主,由宿主侧执行 SetWindowPos 操作。
是什么¶
这是一个轻量级工具,为 DSH 桌面应用提供置顶开关。由 MARIOMLY 维护,开源协议为 MIT。
核心功能¶
侧边栏控制¶
左侧栏底栏(「设置」按钮左边)会出现一个图钉按钮。
* 空心图钉:未置顶,点击将窗口固定在最前面。
* 实心图钉 + 高亮:已置顶,点击取消。
模型工具¶
注册了 window_pin 工具,可以直接通过指令控制窗口置顶:
window_pin { action: "status" | "on" | "off" | "toggle" }
状态记忆与自动识别¶
- 状态记忆:置顶状态会被记住。落盘的是“意愿”而非窗口句柄。桌面窗口重建后(如重启服务、从托盘恢复),页面加载时会根据“意愿”自动恢复置顶状态。
- 自动识别:自动识别目标窗口。默认通过标题包含
DeepSeek Harness来识别。识别顺序为:上次活着的窗口 -> 前台窗口 -> Chromium--app可见窗口 -> 第一个可见窗口。
安装与启用¶
使用官方安装命令:
dsh plugin --profile web add <本包目录>
此命令会将 window-pin 注入到 profile 的组合树中,重启 DSH 后生效。
注意事项¶
- 平台限制:仅支持 Windows 平台。
- 无托盘项:没有托盘菜单项。
- 操作耗时:单次操作耗时约 400-500ms(PowerShell 启动 + 编译 C#)。
- 脚本约束:
- 辅助脚本
window-topmost.ps1必须是 ASCII-only 且无 BOM。 - 子进程必须使用
spawn,不能用execFile(避免管道读取问题)。
- 辅助脚本
结尾¶
该工具解决了浏览器无法直接控制原生窗口置顶的痛点,适合需要在开发或使用过程中频繁切换置顶状态的场景。