Attention 是一个基于 PyQt6 的桌面悬浮任务提醒应用。它提供始终置顶的便签样窗口、系统托盘菜单、预估时长提醒、定时锁屏计划表等能力,帮助你在电脑前保持专注并追踪任务状态。
- 悬浮提醒:无边框窗口始终置顶,可自由拖拽位置,文字带黑色描边避免背景干扰。
- 快捷编辑:双击任务文本即可编辑;右键或托盘菜单可开始、暂停/继续、终止任务。
- 预估时长:启动任务时可输入预估分钟数,超时会以不同颜色提示。
- 任务历史:自动记录开始、暂停、继续、终止事件,可按日期查看。
- 时间表/锁屏:支持维护今日时间表,到点弹出全屏提示并可在 Windows 上自动锁屏。
- 设置面板:在对话框中修改文字、字体、颜色、透明度、语言,以及管理时间表。
- 多语言:内置中英文本地化。
- Windows / macOS / Linux
- Python 3.10+
# 克隆仓库
cd attention
# 使用 uv / pip 安装依赖
uv pip install -e .
# 或
pip install -e .
# 启动应用
python main.py可选参数:
python floating_task.py --text "写周报" # 启动时覆盖默认任务文本
python floating_task.py --no-persist # 仅本次会话使用覆盖的文本首次运行会在当前目录生成:
config.json:保存窗口位置、文本、样式等配置。task_history.json:按日期记录任务状态变化。
- 拖拽移动:按住窗口任意位置拖动即可移动,位置会自动保存。
- 双击编辑:双击文本可直接修改任务内容。
- 右键/托盘菜单:
- “开始任务” 支持输入预估分钟数。
- “暂停/继续” 会在文本前后自动添加/移除暂停前缀。
- “终止任务” 会回到“暂无任务”状态。
- “查看任务历史” 在对话框中按日期查看事件列表。
- “任务设置/管理时间表” 打开设置面板,可调整字体/颜色/透明度/语言并管理时间表。
- 时间表:在设置面板或托盘菜单打开“管理时间表”,可新增/编辑/删除时间段;当前时间命中某段时会显示全屏倒计时并按需锁屏(仅 Windows)。
- 窗口关闭:点击关闭按钮会最小化到托盘,再次点击托盘图标可唤起。
项目提供了 TaskState 逻辑的基础单元测试,可在无图形界面环境下运行:
pytestattention/
├── attention/
│ ├── config.py # 配置模型与读写
│ ├── constants.py # 默认常量与路径定义
│ ├── history.py # 任务历史读写
│ ├── i18n.py # 多语言字符串
│ ├── schedule.py # 时间表管理、全屏提醒与锁屏
│ ├── settings.py # 设置对话框
│ ├── task_state.py # 任务状态模型与计算逻辑
│ └── ui.py # PyQt6 窗口主逻辑
├── floating_task.py # 命令行入口
├── main.py # 默认启动入口
└── tests/ # Pytest 测试
请根据项目实际情况补充(例如 MIT、Apache-2.0 等)。若尚未指定,请在此处说明。