前言¶
用 DeepSeek Harness 桌面版做日常开发时,窗口大小往往要反复拖一遍:桌面版创建主窗口时把尺寸写死为 1280 × 820,也不持久化窗口状态。在 Electron 渲染端里调用 window.resizeTo() 并不能真正改变 BrowserWindow 的大小,所以单靠前端改不了启动尺寸。
下面介绍社区插件 dsh-window-size(维护者 home-i,分类:客户端)。它在 Host 进程里通过 Win32 API 在窗口显示前设置尺寸与位置,并把用户调整结果记到 harness home,重启后自动恢复;默认水平垂直居中,并可在设置页手动调整。
这是什么¶
dsh-window-size 是面向 DeepSeek Harness 桌面版(Windows)的 Host 插件:记住窗口尺寸,重启后恢复;首次无记录时使用 1440 × 900 并居中;每次手动调整会自动记录;最大化、最小化、隐藏状态不写入记录,避免下次以错误尺寸打开。
在非桌面版 Host(dsh 命令行、服务器)上仍可加载,但设置页会提示窗口功能不可用。
- 目录页:https://www.skillhub.cn/plugins/home-i/dsh-window-size
- 源码与文档:https://github.com/home-i/dsh-window-size
- 许可证:MIT
核心功能¶
启动与记忆¶
- 首次启动:没有历史记录时使用 1440 × 900(可通过 Loader 配置修改),并居中。
- 每次手动调整:自动记录,下次启动按记录恢复。
- 默认居中:每次启动可把窗口放在当前显示器工作区正中;可在设置页关闭「启动时居中」,改为沿用上次位置。
- 状态过滤:最大化、最小化、隐藏一律不记录;恢复时会按当前显示器工作区收缩,换显示器也能用。
设置页¶
路径:设置 → 窗口尺寸。页面显示当前窗口尺寸、已记录尺寸和上次动作(含时间)。设置页不直接操作窗口,而是通过包私有 RPC /dsh-window-size 调用 Host,与启动恢复共用同一控制器。
| 控件 | 作用 |
|---|---|
| 宽度 / 高度 + 应用并记住 | 立刻改变窗口尺寸并保存 |
| 记住当前尺寸 | 保存当前手动拖出的尺寸 |
| 重新应用 | 用记录值再应用一次(含当前居中设置) |
| 恢复默认 | 回到配置的默认 1440 × 900 |
| 启动时居中 开关 | 恢复时是否居中 |
| 立即居中 | 只居中,不改尺寸 |
| 启用尺寸记忆 开关 | 关闭后既不恢复也不记录 |
技术要点(为何必须是 Host 插件)¶
桌面版主窗口尺寸在创建时写死且不持久化;渲染端改不了真实窗口大小。插件在 Host 里用 koffi 调用 FindWindowExW、GetWindowRect、GetDpiForWindow、SetWindowPos,并在窗口显示前完成设置,减少先闪一下旧尺寸的情况。
安装与启用¶
在插件管理器中填写 GitHub 源(资料原文安装方式):
github:home-i/dsh-window-size#v1.1.2
也可在桌面版 插件 页从本地目录安装。本地开发可将包链接进桌面版 profile:
// ~/.dsh/profiles/desktop/package.json
{
"dependencies": {
"dsh-window-size": "link:/path/to/dsh-window-size"
},
"dsh": {
"profile": {
"bundles": ["...", "dsh-window-size"]
}
}
}
下次启动即生效;改动源码后无需重装。注意:不要用手工建的 Windows junction 替代上述 link: 再执行 pnpm install,否则可能清空源码目录。
配置与状态文件¶
在 cordis.patch.yml 的 Loader 行里可配置首次默认值:
# cordis.patch.yml
- insert:
- id: dsh-window-size
name: dsh-window-size
config:
width: 1440 # 首次启动宽度,CSS 像素
height: 900 # 首次启动高度,CSS 像素
center: true # 每次恢复都居中
enabled: true # 是否启用恢复与记录
尺寸单位为 CSS 像素;宽高最小 520 × 600,恢复时还会受当前显示器工作区限制。
记录文件位于 harness home(跟随 profile,而非 Electron userData):
~/.dsh/dsh-window-size/window-size.json
删除该文件即回到配置默认值。last 字段记录最近一次动作及实际尺寸、DPI、窗口标题,便于排查「恢复后尺寸不对」等问题。
典型用法¶
- 安装并重启桌面版后,按习惯拖一次窗口;之后每次启动会自动恢复尺寸,并按「启动时居中」开关决定是否居中。
- 需要固定分辨率时:打开 设置 → 窗口尺寸,输入宽高后点 应用并记住。
- 临时不想记忆:在设置页关闭 启用尺寸记忆;需要默认大小时点 恢复默认(1440 × 900,或你在 YAML 里写的值)。
适用场景与注意¶
适合谁:在 Windows 10/11(x64 或 arm64)上使用 DSH 桌面版,希望窗口尺寸可持久化、可居中、可在 UI 里改,而不依赖每次手动拖窗口的用户。
环境:仅 Win32 窗口 API 生效;其它平台不会起作用。
安全与权限:插件以当前 DSH 进程权限运行,安装前请阅读源码与 MIT 许可证,确认来源为 https://github.com/home-i/dsh-window-size 。
常见问题:
- 包管理器报
dsh: cannot resolve profile bundle "dsh-window-size":manifest 已列 bundle 但node_modules/dsh-window-size缺失或链接无效,需补回链接或重装。 - 设置页不可用:当前 Host 不是桌面版,或
koffi/user32加载失败(页面会给出原因)。
结尾¶
dsh-window-size 把「窗口尺寸」从桌面版写死的 1280 × 820 里拆出来:Host 侧 Win32 设置、重启恢复、可选居中,以及 设置 → 窗口尺寸 里的显式控制。社区目录页见 https://www.skillhub.cn/plugins/home-i/dsh-window-size ,实现细节与 RPC 约定见 GitHub README。