elvwlc

2 commits
Updated 2026-06-10 17:49:22
examples
examples/window.rs
use elvwlc::{
    self as wlc,
    client::WlClient,
    proto::{WlMsg, WlRegistryGlobal},
};

use wlc::proto::WlDisplayGetRegistry;

fn main() {
    let mut client = WlClient::new("/run/user/1000/wayland-0", 4096).unwrap();

    let new_registry = client.next();
    client
        .request(WlMsg::new(
            WlClient::ID,
            WlDisplayGetRegistry { new_registry },
        ))
        .unwrap();

    client.pump().unwrap();

    loop {
        match client.read::<WlRegistryGlobal>() {
            Ok(Some(msg)) => {
                assert_eq!(msg.id(), new_registry);
                println!("{:?}", msg.payload());
            }
            Ok(None) => break,
            Err(e) => {
                println!("Error: {e:?}");
                break;
            }
        }
    }
}