Skip to content

[Feature] Windows 关窗最小化到任务栏 + 托盘退出入口(#55 第 ① 条只实现了 macOS) #71

Description

@Baekjojo

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

  1. Windows 下点 × → 最小化到系统任务栏(进程与正在跑的 agent 保持存活),与 macOS 那条同一语义;
  2. 新增托盘图标:左键点击 → 显示/聚焦主窗口;右键菜单 →「显示主窗口」/「退出」;
  3. 从任务栏或托盘点回来时,恢复原来的会话与滚动位置;
  4. 若两平台不便统一,可给设置项「关闭窗口时:退出 / 最小化到任务栏」,默认按各平台习惯走。

Alternatives considered

现在只能点标题栏的「–」最小化按钮,或者接受退出后重启(长任务场景代价很大)。
前者其实能用,只是和 Windows 桌面应用「点 × 收到托盘/任务栏继续跑」的普遍习惯不一致。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions