summaryrefslogtreecommitdiffstats
path: root/xrandr-notify.c
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-07-08 02:07:33 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2012-07-08 02:10:13 +0200
commitfbd6f18c2d703857d372fa2b23478775f0cf1efa (patch)
treeaabaa952ffd33578d4b91291f33faeb7947889ed /xrandr-notify.c
downloadxrandr-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.c46
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;
+}
+