tmapw.c - wmutils - X windows manipulation utilities
(HTM) git clone git://z3bra.org/wmutils
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tmapw.c (1106B)
---
1 /* See LICENSE file for copyright and license details. */
2
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <err.h>
6 #include <xcb/xcb.h>
7 #include <xcb/xcb_aux.h>
8
9 #include "arg.h"
10 #include "util.h"
11
12 enum {
13 MAP = 1 << 0,
14 UNMAP = 1 << 1,
15 TOGGLE = 1 << 2
16 };
17
18 static xcb_connection_t *conn;
19
20 static void usage(char *);
21
22 static void
23 usage(char *name)
24 {
25 fprintf(stderr, "usage: %s [-h] [-mut <wid> [wid..]]\n", name);
26 exit(1);
27 }
28
29 int
30 main(int argc, char **argv)
31 {
32 int mapflag = 0;
33 xcb_window_t w = 0;
34 char *argv0;
35
36 ARGBEGIN {
37 case 'm': mapflag = MAP; break;
38 case 'u': mapflag = UNMAP; break;
39 case 't': mapflag = TOGGLE; break;
40 default : usage(argv0);
41 } ARGEND;
42
43 if (argc < 1 || mapflag == 0)
44 usage(argv0);
45
46 init_xcb(&conn);
47
48 while (*argv) {
49 w = strtoul(*argv++, NULL, 16);
50
51 switch (mapflag) {
52 case MAP:
53 xcb_map_window(conn, w);
54 break;
55 case UNMAP:
56 xcb_unmap_window(conn, w);
57 break;
58 case TOGGLE:
59 if (mapped(conn, w))
60 xcb_unmap_window(conn, w);
61 else
62 xcb_map_window(conn, w);
63 break;
64 }
65 }
66 xcb_aux_sync(conn);
67
68 kill_xcb(&conn);
69
70 return 0;
71 }