上手· 05
快捷键、菜单与窗口
全局快捷键只拦截不吞事件、右键菜单是自绘的、无边框窗口用 8 个热区接管边缘缩放。
快捷键
| 快捷键 | 作用 |
|---|---|
| Ctrl + , | 打开设置 |
| Ctrl + W | 关闭窗口 |
| Alt + ← / → | 向导上一步 / 下一步 |
| Esc | 关闭右键菜单 / 对话框 |
| ↑ ↓ Home End | 文件树与菜单中移动焦点 |
| → ← | 文件树中展开 / 折叠、进入 / 返回上层 |
| 空格 / Enter | 切换文件树勾选状态 |
对话框内 Tab 在面板内部循环,Enter 触发主操作; Esc 与点击遮罩都会正常结束对话框,不会卡住调用方。

右键菜单
桌面程序右键一定有菜单。SealPack 用自绘菜单替掉 WebView2 的原生菜单,外观跟随当前皮肤, 键盘语义完整(↑ ↓ 循环、Home / End 跳首尾、 Enter 执行、Esc 关闭并归还焦点),贴边时自动收拢到视口内。
| 位置 | 菜单项 |
|---|---|
| 工程行 | 打开主程序目录 / 打开输出目录 / 删除工程 |
| 文件树 | 勾选当前结果 / 全选 / 全不选 / 清空已选与筛选 / 重新扫描目录 |
| 输入框与脚本区 | 剪切 / 复制 / 粘贴 / 全选 |
| 运行日志 | 复制全部输出 / 清空日志 |
| 主题按钮 | 窗口材质开关(Mica Alt) |

窗口
- 无边框自绘标题栏:最小化 / 最大化 / 关闭由前端绘制,标题栏可拖拽移动、双击切换最大化。 无边框窗口在 Windows 上会失去系统提供的边缘缩放,因此另用 8 个透明热区接管四边四角。
- 窗口材质:Windows 11 上启用 Mica Alt 后标题栏 / 侧栏 / 状态栏半透明,内容区保持实色。
三道闸门任一不通过就完全退回实色:
set_effects()失败(Windows 10)、用户手动关闭(右键主题按钮)、 系统开启「减弱透明度」。主题按钮上会出现▾表示该菜单存在。 - 窗口尺寸与最大化状态会被记住,位置不会 —— 位置始终居中,避免上次把窗口拖到已拔掉的显示器上之后找不着。
- 窗口以
visible: false创建,前端在「写皮肤 → 两帧 rAF →show()」之后才显示,所以启动不闪白底; Rust 侧另有一个 1.5 秒的兜底显示,前端脚本出错也不会让窗口永不出现。
两套设计,三种明暗
标题栏的切换器上点一下即可实时切换,两套设计共用同一份 DOM,差异 100% 由 CSS 表达。
| 设计 | 字体 | 主色 | 手动模式下的默认主题 |
|---|---|---|---|
| 瑞士技术网格 | Instrument Sans + JetBrains Mono | 暖白纸底 #faf8f5 + 朱红 #d8332a |
浅色 |
| 终端 · 赛博安全工具 | Chakra Petch + IBM Plex Mono | 近黑底 #05070a + 荧光青 #35d6e8 / 酸绿 #a3e635 |
深色 |

明暗有三种模式,点「主题」按钮循环:自动(跟随系统) → 深色 → 浅色 → 自动。
默认自动 —— 本地程序应当尊重 Windows 的「应用模式」设置,而不是自说自话。
系统明暗取自 prefers-color-scheme(WebView2 会把它映射到 Windows 应用模式),
系统一变界面立刻跟着变,不需要重启。一旦手动指定就不再被系统覆盖;
此时每套设计各记自己的明暗,切回某套设计时恢复它上次用的主题。