记住并锁定主窗口尺寸位置,每次启动自动还原
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Koewen/dsh-window-size-lock该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · desktop
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件lib/index.js:328
if (!existsSync(p)) return null; - 读取本地文件lib/index.js:330
const o = JSON.parse(readFileSync(p, 'utf8')); - 写入本地文件lib/index.js:350
mkdirSync(dirname(p), { recursive: true }); - 写入本地文件lib/index.js:358
writeFileSync(p, JSON.stringify(payload, null, 2));
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件:跨会话记住、锁定并恢复主窗口尺寸(用 koffi + user32,无需 Electron API)。
README
由 DeepSeek 最新模型翻译生成dsh-window-size-lock
DeepSeek Harness(DSH)宿主插件,记住主窗口的尺寸和位置:每次启动都还原这两项,锁住它们不被默认布局覆盖,并跨会话持久保存。
功能
1. 启动时还原 —— DSH 主窗口一出现,立刻应用上次保存的矩形(x、y、width、height),并在短暂宽限期内反复重申,这样 DSH 默认的 1280×820 布局和 Windows 默认的窗口摆放都占不到上风。窗口每次重开都往右下角挪,就是这一步挡住的。
2. 调整时采纳 —— 你拖动窗口边缘或角,新尺寸稳定下来后,自动存为新的锁定值。
3. 最大化安全 —— 最大化(双击全屏)的窗口永远不会被记录。窗口处于缩放状态时,所有尺寸记录暂停;还原后,重新应用保存的非全屏尺寸。最小化的窗口同样冻结(这类窗口会报出经典的屏幕外矩形 -32000,-32000),无边框全屏(F11 那种)也一样——它不是 WS_MAXIMIZE,靠显示器覆盖启发式判断。
4. 持久化 —— 矩形存在 %APPDATA%\@deepseek-ai\dsh-desktop\window-size-lock.json,格式为 {x, y, width, height},重启后依然有效。v1.3.0 写的文件(只有尺寸)仍能读取;升级后第一次稳定读取时学到位置。
展开完整文档(README 剩余 1 节)
dsh-window-size-lock
DeepSeek Harness(DSH)宿主插件,记住主窗口的尺寸和位置:每次启动都还原这两项,锁住它们不被默认布局覆盖,并跨会话持久保存。
功能
1. 启动时还原 —— DSH 主窗口一出现,立刻应用上次保存的矩形(x、y、width、height),并在短暂宽限期内反复重申,这样 DSH 默认的 1280×820 布局和 Windows 默认的窗口摆放都占不到上风。窗口每次重开都往右下角挪,就是这一步挡住的。
2. 调整时采纳 —— 你拖动窗口边缘或角,新尺寸稳定下来后,自动存为新的锁定值。
3. 最大化安全 —— 最大化(双击全屏)的窗口永远不会被记录。窗口处于缩放状态时,所有尺寸记录暂停;还原后,重新应用保存的非全屏尺寸。最小化的窗口同样冻结(这类窗口会报出经典的屏幕外矩形 -32000,-32000),无边框全屏(F11 那种)也一样——它不是 WS_MAXIMIZE,靠显示器覆盖启发式判断。
4. 持久化 —— 矩形存在 %APPDATA%\@deepseek-ai\dsh-desktop\window-size-lock.json,格式为 {x, y, width, height},重启后依然有效。v1.3.0 写的文件(只有尺寸)仍能读取;升级后第一次稳定读取时学到位置。
出厂默认尺寸(1280×820)永远不会被采纳为锁定值,所以默认布局即使晚一步重置,也无法悄悄覆盖你保存的尺寸。
安装
用 DSH 插件命令行安装(把 exe 路径换成你的 DSH 安装位置):
set ELECTRON_RUN_AS_NODE=1
"D:\WorkStation\DeepSeek Harness\DeepSeek Harness.exe" --expose-internals ^
"D:\WorkStation\DeepSeek Harness\resources\app.asar\dsh\node_modules\@deepseek-ai\dsh-desktop-host\lib\cli.js" ^
plugin --profile desktop add https://github.com/Koewen/dsh-window-size-lock
然后重启 DeepSeek Harness。(命令行会跑 pnpm,自动安装插件的 koffi 依赖。)
配置
编辑 cordis.patch.yml 里的 config: 块,然后重装或重启:
| 键 | 默认值 | 含义 |
| enabled | true | 总开关。false = DSH 默认行为,不锁定。 |
| pollMs | 500 | 监视循环间隔,单位毫秒。 |
| graceMs | 3000 | 窗口出现后,保存的矩形要重申多久。如果 DSH 在 3 秒之后才重新应用自己的布局,就调大(比如 6000)。 |
| adoptFactoryDefault | false | 允许把 1280×820(DSH 出厂默认)采纳为尺寸锁定。位置不受这个开关影响,始终采纳。 |
| persistPosition | true | 同时记住并还原窗口原点。false 则回到 v1.3.0 的行为(只记尺寸)。 |
重置
删除已保存的 rect 文件,然后重启 DSH:
del "%APPDATA%\@deepseek-ai\dsh-desktop\window-size-lock.json"
工作原理
DSH 宿主插件运行在普通 Node 子进程里(用 ELECTRON_RUN_AS_NODE=1 启动),所以拿不到 Electron API。这个插件改从操作系统获取窗口句柄:
- 与主窗口运行在同一个交互式桌面会话中;
- 是 Electron 主进程的直接子进程,所以 process.ppid 正是持有主窗口的 PID。
插件通过 koffi(已作为依赖打包)绑定 user32.dll,按 Z 序查找父 PID 名下最大的可见顶层窗口,再按 pollMs 间隔用 MoveWindow / GetWindowRect 应用和观测尺寸。
限制
Electron 在 Chromium 消息层强制了最小窗口尺寸(约 520×600)。任何外部调用方都无法把窗口缩到这条下限以下——这个插件只在允许范围内锁定尺寸。
DPI:插件启动时会请求 per-monitor DPI awareness v2(尽力而为),这样坐标就是物理像素。如果宿主进程在这次调用之前已经固定了 DPI 上下文,混合 DPI 的多显示器环境恢复尺寸时可能出现缩放偏移。
兼容性
基于 DeepSeek Harness 0.2.1-rc.3 构建并测试。可选的 peerDependencies 按这个确切版本声明,以便通过兼容性检查。
测试
test/wsl-edge-tests.mjs 用测试进程里创建的真实 Win32 窗口(ownerPid: process.pid)驱动真实插件,配合隔离的 APPDATA 和消息泵,让最小化/最大化状态是真实的:
node test/wsl-edge-tests.mjs # 21 checks, exit code 1 on any failure
覆盖:接管、仅移动、仅缩放、最小化(-32000 的 rect 绝不能记录)、最大化、保存的原点位于屏幕外、旧版仅存尺寸的存储、persistPosition:false、拖动(拖动过程中不接管)、关闭后重开、多窗口(最大者胜出)、存储损坏、dispose、显示器遮挡冻结、出厂默认尺寸,以及 v1.3.0 → v1.4.0 升级路径。
更新日志
v1.4.0 — 同时记住位置
修复「窗口重开时略微偏右下」:旧代码只恢复保存的尺寸,并把窗口当前的原点传给 MoveWindow,所以位置从未持久化,每次启动都回落到 Windows 的默认摆放(逐级向右下偏移)。
- 保存/恢复 {x, y, width, height};保存的原点若已不与任何显示器相交(显示器被拔掉),就忽略它,而不是把窗口拖到屏幕外;
- 位置和尺寸独立接管:出厂默认的 1280×820 保护只拦截尺寸接管,所以从不调整窗口大小的用户仍能保存位置;
- 仅存尺寸的 v1.3.0 存储会就地升级——原点在第一次稳定读取时学到(以前 lastApplied 会把它永久吞掉);
- 诊断:窗口超出显示器时告警,冻结原因在启动、no window found for pid 警告、DPI 感知级别。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Koewen/dsh-window-size-lock
记住并锁定主窗口尺寸位置,每次启动自动还原
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,125已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,465已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,457已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,710已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,378已汉化DSH
70.2
这是你的仓库?认领条目