/* David Leonard, 2000. Public domain. */ #include #include #include #include /* * Simple program to change the icon state of a window */ void usage() { fprintf(stderr, "usage: iconify [-u] -i id\n"); } int main(argc, argv) int argc; char *argv[]; { Display *display; Window w = 0; int screen_number; Status status; int uflag = 0; extern char *optarg; int ch; while ((ch = getopt(argc, argv, "ui:")) != -1) switch (ch) { case 'u': uflag = 1; break; case 'i': w = strtoul(optarg, NULL, 0); break; default: usage(); exit(1); } if (w == 0) usage(); display = XOpenDisplay(NULL); if (display == NULL) { fprintf(stderr, "cannot open display\n"); exit(1); } screen_number = DefaultScreen(display); if (!uflag) /* Iconify */ status = XIconifyWindow(display, w, screen_number); else /* Uniconify */ status = XMapWindow(display, w); XCloseDisplay(display); if (status != 1) { fprintf(stderr, "could not %siconify window 0x%lx\n", uflag ? "un" : "", w); exit(1); } exit(0); }