From 994cb264478c893bc175a365fd19a1cce04c1a46 Mon Sep 17 00:00:00 2001 From: Kristian Lyngstol Date: Wed, 24 Sep 2008 23:24:03 +0200 Subject: Simple xinerama-gett stuff for those too lazy to find if it exist already --- xineramainfo/2dollarbuildscript | 4 +++ xineramainfo/xgetxineramainfo.c | 67 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100755 xineramainfo/2dollarbuildscript create mode 100644 xineramainfo/xgetxineramainfo.c diff --git a/xineramainfo/2dollarbuildscript b/xineramainfo/2dollarbuildscript new file mode 100755 index 0000000..003a11e --- /dev/null +++ b/xineramainfo/2dollarbuildscript @@ -0,0 +1,4 @@ +#!/bin/sh + +echo Building it to "xgetxineramainfo" +gcc -Wall -g -lX11 -lXinerama xgetxineramainfo.c -o xgetxineramainfo diff --git a/xineramainfo/xgetxineramainfo.c b/xineramainfo/xgetxineramainfo.c new file mode 100644 index 0000000..c22a2b7 --- /dev/null +++ b/xineramainfo/xgetxineramainfo.c @@ -0,0 +1,67 @@ +/* Copyright (C) 2008, Kristian Lyngstol + * + * GNU GPLv2 goes here. + * + * Tiny utility app to fetch xinerama info. + * + * Coding style per compiz... Please don't hurt me. + */ + +#include +#include +#include +#include +int xineramaEvent, xineramaError; +int majorVersion, minorVersion; +Display *dpy; +XineramaScreenInfo *screenInfo; +int nScreenInfo; +void bail(char *str) +{ + perror ("The flux capacitor is broken! Bailing!"); + perror (str); + exit (1); +} +void verbose (char *str) +{ + printf (str); +} +void printVersion () +{ + Status ret; + ret = XineramaQueryVersion (dpy, &majorVersion, &minorVersion); + printf ("Xinerama version: %d.%d\n", majorVersion,minorVersion); + if (!ret) + bail ("Incompatible xinerama version. XineramaQueryVersion failed!"); + +} + +int main (int argc, char **argv) +{ + Bool ret; + dpy = XOpenDisplay (0); + if (!dpy) + bail ("Couldn't open display. OH WOE IS ME."); + + ret = XineramaQueryExtension (dpy, &xineramaEvent, &xineramaError); + if (!ret) + bail ("No xinerama extension"); + + printVersion (); + verbose ("Attempting to get screen info.\n"); + screenInfo = XineramaQueryScreens (dpy, &nScreenInfo); + int i; + if (nScreenInfo == 0) + verbose ("Only 0 heads? HELP THIS DOES NOT MAKE SENSE. I think. right.\n"); + printf ("Screen\tx_org\ty_org\twidth\theight\n"); + for (i = 0; i < nScreenInfo; i++) + printf ("%d\t%d\t%d\t%d\t%d\n", + screenInfo[i].screen_number, + screenInfo[i].x_org, + screenInfo[i].y_org, + screenInfo[i].width, + screenInfo[i].height); + verbose ("Gee, that's all. Thanks for tuning in.\n"); + return 0; + +} -- cgit v1.1