29 lines
985 B
Rust
29 lines
985 B
Rust
extern crate wayland_client;
|
|
|
|
use wayland_client::{Display, GlobalManager};
|
|
|
|
// A minimal example printing the list of globals advertised by the server and
|
|
// then exiting
|
|
|
|
fn main() {
|
|
// Connect to the server
|
|
let display = Display::connect_to_env().unwrap();
|
|
|
|
let mut event_queue = display.create_event_queue();
|
|
|
|
let attached_display = (*display).clone().attach(event_queue.token());
|
|
|
|
// We use the GlobalManager convenience provided by the crate, it covers
|
|
// most classic use cases and avoids us the trouble to manually implement
|
|
// the registry
|
|
let globals = GlobalManager::new(&attached_display);
|
|
|
|
// A roundtrip synchronization to make sure the server received our registry
|
|
// creation and sent us the global list
|
|
event_queue.sync_roundtrip(&mut (), |_, _, _| unreachable!()).unwrap();
|
|
|
|
// Print the list
|
|
for (id, interface, version) in globals.list() {
|
|
println!("{}: {} (version {})", id, interface, version);
|
|
}
|
|
}
|