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
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