一个功能丰富的命令行番茄钟计时器,使用 Go 语言编写。
cmd/
gomato/
main.go # 程序入口,负责依赖注入和启动
taskList.go # TUI界面相关组件
pkg/
app/ # 应用主逻辑,命令处理
menu/ # 菜单与交互逻辑
timer/ # 计时器核心,任务存储与计时逻辑
task/ # 任务管理(增删查改、持久化)
setting/ # 应用设置管理
config/ # 配置结构体与默认值
common/ # 通用工具(如终端颜色)
- 可自定义工作和休息时间
- 多种计时器显示方式(普通显示、ANSI字符艺术显示)
- 支持在设置界面选择时间显示方式(普通/ANSI艺术)
- 设置菜单功能(时间显示格式、查看/重置设置)
- 任务管理(添加、完成、删除、清空、最近任务)
- 统计功能(工作/休息会话数、总工作时长、任务完成率)
- 实时显示剩余时间
- 支持优雅退出(Ctrl+C)
- 任务数据自动保存和加载
- 跨平台支持(根据操作系统自动选择清屏方式)
- Windows/Linux 桌面通知支持(Windows 需安装 go-toast 依赖)
- 新增:TUI界面 - 现代化的终端用户界面
你可以在设置界面的 Timer 标签页中选择计时器的时间显示方式:
- ANSI艺术显示(默认):
- 使用ASCII字符艺术显示时间,视觉效果更丰富
- 示例:
____ ____ ___ ___ |___ \ | ___| _ / _ \ / _ \ __) | |___ \ (_) | | | | | | | | / __/ ___) | _ | |_| | | |_| | |_____| |____/ (_) \___/ \___/
- 普通数字显示:
- 使用标准数字格式显示时间
- 示例:
25:00
- 启动程序:
go run ./cmd/gomato - 按
s键进入设置界面 - 在 Timer 标签页中,使用
Tab键导航到"时间显示方式"选项 - 按
1或2选择,或用左右箭头切换 - 按
Enter保存设置
- 确保已安装 Go 1.21 或更高版本
- 克隆此仓库
- 安装 Windows 通知依赖(仅 Windows 用户,Linux 用户可跳过):
# Windows 下支持原生通知弹窗
# 需安装 go-toast 依赖
# 仅在 Windows 下执行
go get github.com/go-toast/toast- 运行程序:
# 运行现代化的TUI界面
go run ./cmd/gomato# 运行传统命令行界面
go run cmd/gomato/main.go# 编译
go build -o gomato ./cmd/gomato
# 运行
./gomato- 现代化的终端用户界面
- 使用方向键导航
- 支持列表操作和快捷键
- 更直观的交互体验
- 设置界面支持时间显示方式选择
- 经典的命令行交互
- 通过菜单选择操作
- 支持命令输入和快捷键
- 添加新任务
- 查看所有任务
- 查看最近任务
- 设置工作/休息时间
- 设置时间显示方式(普通/ANSI艺术)
- 退出程序
help- 显示帮助信息stats- 显示统计信息tasks- 显示任务列表add <描述>- 添加新任务complete <ID>- 完成任务work <时间>- 设置工作时间(如:25m)break <时间>- 设置休息时间(如:5m)name <名称>- 设置当前任务名称pause- 暂停计时resume- 恢复计时start- 手动开始计时(非自动模式)quit- 退出计时
g- 开始计时p- 暂停r- 恢复s- 统计t- 任务h- 帮助q- 退出
25m- 25分钟1h- 1小时30s- 30秒
支持两种计时器显示方式:
- 普通显示 - 传统的数字时间显示
- ANSI字符艺术显示 - 使用ANSI字符艺术效果显示时间
可通过设置菜单切换显示方式。
- 时间显示格式 - 选择计时器的显示方式
- 查看当前设置 - 显示所有当前配置
- 重置为默认设置 - 恢复所有设置为默认值
- 工作会话数
- 休息会话数
- 总工作时间
- 任务完成率
- 可添加多个任务
- 标记任务完成状态
- 查看任务列表和状态
- 任务数据自动保存到
~/.gomato/tasks.json - 程序启动时自动加载已保存的任务
- 任务数据保存在用户主目录下的
.gomato文件夹中 - 任务数据文件:
~/.gomato/tasks.json - 单个任务配置:
~/.gomato/task.json - 数据会在以下情况下自动保存:
- 添加新任务时
- 完成任务时
- 修改任务状态时
- 代码遵循
cmd/和pkg/的标准 Go 项目布局 - 运行全部测试:
go test ./...- ✨ 新增TUI界面:现代化的终端用户界面,使用Bubble Tea框架
- ✨ 项目结构重构:采用
cmd和pkg标准布局,提升可维护性。 - ✨ 新增ANSI字符艺术计时器显示功能
- ✨ 设置界面支持时间显示方式选择
- ⚙️ 添加设置菜单,支持时间显示格式配置
- 🔧 重构配置管理,优化代码结构
- 🐛 修复暂停时计时器未真正暂停的bug
- 🌍 根据运行时检测操作系统进行清屏操作
- 仅支持类Unix终端(如Linux/macOS)
- 确保终端支持ANSI转义序列以获得最佳显示效果
欢迎提交PR或issue!
感谢使用本番茄钟计时器!