5 个版本

0.1.2 2021 年 5 月 27 日
0.1.1 2021 年 5 月 26 日
0.0.9 2021 年 5 月 20 日

#558GUI


i3owm 中使用

MIT/Apache

11KB
134

i3status_ext Rust

这是一个 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