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