#include #include #include #include #include int main(int argc, char **argv) { Display *dpy; XineramaScreenInfo *xsi; int i, nscreens; dpy = XOpenDisplay(NULL); if (dpy == NULL) { fputs("ERROR: Could not open display!\n", stderr); return EXIT_FAILURE; } /* Is xinerama extension available? */ if (!XineramaIsActive(dpy)) { fputs("ERROR: Xinerama extension unavailable on current screen!\n", stderr); return EXIT_FAILURE; } else { xsi = XineramaQueryScreens(dpy, &nscreens); if (argc <= 1) { for (i = 0; i < nscreens; i++) { printf("screen %d: %dx%d\n", i, xsi[i].width, xsi[i].height); } } else { i = atoi(argv[1]); if (i <= 0 || i > nscreens) { fprintf(stderr, "ERROR: Screen %d not available!\n", i); return EXIT_FAILURE; } else printf("%dx%d\n", xsi[i-1].width, xsi[i-1].height); } } return EXIT_SUCCESS; }