11 个不稳定版本 (5 个破坏性更新)

0.6.1 2023年7月4日
0.6.0 2023年6月29日
0.5.1 2023年2月8日
0.4.0 2022年8月4日
0.1.2 2022年7月9日

#166日期和时间

每月下载量 45

MIT 许可证

4MB
1K SLoC

uair

uair 是为类 UNIX 操作系统设计的最小化番茄计时器。与其他计时器不同,uair 简单地将剩余时间打印到标准输出。除了使代码更容易维护外,这种设计还使得 uair 非常可扩展,因为它可以用于各种状态栏、命令行和图形用户界面。

功能

  • 可扩展:可用于状态栏、桌面小部件、CLI、GUI 等。
  • 键盘驱动:使用 uairctl 命令行工具暂停/恢复计时器。它可以绑定到键盘快捷键。
  • 资源高效:使用并发而不是创建多个线程。
  • 多个同步计时器:多个同步的 uair 计时器可以共存,同时共享单个句柄
  • 最小化:它遵循 UNIX 哲学,专注于做好一件事。

安装

从 Arch 用户仓库

uair 为 AUR 打包。使用 AUR 辅助工具或 makepkg 进行安装。

paru -S uair

或者

yay -S uair

或者

git clone https://aur.archlinux.org/uair.git
cd uair
makepkg -si

从 crates.io

cargo install uair

请确保将 $HOME/.cargo/bin 包含在 PATH 变量中。

用法

快速入门

resources/uair.toml 复制到项目目录下的 ~/.config/uair/

mkdir -p ~/.config/uair
cp -r resources/uair.toml ~/.config/uair/uair.toml

启动 uair。

uair

uair 启动或会话完成时,计时器处于暂停状态。为了开始会话,必须使用 uairctl 命令。通过在另一个 shell 中调用 uairctl 来恢复计时器以启动会话。

uairctl resume

要暂停会话,请使用

uairctl pause

要切换暂停和恢复状态,请使用

uairctl toggle

要启动与该实例同步的另一个实例,请使用

uairctl listen

配置

配置采用TOML格式。如果没有通过 -c 标志指定配置文件,它将根据XDG基本目录规范进行查找,即按照以下顺序查找配置文件,直到找到为止。

  • $XDG_CONFIG_HOME/uair/uair.toml
  • $HOME/.config/uair/uair.toml
  • ~/.config/uair/uair.toml

示例配置

[defaults]
format = "{time}\n"

[[sessions]]
id = "work"
name = "Work"
duration = "30m"
command = "notify-send 'Work Done!'"

[[sessions]]
id = "rest"
name = "Rest"
duration = "5m"
command = "notify-send 'Rest Done!'"

[[sessions]]
id = "hardwork"
name = "Work, but harder"
duration = "1h 30m"
command = "notify-send 'Hard Work Done!'"

必须在 sessions 键中提供会话列表。每个会话都是一个包含会话属性的表。以下列出了一些属性:

  • id:会话的唯一标识符
  • name:会话名称
  • duration:会话持续时间
  • command:会话结束时运行的命令
  • format:指定每秒打印文本的格式
  • autostart:布尔值(true或false),表示会话是否自动启动。

如果数组中会话的属性未指定,则使用 defaults 部分中指定的默认值。例外是 id 属性,如果未指定,则默认为会话在会话数组中的索引(从0开始)。如果属性在默认部分中也没有提到,则从硬编码的默认值列表中获取该属性。

建议为每个会话指定一个 id,因为这使得 uair 在重新加载配置文件时能够跟踪当前会话,并且使用 uairctl jump 命令跳转到任何会话变得方便。

与polybar集成

在配置中包含番茄钟模块。

[module/uair]
type = custom/script
exec = uair
label = %output%
tail = true

请记住在模块列表中包含该模块。

modules-right = filesystem uair pulseaudio xkeyboard memory cpu wlan eth date

为了显示它,在打印剩余时间后应该打印一个换行符。

[defaults]
format = "{time}\n"

[[sessions]]
id = "work"
name = "Work"
duration = "30m"
command = "notify-send 'Work Done!'"

简单的CLI计时器

[defaults]
format = "\r{time}           "

[[sessions]]
id = "work"
name = "Work"
duration = "1h 30m"
command = "notify-send 'Work Done!'"

运行方式

clear && uair

带有yad的GUI

[defaults]
format = "{percent}\n#{time}\n"

[[sessions]]
id = "work"
name = "Work"
duration = "1h 30m"
command = "notify-send 'Work Done!'"

运行方式

uair | yad --progress --no-buttons --css="* { font-size: 80px; }"

路线图

  • 使用UNIX套接字的基本暂停/恢复功能
  • next/prev子命令
  • 格式说明符
  • 能够重新加载配置
  • uairctl listen 子命令:用于多个同步计时器
  • 专用的GUI客户端
  • 专用的crossterm客户端

依赖关系

~6–18MB
~217K SLoC