一个基于 Rust 和 ratatui 构建的现代化终端 Todo 管理应用,具备时间跟踪、项目管理和双栏布局等特色功能。
- 左侧项目面板:管理不同的项目分类
- 右侧 Todo 面板:显示当前项目的所有任务
- 类似 lazygit 的操作体验:直观的双栏导航
- 简单计时机制:记录开始时间、结束时间和总耗时
- 一键切换:按
t键开始/停止计时 - 自动结束计时:标记完成时自动停止计时
- 累计时间显示:格式化显示总工作时间(如:2h 30m 15s)
- 工作状态指示:⏱️ 图标显示正在进行的任务
- 自适应布局:根据终端宽度智能调整显示
- 窄屏优化:终端宽度 < 80 时自动切换为垂直布局
- 文本截断:自动处理长文本显示
- 视觉反馈:活动面板高亮显示(黄色边框)
- 自动保存:所有操作实时保存到本地文件
- JSON 格式:数据存储为可读的 JSON 格式
- 跨平台路径:macOS/Linux 使用
~/.config/s_todo/data.json - 备用存储:自动降级到当前目录
s_todo_data.json
| 快捷键 | 功能描述 |
|---|---|
Tab |
在项目和 Todo 面板间切换 |
j / ↓ |
向下移动光标 |
k / ↑ |
向上移动光标 |
空格 |
切换 Todo 完成状态(自动停止计时) |
a |
添加新项目或新 Todo |
r |
重命名选中的项目或 Todo |
d |
删除选中的项目或 Todo |
t |
开始/停止当前 Todo 的计时 |
s |
手动保存数据 |
q |
退出程序(自动保存) |
- 创建项目:在项目面板按
a添加新项目 - 添加任务:切换到 Todo 面板,按
a添加新任务 - 开始工作:选中任务后按
t开始计时 - 完成任务:工作完成后按空格标记完成(自动停止计时)
- 查看统计:任务旁显示累计工作时间
- Rust 1.70+
- 支持 UTF-8 的终端
# 克隆仓库
git clone https://github.com/your-username/s_todo.git
cd s_todo
# 安装到系统
cargo install --path .
# 现在可以在任何地方使用
std# 克隆仓库
git clone https://github.com/your-username/s_todo.git
cd s_todo
# 直接运行
cargo run# 卸载程序
cargo uninstall s_todo
# 可选:删除配置文件
rm -rf ~/.config/s_todo/欢迎提交 Issue 和 Pull Request!
MIT License - 详见 LICENSE 文件
享受高效的终端 Todo 管理体验! 🎉


