What problem does this solve?
环境:Windows 11 x64 / Percho 0.6.0。
#55 的四条里,第 ① 条「任务栏最小化」经 #61 实现后只覆盖了 macOS:
packages/desktop/src/main/window.ts 的 close 只在 darwin 分支 preventDefault() + hide(),
非 darwin 直接 return(提交信息也写明「非 darwin 行为不变」)。我当初 issue 里漏写了平台,
这次补上(已在 #55 补过评论)。
Windows 上的实际后果:
- 点标题栏 × → 整个程序退出(
main/index.ts 的 window-all-closed 里,非 darwin 走
app.quit()),正在跑的 agent 一起结束;
- 目前没有任何托盘(Tray)实现。我按 v0.6.0 的
packages/desktop/src/main/ 逐个看过,
没有 tray 模块;window.ts 只注册了 ready-to-show 和 close 两个监听;
- 同时
main/index.ts 里有 if (process.platform !== "darwin") Menu.setApplicationMenu(null);,
也就是 Windows 连菜单栏都没有。
所以:如果只把 × 改成最小化,Windows 用户会失去正常退出入口。
托盘不是可选配套,得一起做。
实机感受:因为在 Windows 上 × = 退出,而 0.6.0 启动又是纯空(不恢复上次打开的会话),
误点一次 × 之后要回左栏重新找会话。
Proposed solution
- Windows 下点 × → 最小化到系统任务栏(进程与正在跑的 agent 保持存活),与 macOS 那条同一语义;
- 新增托盘图标:左键点击 → 显示/聚焦主窗口;右键菜单 →「显示主窗口」/「退出」;
- 从任务栏或托盘点回来时,恢复原来的会话与滚动位置;
- 若两平台不便统一,可给设置项「关闭窗口时:退出 / 最小化到任务栏」,默认按各平台习惯走。
Alternatives considered
现在只能点标题栏的「–」最小化按钮,或者接受退出后重启(长任务场景代价很大)。
前者其实能用,只是和 Windows 桌面应用「点 × 收到托盘/任务栏继续跑」的普遍习惯不一致。
What problem does this solve?
环境:Windows 11 x64 / Percho 0.6.0。
#55 的四条里,第 ① 条「任务栏最小化」经 #61 实现后只覆盖了 macOS:
packages/desktop/src/main/window.ts的close只在 darwin 分支preventDefault() + hide(),非 darwin 直接
return(提交信息也写明「非 darwin 行为不变」)。我当初 issue 里漏写了平台,这次补上(已在 #55 补过评论)。
Windows 上的实际后果:
main/index.ts的window-all-closed里,非 darwin 走app.quit()),正在跑的 agent 一起结束;packages/desktop/src/main/逐个看过,没有 tray 模块;
window.ts只注册了ready-to-show和close两个监听;main/index.ts里有if (process.platform !== "darwin") Menu.setApplicationMenu(null);,也就是 Windows 连菜单栏都没有。
所以:如果只把 × 改成最小化,Windows 用户会失去正常退出入口。
托盘不是可选配套,得一起做。
实机感受:因为在 Windows 上 × = 退出,而 0.6.0 启动又是纯空(不恢复上次打开的会话),
误点一次 × 之后要回左栏重新找会话。
Proposed solution
Alternatives considered
现在只能点标题栏的「–」最小化按钮,或者接受退出后重启(长任务场景代价很大)。
前者其实能用,只是和 Windows 桌面应用「点 × 收到托盘/任务栏继续跑」的普遍习惯不一致。