WorkBuddy窗口总跑偏是因Electron多屏DPI兼容性限制,非bug;默认启用“Restore window position”导致跨屏布局丢失,关闭该选项并配合--window-position参数或PowerToys/Rectangle工具可稳定定位。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 默认不记忆窗口位置,多屏幕环境下首次启动或重启后,主窗口大概率会出现在主显示器左上角(而非用户常用屏幕),且无法通过拖拽“记住”跨屏布局。这不是 bug,而是其 Electron 底层对多显示器 DPI 缩放与窗口状态持久化的默认行为限制。
为什么 WorkBuddy 窗口总跑偏到副屏或主屏角落
Electron 13+ 版本在 Windows/macOS 多 DPI 屏幕下,bounds 值读取易受缩放比例干扰;macOS 的 screen.getDisplayNearestPoint 在外接高刷副屏(如 144Hz 或 240Hz)上返回坐标异常;Windows 上若主屏被设为“扩展模式但未设为主显示器”,app.getFocusedWindow() 会错误绑定到系统 UI 所在屏。这些都会导致窗口恢复逻辑失效。
常见现象包括:窗口闪现于副屏右下角后自动跳回主屏、拖到副屏松手瞬间窗口尺寸缩小 25%、全屏后退出变成 1/4 大小且位置偏移。
手动强制指定启动屏幕与坐标(Windows/macOS 通用)
WorkBuddy 支持通过启动参数注入初始窗口位置,绕过默认恢复逻辑。需配合任务计划或快捷方式使用,不能在已运行实例中动态修改。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
- Windows:创建快捷方式,目标栏末尾追加
--window-position="1920,100"(格式为x,y,单位像素,原点为**主显示器左上角**,即使你希望窗口出现在副屏,也要换算成全局坐标) - macOS:终端执行
open -a "WorkBuddy.app" --args --window-position="3840,120"(注意:macOS 多屏坐标系以主屏左上为 (0,0),副屏若在右侧,x 起始值 ≈ 主屏宽度 × 主屏缩放因子) - 关键提示:
--window-position必须放在命令最后,且不能带空格;若同时启用--maximize,该参数将被忽略
让窗口“粘”在指定屏幕的实用技巧
单纯靠启动参数不够稳定,尤其在热插拔显示器或系统休眠唤醒后。更可靠的做法是结合系统级工具 + WorkBuddy 自身设置:
- Windows 用户:用 PowerToys 的
Window Walker功能,给 WorkBuddy 进程名WorkBuddy.exe绑定“始终显示在屏幕2”,并勾选“保持大小与位置” - macOS 用户:安装
Rectangle(免费开源),为WorkBuddy设置快捷键(如Cmd+Alt+Ctrl+Right)一键飞入副屏右侧 2/3 区域,并保存为默认布局 - 所有平台:在 WorkBuddy 客户端内点击右上角头像 → 「Claw设置」→ 关闭
Restore window position on launch开关(该选项默认开启,正是造成跳屏的元凶)
多 Agent 实例窗口隔离部署要点
当在同一台多屏工作站上运行多个 WorkBuddy 实例(例如一个处理邮件、一个跑数据清洗),必须防止窗口互相遮挡或抢占焦点。仅靠不同账号登录不够——它们共享同一进程名和窗口类名。
- 每个实例必须使用独立配置目录:Windows 启动时加
--user-data-dir="D:\WB-Email",macOS 加--user-data-dir="/Users/me/Library/Application Support/WorkBuddy-Data-Clean" - 配合上述
--window-position参数,为每个实例分配固定屏幕区域,例如邮件实例用--window-position="0,0"(主屏左上),清洗实例用--window-position="1920,0"(副屏左上) - 避免同时启用多个实例的
Background Service,否则claw端口(默认 8080)会冲突;建议只让主实例开启,其余设为仅前台交互模式
真正麻烦的不是定位本身,而是 macOS 上外接 Mini-LED 副屏与主屏缩放比不一致(如主屏 1.5×、副屏 2×)时,Electron 渲染层会把窗口坐标当整数处理,导致 1px 偏移累积成明显错位。这种情况下,硬编码 --window-position 比依赖系统记忆更可控。

















