diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-07-08 02:07:33 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2012-07-08 02:10:13 +0200 |
commit | fbd6f18c2d703857d372fa2b23478775f0cf1efa (patch) | |
tree | aabaa952ffd33578d4b91291f33faeb7947889ed /xrandr-notify.c | |
download | xrandr-notify-fbd6f18c2d703857d372fa2b23478775f0cf1efa.tar.gz xrandr-notify-fbd6f18c2d703857d372fa2b23478775f0cf1efa.tar.xz xrandr-notify-fbd6f18c2d703857d372fa2b23478775f0cf1efa.zip |
Initial commit
Diffstat (limited to 'xrandr-notify.c')
-rw-r--r-- | xrandr-notify.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/xrandr-notify.c b/xrandr-notify.c new file mode 100644 index 0000000..3c1ad52 --- /dev/null +++ b/xrandr-notify.c @@ -0,0 +1,46 @@ +#include <stdlib.h> +#include <stdio.h> +#include <stdbool.h> + +#include <X11/Xlib.h> +#include <X11/extensions/Xrandr.h> + +int main(int argc, char **argv) +{ + Display *dpy; + Window root; + XEvent event; + int dummy, screen, randr_event_base; + bool has_randr; + + dpy = XOpenDisplay(NULL); + if (dpy == NULL) { + fputs("ERROR: Could not open display!\n", stderr); + return EXIT_FAILURE; + } + + /* Is the randr extension available? */ + has_randr = false; + has_randr = XRRQueryExtension(dpy, &randr_event_base, &dummy); + + if (has_randr) { + /* Get root window */ + screen = DefaultScreen(dpy) ; + root = RootWindow(dpy, screen) ; + + /* Notify on configuration change */ + XRRSelectInput(dpy, root, RRScreenChangeNotifyMask); + } + + while (true) { + XNextEvent(dpy, &event); + + if (event.type == randr_event_base + RRScreenChangeNotify) { + return EXIT_SUCCESS; + } + } + + /* should never happen */ + return EXIT_FAILURE; +} + |