37 lines
929 B
Rust
37 lines
929 B
Rust
use gtk4::{gdk, glib, prelude::*};
|
|
|
|
mod deref_cell;
|
|
mod mpris;
|
|
mod window;
|
|
mod x;
|
|
|
|
fn main() {
|
|
gtk4::init().unwrap();
|
|
let main_context = glib::MainContext::default();
|
|
let _acquire_guard = main_context.acquire().unwrap();
|
|
|
|
let display = gdk::Display::default().unwrap();
|
|
let monitors = display.monitors().unwrap();
|
|
|
|
for i in 0..monitors.n_items() {
|
|
let monitor = monitors
|
|
.item(i)
|
|
.unwrap()
|
|
.downcast::<gdk::Monitor>()
|
|
.unwrap();
|
|
window::window(monitor);
|
|
}
|
|
|
|
monitors.connect_items_changed(|monitors, position, _removed, added| {
|
|
for i in position..position + added {
|
|
let monitor = monitors
|
|
.item(i)
|
|
.unwrap()
|
|
.downcast::<gdk::Monitor>()
|
|
.unwrap();
|
|
window::window(monitor);
|
|
}
|
|
});
|
|
|
|
glib::MainLoop::new(None, false).run();
|
|
}
|