#include #include #include #include int main() { Display *xkbdpy; int major, minor, error; major = XkbMajorVersion; minor = XkbMinorVersion; int evBase, errBase; if ((xkbdpy = XkbOpenDisplay(NULL, &evBase, &errBase, &major, &minor, &error)) == NULL) { fprintf(stderr, "XkbOpenDisplay() failed\n"); return 1; } int i1; if (!XkbQueryExtension(xkbdpy,&i1,&evBase,&errBase,&major,&minor)) { fprintf(stderr, "XKB not supported by X-server\n"); return 1; } XkbSelectEvents(xkbdpy, XkbUseCoreKbd, XkbMapNotifyMask, XkbMapNotifyMask); while (1) { XEvent ev; XNextEvent(xkbdpy, &ev); printf("recv event of type %d\n", ev.type); } }