17 个版本 (9 个破坏性更新)
使用旧的 Rust 2015
0.10.1 | 2019年3月12日 |
---|---|
0.9.0 | 2018年11月10日 |
0.8.2 | 2017年10月7日 |
0.4.2 | 2016年9月16日 |
0.3.0 | 2015年7月18日 |
#201 in 硬件支持
每月 869 次下载
在 23 个 Crates 中使用
63KB
1K SLoC
i3ipc-rs
一个 Rust 库,通过其 IPC 接口 控制 i3-wm。
用法
将以下内容添加到您的 Cargo.toml 中
[dependencies.i3ipc]
version = "0.10.1"
消息
extern crate i3ipc;
use i3ipc::I3Connection;
fn main() {
// establish a connection to i3 over a unix socket
let mut connection = I3Connection::connect().unwrap();
// request and print the i3 version
println!("{}", connection.get_version().unwrap().human_readable);
// fullscreen the focused window
connection.run_command("fullscreen").unwrap();
}
事件
extern crate i3ipc;
use i3ipc::I3EventListener;
use i3ipc::Subscription;
use i3ipc::event::Event;
fn main() {
// establish connection.
let mut listener = I3EventListener::connect().unwrap();
// subscribe to a couple events.
let subs = [Subscription::Mode, Subscription::Binding];
listener.subscribe(&subs).unwrap();
// handle them
for event in listener.listen() {
match event.unwrap() {
Event::ModeEvent(e) => println!("new mode: {}", e.change),
Event::BindingEvent(e) => println!("user input triggered command: {}", e.binding.command),
_ => unreachable!()
}
}
}
版本控制
默认情况下,i3ipc-rs 以最小 i3 版本 4.11 为目标。要解锁更多功能,您可以在 Cargo.toml 中选择以下之一: "i3-4-12"
, ..., "i3-4-14"
。
[dependencies.i3ipc]
version = "0.10.1"
features = ["i3-4-14"]
编译的二进制文件不理解 i3 IPC 接口的扩展通常将返回一个 Unknown
值,并使用 log crate 将警告记录到目标 "i3ipc"
。使用此库的二进制文件应 安装日志记录器 以查看此类扩展的详细信息。
依赖关系
~0.5–1MB
~21K SLoC