예제 #1
0
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);
}
예제 #2
0
int 
RemoveModifier(XModifierKeymap **mapp, KeyCode keycode, int modifier)
{
    if (keycode) {
	*mapp = XDeleteModifiermapEntry (*mapp, keycode, modifier);
	return (0);
    } else {
	return (-1);
    }
    /*NOTREACHED*/
}