5 个版本
0.1.2 | 2021 年 5 月 27 日 |
---|---|
0.1.1 | 2021 年 5 月 26 日 |
0.0.9 |
|
#558 在 GUI 中
在 i3owm 中使用
11KB
134 行
i3status_ext
这是一个 Crates,允许你扩展 i3status 显示,如此处所述。
使用方法
首先将此 Crates 添加到你的 Cargo.toml
文件中的依赖项。
[dependencies]
i3status_ext = "0.1.0-beta.1"
要编译以下示例代码,你还需要添加 clap
程序参数 Crates。
clap = "3.0.0-beta.2"
然后将外部 Crates 添加到你的扩展源文件中,并调用一次 i3status_ext::begin()
和在循环中调用一次 i3status_ext::update()
。
extern crate i3status_ext;
use clap::App;
fn main() {
// read arguments
let args = App::new("myext").args(&[
Arg::new("position")
.short('p')
.takes_value(true),
Arg::new("reverse")
.short('r'),
]);
// get arguments (with minimal plausibility check)
let position = args
.value_of("position")
.unwrap_or("0")
.parse::<usize>()
.unwrap_or(0);
let reverse = args.is_present("reverse");
// start reading i3status' output from stdin
let mut io = i3status_ext::begin();
// prepare some text to insert
let my_text = "Hello, World!";
loop {
// insert your part into i3status
i3status_ext::update(&mut io, "my_text", position, reverse, my_text);
}
}
i3status 进程将通过 stdin
向你发送状态更新,你可以在期望的位置继续插入你的状态项。
如果你感兴趣更复杂的示例,请查看 i3owm,它将当前天气信息插入到 i3status 中。
将你的扩展添加到 i3 状态栏
要激活你的扩展,找到你的 i3 配置文件中的 bar
定义,该文件通常位于 ~/.config/i3/config
。
bar {
status_command i3status | my_own_i3status_extension -rp1
}
参考文档
除了这个介绍外,还有一份参考文档,可以在 这里 找到。
链接
网站
在 i3status_ext.thats-software.com 上,这份 README 文件读起来更美味。
github 仓库
要查看源代码,请查看 github.com 上的 此仓库。
在 crates.io 上
在 crates.io 上发布。
许可证
i3status_ext 在 MIT 许可证 下授权(LICENSE-MIT 或 http://opensource.org/licenses/MIT)。
依赖项
~3.5–5.5MB
~99K SLoC