/* gcc -lX11 -lXinerama -o xinerama_dump xinerama_dump.c */
/* http://wiki.cyberleo.net/wiki/CyberLeo/COPYRIGHT?version=3 */

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/extensions/Xinerama.h>
#include <stdio.h>

int main(int argc, char ** argv) {
  Display *display;
  int xinerama_active;

  if (!(display = XOpenDisplay(NULL))) {
    fprintf(stderr, "XOpenDispay failed\n");
    return(1);
  }

  if (xinerama_active = XineramaIsActive(display)) {
    int xinerama_iter, xinerama_count;
    XineramaScreenInfo * xinerama_info = XineramaQueryScreens(display, & xinerama_count);
    for (xinerama_iter = 0; xinerama_iter < xinerama_count; xinerama_iter++) {
      XineramaScreenInfo this = xinerama_info[xinerama_iter];
      printf("index=%u screen=%u width=%hu height=%hu x_org=%hu y_org=%hu\n",
        xinerama_iter, this.screen_number, this.width, this.height,
        this.x_org, this.y_org
      );
    }
    XFree(xinerama_info);
  }

  XCloseDisplay(display);
  return(xinerama_active);
}
all: xinerama_dump

xinerama_dump: xinerama_dump.c
        gcc -lX11 -lXinerama -o xinerama_dump xinerama_dump.c

clean:
        rm -f xinerama_dump

.PHONY: clean