1 extern crate xcb;
2
3 use std::thread;
4 use std::time::Duration;
5
main()6 fn main() {
7 let rectangles: &[xcb::Rectangle] = &[xcb::Rectangle::new(200, 200, 400, 400)];
8
9 let (conn, screen_num) = xcb::Connection::connect(None).unwrap();
10 let setup = conn.get_setup();
11 let screen = setup.roots().nth(screen_num as usize).unwrap();
12
13 let gc = conn.generate_id();
14
15 xcb::create_gc(
16 &conn,
17 gc,
18 screen.root(),
19 &[
20 (xcb::GC_FUNCTION, xcb::GX_XOR),
21 (xcb::GC_FOREGROUND, screen.white_pixel()),
22 (xcb::GC_BACKGROUND, screen.black_pixel()),
23 (xcb::GC_LINE_WIDTH, 1),
24 (xcb::GC_LINE_STYLE, xcb::LINE_STYLE_ON_OFF_DASH),
25 (xcb::GC_GRAPHICS_EXPOSURES, 0),
26 ],
27 );
28
29 //loop {
30 xcb::poly_rectangle(&conn, screen.root(), gc, &rectangles);
31 xcb::map_window(&conn, screen.root());
32 conn.flush();
33 //}
34 thread::sleep(Duration::from_secs(5));
35 }
36