1 个不稳定版本
0.1.0 | 2023年1月7日 |
---|
#5 在 #eww
22KB
488 行
pfui
高效生成状态栏内容,尤其是 eww
是什么
在设置您的状态栏时,您可能希望在其中包含一些内容,例如当前键盘布局、音乐播放器的状态,以及最重要的是窗口管理器的工作区。
一些状态栏具有内置的模块,例如 polybar,但这也可能导致其限制性。
pfui 以通用方式提供此类模块,您可以使用它与几乎任何可配置的状态栏一起使用。(我编写此工具是为了与我 eww 配置一起使用,因此它主要是为此而开发的,但您应该能够将其与任何可以运行脚本并监听输出的状态栏一起使用。)
如何使用
pfui 提供了内置模块,这些模块启动事件监听器,因此数据仅在需要时更新,并且,也许更重要的是,它在有变化时正好更新。
当您使用模块运行 pfui 可执行文件,例如 mpd 时,pfui 将持续运行,直到您停止它,并且每当您的音乐播放器发生任何变化时,它都会以 JSON 字符串的形式输出您可能希望在状态栏中使用的数据。Eww 原生支持 JSON,对于其他状态栏,您可能需要编写一个包装脚本来处理数据,并以您希望的状态栏格式输出字符串。
为什么
如果没有内置模块,您有两个选择
- 您可以编写一个 shell 脚本,它启动一个与 pfui 类似的事件监听器,然后每当有变化时输出数据。这是令人烦恼的。
- 您可以每秒、每分钟等更新数据。这是低效的。(可能不够明显,清楚地说)更重要的是,这意味着您可能会延迟接收更新。
简而言之,使用 pfui,当您暂停音乐时,状态栏会立即显示,没有 1 秒的延迟,也不需要手动 shell 脚本。
用法
在编写此说明时,第一个真正的提交大约是 20 分钟前,因此它处于非常早期的开发阶段。请原谅我未包括详细的安装说明。
构建项目
Git 克隆,确保您已安装 cargo,运行 cargo build --release
。默认情况下,所有模块都包含在内,您可以使用功能标志手动排除/包含一些模块,因为目前只有一个模块,我不会现在添加一个列表,因为我可能会忘记更新它,只需查看 Cargo.toml 即可。
可选地确保二进制文件(target/release/pfui
)位于您的 PATH
上。
运行模块
执行二进制文件并指定您要运行的模块。
pfui start mpd
从 eww 运行
在您的 eww.yuck
(deflisten mpd-info "pfui start mpd")
依赖项
~2.6–4MB
~76K SLoC