#include #include #include main() { //open a display Display *d = XOpenDisplay(0); if(d){ //create a window Window w = XCreateWindow(d, DefaultRootWindow(d), 0, 0, 200, 100, 0, CopyFromParent, CopyFromParent, CopyFromParent, 0, 0); char * key_string = "XF86AudioPlay"; KeySym keysym = XStringToKeysym(key_string); KeyCode key = XKeysymToKeycode(d, XStringToKeysym(key_string)); fprintf(stdout, "play keycode: %d", key); XGrabKey(d, key, AnyModifier, DefaultRootWindow(d), False, GrabModeAsync, GrabModeAsync); //show the window XMapWindow(d,w); XFlush(d); XEvent report; XSelectInput(d, w, KeyPressMask); while(1){ XNextEvent(d, &report); switch (report.type) { case KeyPress: fprintf(stdout, "key event %d \n", report.xkey.keycode); break; case Expose: fprintf(stdout, "expose event\n"); break; } } //sleep(10); } return 0; }