WorkTimer(工作休息提醒)是一款完全本地运行的 PyQt6 系统托盘应用,用来提醒长时间工作的用户定时休息。应用不需要账号或网络连接。
- 启动后驻留系统托盘并自动开始计时
- macOS 运行时仅显示菜单栏图标,不占用程序坞
- 1–1440 分钟的自定义工作时长,以及 30、45、60、90 分钟快捷选项
- 单次计时与自动循环计时
- 轻度、标准、强提醒、超强提醒四级提醒
- 配置自动保存,异常配置安全回退
- 防止重复运行多个实例
- 支持 Windows、macOS 与 Ubuntu 打包
默认设置为 60 分钟、循环模式、强提醒。循环模式每次到期都会立即开始下一轮;单次模式到期后停止。
| 强度 | 系统通知 | 提示音 | 额外界面 |
|---|---|---|---|
| 轻度 | 是 | 否 | 无 |
| 标准 | 是 | 是 | 无 |
| 强提醒 | 是 | 是 | 置顶确认弹窗 |
| 超强提醒 | 是 | 是 | 黑屏休息 1 分钟 |
系统通知是否显示还取决于操作系统的通知权限。强提醒仍会通过独立弹窗提醒。 超强提醒会覆盖所有显示器并显示 60 秒倒计时;如有紧急事项,需要打开紧急解除面板并输入当次随机生成的 6 位验证码。它不会阻止操作系统级的强制退出或任务切换。
需要 Python 3.11 或更新版本。
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[test]"
python -m worktimerWindows PowerShell 激活虚拟环境:
.\.venv\Scripts\Activate.ps1运行测试:
QT_QPA_PLATFORM=offscreen pytest配置通过界面修改,保存在 Qt 提供的当前用户应用配置目录下,文件名为 config.json。公开字段如下:
{
"duration_minutes": 60,
"timer_mode": "loop",
"alert_level": "strong"
}timer_mode 可取 single 或 loop;alert_level 可取 light、standard、strong 或 ultra。
Windows PowerShell:
.\build-windows.ps1macOS:
chmod +x build-macos.sh
./build-macos.shUbuntu:
chmod +x build-linux.sh
./build-linux.shUbuntu 构建产物为 WorkTimer-Ubuntu-x64.tar.gz。解压后可直接运行其中的 WorkTimer;目标系统需要图形桌面和系统托盘支持。自动发布使用 Ubuntu 24.04 x64 构建环境。
如果系统默认的 python3 早于 3.11,可显式指定解释器:
PYTHON_BIN=/path/to/python3.13 ./build-macos.sh
PYTHON_BIN=/path/to/python3.13 ./build-linux.sh生成结果位于 dist/。公开分发 macOS 应用前仍需使用 Apple Developer 证书签名并完成公证。
项目包含 GitHub Actions 发布工作流。推送 v*.*.* 格式的版本标签后,GitHub 会先运行测试,再分别构建 Windows x64、Ubuntu x64、macOS Apple Silicon 和 macOS Intel 安装包,最后自动创建 Release 并附上 SHA-256 校验文件。
发布新版本前,请同步修改 pyproject.toml 和 src/worktimer/__init__.py 中的版本号并提交。例如发布 1.0.1:
git tag v1.0.1
git push origin v1.0.1标签版本必须与程序版本一致,否则工作流会停止发布。构建进度可在 GitHub 仓库的 Actions 页面查看,完成后可在 Releases 页面下载安装包。
当前 macOS 自动构建产物未进行 Apple Developer 签名或公证,首次打开时可能受到 Gatekeeper 限制。正式公开分发前仍建议配置证书签名和 Apple 公证。