15 个稳定版本

1.4.5 2023年9月29日
1.4.4 2023年5月8日
1.4.3 2023年4月30日
1.3.4 2023年3月19日
1.1.1 2022年4月3日

#140命令行工具 中排名

Download history 90/week @ 2024-07-27

每月 90 次下载

啤酒许可

130KB
3K SLoC

⏱️⌛ rust-cli-pomodoro

目录

演示

动机

番茄工作法 是一种时间管理方法(更多信息请参阅链接)。通常 25 分钟工作,5 分钟休息为一个周期。对我来说,当我工作时,我发现有意识地休息一段时间可以提高效率和健康(做5分钟的伸展)。所以我制作了这个。

架构

番茄工作法支持两种输入类型,标准输入和 IPC(通过 Unix 域套接字)。为了支持它们,番茄工作法应用程序的架构看起来是这样的。
Architecture drawing

功能

目前番茄工作法提供了以下功能。要查看更多功能,请运行 pomodoro 并输入 help

  • 使用自定义工作和休息时间创建通知
  • 当提供配置文件时,将使用文件中指定的默认值创建通知
  • 排队通知。排队通知将在之前注册的通知完成后开始运行
  • 自定义通知交付渠道。请参阅 使用 configuration.json 部分
  • 使用 list 命令以美观格式打印创建的通知
  • 删除注册的通知
  • 使用 history 命令跟踪归档的通知
  • 使用 history --clear 命令删除归档的通知
  • 清除终端
  • 支持交互模式下使用箭头键查找命令历史记录。(notification 由工作时间和休息时间组成。番茄工作法使用 notification 来管理计时器。)
  • 为多个 shell(fish、zsh、bash、elvish、powershell)生成自动完成脚本

根据输入类型,命令提供略有不同。

启动 & IPC 命令

如果您想启动,请使用适当的 OPTIONS 运行番茄钟。或者,如果您想向已启动的番茄钟发送命令(通过IPC),请使用 SUBCOMMANDS 运行命令。

pomodoro 1.4.0
Young
start up application with config or run command using uds client

Usage: pomodoro [OPTIONS]
       pomodoro <COMMAND>

Commands:
  create      create the notification
  queue       create the notification
  delete      delete a notification
  list        list notifications
  history     show archived notifications
  test        test notification
  completion  generate completions for shells
  help        Print this message or the help of the given subcommand(s)

Options:
  -c, --config <config>  Read configuration json file from this path
  -h, --help             Print help
  -V, --version          Print version

标准输入命令

番茄钟运行时,您可以交互式地发出命令。

pomodoro 1.4.0
Young
manage your time!

Usage: pomodoro [COMMAND]

Commands:
  create   create the notification
  queue    create the notification
  delete   delete a notification
  list     list notifications
  history  show archived notifications
  test     test notification
  clear    clear terminal
  exit     exit pomodoro app
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

安装和使用方法

安装

  1. 目前只需克隆此存储库并运行 cargo run --release 或自行构建并按需使用二进制文件。
git clone [email protected]:24seconds/rust-cli-pomodoro.git
cd rust-cli-pomodoro
cargo run --release
  1. 使用 cargo install rust-cli-pomodoro
cargo install rust-cli-pomodoro

使用 configuration.json

番茄钟支持多种配置。

  • Slack 通知
  • Discord 通知
  • 工作时间默认值
  • 休息时间默认值

要使用它,您需要在本地机器的某个位置创建 json 文件,例如 configuration.json。以下是一个 Configuration.json 文件的示例。

{
  "slack": {
      "token": "your-bot-token-string",
      "channel": "your-slack-channel-id"
  },
  "discord": {
      "webhook_url": "your-webhook-url"
  },
  "work_time_default_value": 30,
  "break_time_default_value": 10
}

对于 Slack 通知,它使用 chat.PostMessage API

对于 Discord 通知,它使用 webhook url

要使用 configuration.json 运行番茄钟,请按如下方式运行应用程序。

# If the configuration.json file exists in the current path
pomodoro --config ./configuration.json

自动完成

rust-cli-pomodoro 支持自动完成。但您需要手动生成完成脚本并将其放置在正确的路径。

自动完成是制表符完成。当您键入几个字符并按制表符键时,您可以看到可能的命令,如下所示。

步骤 1. 使用命令生成完成脚本文件

您需要运行命令以获取完成脚本。命令如下所示。

Usage: pomodoro completion [shell]

Arguments:
  [shell]  [possible values: fish, zsh, bash, elvish, powershell]

例如,如果您运行 pomodoro completion zsh,则脚本将通过标准输出打印出来。因此,您需要这样做。

$ pomodoro completion zsh > _pomodoro

文件名应该是 underscord 加二进制名称,即 _pomodoro

步骤 2. 将完成脚本文件放置在正确的路径

将完成脚本文件放置在正确的路径。例如,在 zsh shell 中,正确的路径是 $fpath 之一。您可以通过运行此命令来检查。

> echo $fpath

在我的情况下,我将完成脚本放在 /Users/young/.oh-my-zsh/completions 下。

步骤 3. 重新运行 zsh shell 并享受吧!

要使用自动完成,您需要为打开的终端运行此命令。对于新打开的终端,自动完成将正常工作。

$ exec zsh
# or
$ source ~/.zshrc

享受!

路线图

  • 如有需要,请运行前面的命令
  • 命令自动完成
  • 编写集成测试
  • 更丰富的通知:声音、应用图标、提示、操作等
  • 提供更多通知传递选项:目前番茄钟使用桌面通知。但通知可以通过 Slack、电子邮件或任何其他方式传递。
    • Slack 集成
    • Discord 集成
    • 还有其他什么吗?
  • 提供一种简单的方法来使用此应用程序(brew、snap、cargo install 等)
    • cargo install
  • 还有什么吗?

  • 支持 macOS (>= 11.0.0)通知:目前 notify-rust 使用 mac-notification-sys,但 mac-notification_sys 不支持最近的 macOS 版本(截至 2021 年 10 月 17 日下午 5:10)> 发布的二进制文件可以无问题发送桌面通知(2022 年 5 月 13 日星期五凌晨 1:21)

兼容性

启动 & 标准输入

它取决于 notify-rust 的支持,因此 Linux、Mac (<= 11.0.0)和 Windows (10、8.1)。

  • 注意:如果您通过运行 cargo install 命令使用此应用程序,那么 macOS 桌面通知似乎运行良好(2022 年 4 月 3 日星期日)

IPC

目前支持 Linux 和 macOS(因为番茄钟使用 Unix 域套接字)

依赖项

~22–58MB
~1M SLoC