#focus #x11 #active #monitor #linux #window #api-bindings

focus_monitor

每次焦点窗口更改时的迭代库

5个版本

0.1.4 2023年5月7日
0.1.3 2023年2月16日
0.1.2 2022年12月1日
0.1.1 2022年11月29日
0.1.0 2022年11月28日

#454 in Unix APIs

MIT许可证

9KB
180

Linux上的焦点窗口更改迭代器

示例用法

以下代码将打印每次活动窗口更改时获得焦点的窗口。

window 可以是 None,如果没有活动窗口。

use focus_monitor::FocusMonitor;

fn main() -> anyhow::Result<()> {
    let focus_monitor = FocusMonitor::try_new()?;
    for window in focus_monitor {
        let window = window?;
        println!("{:?}", window);
    }

    Ok(())
}

异步

要启用 AsyncFocusMonitor,请在 Cargo.toml 中使用 features=["tokio"]

focus_monitor = { version = "0.1", features = ["tokio"] }

你可以这样使用它

use focus_monitor::AsyncFocusMonitor;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut focus_monitor = AsyncFocusMonitor::try_new()?;
    let window = focus_monitor.recv().await?;
    println!("{:?}", window);
}

lib.rs:

Linux上的焦点窗口更改迭代器

示例用法

以下代码将打印每次活动窗口更改时获得焦点的窗口。

window 可以是 None,如果没有活动窗口。

let focus_monitor = FocusMonitor::try_new()?;
for window in focus_monitor {
    let window = window?;
    println!("{:?}", window);
}

依赖项

~1–2.4MB
~44K SLoC