ignw.c (904B)
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 static xcb_connection_t *conn; 13 14 static void usage(char *); 15 static void set_override(xcb_window_t, int); 16 17 static void 18 usage(char *name) 19 { 20 fprintf(stderr, "usage: %s [-sr] <wid> [wid..]\n", name); 21 exit(1); 22 } 23 24 static void 25 set_override(xcb_window_t w, int or) 26 { 27 uint32_t mask = XCB_CW_OVERRIDE_REDIRECT; 28 uint32_t val[] = { or }; 29 30 xcb_change_window_attributes(conn, w, mask, val); 31 } 32 33 int 34 main(int argc, char **argv) 35 { 36 int setflag = 0; 37 char *argv0; 38 39 ARGBEGIN { 40 case 's': setflag = 1; break; 41 case 'r': setflag = 0; break; 42 default: usage(argv0); 43 } ARGEND; 44 45 init_xcb(&conn); 46 47 while (*argv) 48 set_override(strtoul(*argv++, NULL, 16), setflag); 49 50 xcb_aux_sync(conn); 51 52 kill_xcb(&conn); 53 54 return 0; 55 }