#include #include #include #include int x11_extras_default_error_handler(Display *d, XErrorEvent *ev) { char buffer[1000]; XGetErrorText(d,ev->error_code,buffer,1000); printf("Error: %s\n", buffer); return 0; } int x11_extras_xerror(Display *dpy, XErrorEvent *ee) { if(ee->error_code == BadWindow || (ee->request_code == X_SetInputFocus && ee->error_code == BadMatch) || (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch) || (ee->request_code == X_GrabKey && ee->error_code == BadAccess)) return 0; fprintf(stderr, "xmonad: fatal error: request code=%d, error code=%d\n", ee->request_code, ee->error_code); return x11_extras_default_error_handler(dpy,ee); } void x11_extras_set_error_handler() { XSetErrorHandler(x11_extras_xerror); }