这是 old9/ppttimer 的原生 macOS 移植版。Windows 版依赖 AutoHotkey;macOS 版使用 Swift、AppKit 和 SwiftUI 重写,不需要安装 PowerPoint 插件。
作者:孙煦明
本仓库是 old9/ppttimer 的 macOS 原生移植与增强版,在保留原项目来源和 MIT 许可证的基础上,加入了可拖动计时浮层、自定义快捷键和多显示器适配等功能。
当前仓库尚未发布可直接安装的 macOS 应用包。请先下载源码,再在 macOS 上构建:
- 下载完整源码(ZIP),然后解压。
- 在终端进入解压后的项目目录,按从源码构建运行测试和构建脚本。
- 构建成功后,将
dist/PPT-Timer.app拖入“应用程序”文件夹。
应用要求 macOS 13 或更高版本。构建脚本会生成支持 Apple Silicon 和 Intel Mac 的通用应用,使用本地临时代码签名(ad hoc),未经过 Apple 公证。
- 默认在 PowerPoint 或 Mac WPS 进入全屏放映时自动开始,退出放映时自动停止
- 可关闭“仅检测 PowerPoint / WPS”,用于 Keynote、浏览器等其他全屏演示
- 透明置顶的倒计时浮层,可在全屏空间上显示;拖动浮层可改变位置,轻点仍打开控制菜单
- 拖动位置会按屏幕相对坐标保存,重启、分辨率变化和多显示器模式下仍保持在可视区域内
- 提前提醒、结束声音、超时正计时和闪烁提示
- 多显示器显示或移动到下一个显示器
- 计时预设、全局快捷键和原生设置界面
- 开始、停止、暂停/恢复、重置四项全局快捷键均可在“设置 → 快捷键”中自定义
- 配置自动保存在 macOS 用户偏好设置中
- 不需要屏幕录制或辅助功能权限
双击应用后不会出现 Dock 图标;计时器和控制入口默认位于菜单栏下方的右上角。直接拖动浮层可改变位置,轻点浮层可打开开始、停止、重置、设置和退出菜单。切换设置中的固定位置会清除手动拖动位置。
仅打开演示文稿不会开始计时,必须进入幻灯片放映:
- PowerPoint:选择“幻灯片放映 → 从头开始播放”。首次检测时,允许 PPT-Timer 控制 Microsoft PowerPoint。
- Mac WPS:进入原生 Mac WPS 的全屏幻灯片放映。
- 窗口化放映或未被识别的演示程序:按
F12手动开始。
退出放映后计时自动停止。计时器浮层会避开菜单栏,并在放映时提升到全屏窗口之上。
| 操作 | 快捷键 |
|---|---|
| 开始计时 | F12 |
| 停止计时 | Control + F12 |
| 暂停/恢复 | Control + F11 |
| 重置 | Control + Option + F12 |
| 移至下个显示器 | Control + Command + M |
| 在所有显示器显示 | Control + Command + A |
| 载入预设 1–6 | Control + Command + F1–F6 |
| 退出 | Command + Esc |
如果 Mac 将功能键设置为亮度、音量等系统控制,需要同时按 Fn,或在“系统设置 → 键盘”中启用“将 F1、F2 等键用作标准功能键”。
开始、停止、暂停/恢复、重置的快捷键可以在“设置 → 快捷键”中点击按键框后直接录入。四项不能重复,也不能占用预设、显示器切换和退出等固定快捷键;需要时可一键恢复默认值。
默认启用“仅检测 PowerPoint / WPS”,只响应 Microsoft PowerPoint 和原生 Mac WPS Office 的幻灯片放映。关闭该选项后,Keynote、浏览器全屏演示等占满显示器的窗口也可以触发计时。
PowerPoint 的窗口化放映不会占满屏幕,无法可靠地与普通编辑窗口区分;这种模式请按 F12 手动开始。手动开始后,默认会暂停自动检测,避免窗口状态打断计时。
要求 macOS 13 或更高版本,并安装提供 Swift 6.0 或更高版本工具链的 Xcode Command Line Tools 或 Xcode。下载源码后,在终端进入项目目录,再执行:
swift --version
zsh scripts/test.sh
zsh scripts/build_app.sh脚本会运行 Release 构建、生成应用图标、复制声音资源、创建临时代码签名,并输出同时支持 Apple Silicon 与 Intel Mac 的通用 dist/PPT-Timer.app。
运行测试:
zsh scripts/test.shSources/PPTTimer/:macOS 原生应用源码Tests/PPTTimerTests/:计时格式、配置和全屏判定测试scripts/build_app.sh:通用.app打包脚本ppttimer_v2.ahk:原项目的 Windows AutoHotkey 源码beep.mp3、applause.mp3:沿用原项目提示音
- 原始 Windows 项目:old9/ppttimer
- 原始 AutoHotkey 源码、提示音和项目思路来自上述项目
- macOS 版本作者:孙煦明
- macOS 原生移植、通用二进制构建与测试由孙煦明完成,OpenAI Codex 提供开发协助
- 仓库保留原始提交历史与上游链接,便于追溯代码来源
采用 MIT License,允许使用、修改、分发和商用;复用时须保留版权与许可证声明。仓库保留上游作者的原始版权声明,来源见上方“来源与致谢”。