static void disable_caps_lock_default_behavior () { Display *display; KeyCode keycode; XModifierKeymap *map; char *error_msg; display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); keycode = XKeysymToKeycode (display, XK_Caps_Lock); map = XGetModifierMapping (display); map = XDeleteModifiermapEntry (map, keycode, LockMapIndex); error_msg = NULL; switch (XSetModifierMapping (display, map)) { case MappingSuccess: break; case MappingBusy: error_msg = "since it's busy."; break; default: error_msg = "for some unknown reason."; break; } if (error_msg != NULL) { g_printerr ("SuperSwitcher could not disable the Caps Lock key, %s\n", error_msg); } XFreeModifiermap (map); }
int RemoveModifier(XModifierKeymap **mapp, KeyCode keycode, int modifier) { if (keycode) { *mapp = XDeleteModifiermapEntry (*mapp, keycode, modifier); return (0); } else { return (-1); } /*NOTREACHED*/ }