コード例 #1
0
ファイル: keymap.c プロジェクト: UnderSampled/qmk_firmware
// GBP £ Macro (sends alt 156 - windows users only)
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    if (record->event.pressed) {
        switch(keycode) {
            case P_MACRO:
                SEND_STRING(SS_DOWN(X_LALT));
                SEND_STRING(SS_TAP(X_KP_1));
                SEND_STRING(SS_TAP(X_KP_5));
                SEND_STRING(SS_TAP(X_KP_6));
                SEND_STRING(SS_UP(X_LALT));
                return false; break;
        }
    }
    return true;
};
コード例 #2
0
ファイル: keymap.c プロジェクト: 0xdec/qmk_firmware
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	if (record->event.pressed) {
		switch(keycode) {
			case GIT_ADD:
				SEND_STRING("git add ."SS_TAP(X_ENTER));
        break;
      case GIT_COMMIT:
        SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT));
        break;
      case GIT_PUSH:
        SEND_STRING("git push"SS_TAP(X_ENTER));
        break;
      case MUTE:
        SEND_STRING(SS_LGUI(SS_LSFT("M")));
        break;
      case DEAFEN:
        SEND_STRING(SS_LGUI(SS_LSFT("D")));
        break;
      return false;
		}
	}
	return true;
};
コード例 #3
0
ファイル: keymap.c プロジェクト: 0xdec/qmk_firmware
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  uint8_t modifiers = get_mods();
  switch(keycode) {
    // these are our macros!
    case F_CAPS:
      /*
        Objective: write a macro that checks the current layers that are
        enabled, and activates the appropriate function layer.
      */
      if ( biton32(layer_state) == _MAC ) {
        if (record->event.pressed) {
          layer_on(_FUNCMAC);
        } else {
          layer_off(_FUNCMAC);
        }
      } else {
        if (record->event.pressed) {
          layer_on(_FUNCWIN);
        } else {
          layer_off(_FUNCWIN);
        }
      };
      return false;
      break;
    case T_L3DED:
      if (record->event.pressed) {
        SEND_STRING("lavak3DED ");
      };
      return false;
      break;
    case G_PUSH:
      if (record->event.pressed) {
        SEND_STRING("git push origin ");
      };
      return false;
      break;
    case G_FTCH:
      if (record->event.pressed) {
        SEND_STRING("git fetch upstream");
      };
      return false;
      break;
    case G_COMM:
      if (record->event.pressed) {
        SEND_STRING("git commit -m \"\"" SS_TAP(X_LEFT));
        layer_off(_MACROS);
      };
      return false;
      break;
    case G_RST:
      if (record->event.pressed) {
        SEND_STRING("git histt -n 10" SS_TAP(X_ENTER) "git reset --soft ");
        layer_off(_MACROS);
      };
      return false;
      break;
    case G_C10R:
      if (record->event.pressed) {
        SEND_STRING("cf/");
        layer_off(_MACROS);
      };
      return false;
      break;
    case G_BRCH:
      if (record->event.pressed) {
        SEND_STRING("$(git branch-name)");
        layer_off(_MACROS);
      };
      return false;
      break;
    case SIGNA:
      if (record->event.pressed) {
        SEND_STRING("\\- @noroadsleft" SS_TAP(X_ENTER));
        layer_off(_MACROS);
      };
      return false;
      break;
    case GO_Q2:
      if (record->event.pressed) {
        //default_layer_set(_QWERTY);
        layer_move(_QWERTY); // TO(_QWERTY);
        layer_on(_QUAKE2);
        //layer_off(_SYSTEM);
      };
      return false;
      break;
    case Q2_ON:
      if (record->event.pressed) {
        SEND_STRING(SS_TAP(X_ENTER));
        layer_on(_DVORAK);
        layer_on(_QUAKE2_DVORAK);
      };
      return false;
      break;
    case Q2_OFF:
      if (record->event.pressed) {
        SEND_STRING(SS_TAP(X_ENTER));
        layer_move(_QWERTY); // TO(_QWERTY);
        layer_on(_QUAKE2);
      };
      return false;
      break;
    case Q2_ESC:
      if (record->event.pressed) {
        SEND_STRING(SS_TAP(X_ESCAPE));
        layer_move(_QWERTY); // TO(_QWERTY);
        layer_on(_QUAKE2);
      };
      return false;
      break;
    case Q2_GRV:
      if (record->event.pressed) {
        SEND_STRING(SS_TAP(X_GRAVE));
        layer_on(_DVORAK);
        layer_on(_QUAKE2_DVORAK);
        layer_on(_QUAKE2_CONSOLE);
      };
      return false;
      break;
    case MC_UNDO:
      if (record->event.pressed) {
        if ( modifiers & MODS_SHIFT_MASK ) {
          SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
        } else {
          SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_Z) SS_UP(X_LGUI) );
        }
      };
      return false;
      break;
    case MC_PSTE:
      if (record->event.pressed) {
        if ( modifiers & MODS_SHIFT_MASK ) {
          SEND_STRING( SS_DOWN(X_LSHIFT) SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_V) SS_UP(X_LALT) SS_UP(X_LGUI) SS_UP(X_LSHIFT) );
        } else {
          SEND_STRING( SS_DOWN(X_LGUI) SS_TAP(X_V) SS_UP(X_LGUI) );
        }
      };
      return false;
      break;
  } // switch()
  return true;
};
コード例 #4
0
ファイル: keymap.c プロジェクト: Talljoe/qmk_firmware
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    // acts like a momentary function layer press
    case FUN_LAY:
      if (record->event.pressed) { 
        layer_on(_FUNC);
        if (CHECK_BIT(keyboard_state, 1)) {
          layer_on(_MOUSE);
        } 
        else {
          layer_off(_MOUSE);
        }
        // turns on function layer status
        SET_BIT(keyboard_state, 0);
      }
      // key released
      else {
        layer_off(_FUNC);
        layer_off(_MOUSE);
        // turns off function layer status
        CLEAR_BIT(keyboard_state, 0);
      }
      break;

    case MOU_TOG:
      if(record->event.pressed) {
        // toggles navigation layer state
        TOGGLE_BIT(keyboard_state, 1);

        // if FN is pressed down while hitting this key, the correct layer will be updated,
        // so that the FN key doesn't need to be pressed down again to start using the functionality
        if (CHECK_BIT(keyboard_state, 0)) {
          if (CHECK_BIT(keyboard_state, 1)) {
            layer_on(_MOUSE);
          }
          else {
            layer_off(_MOUSE);
          } 
        }
      }
      break;

    case WIN_LCK:
      if (record->event.pressed) {
        // toggles windows key lock state
        TOGGLE_BIT(keyboard_state, 2);
      }
      break;

    // uses seperate WIN_KEY so that WIN_LCK does not affect Mac Layer's KC_LGUI
    case WIN_KEY:
      // checks if windows key lock is off to allow key to be pressed
      if (!CHECK_BIT(keyboard_state, 2)) {
        if (record->event.pressed) {
          SEND_STRING(SS_DOWN(X_LGUI));
          return false;
        }
        // key released
        else { 
          SEND_STRING(SS_UP(X_LGUI));
          return false;
        }
      }
      break;
  }
  return true;
};
コード例 #5
0
ファイル: keymap.c プロジェクト: 0xdec/qmk_firmware
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
  // These would trigger when you hit a key mapped as M(0)
  if (record->event.pressed) {
    switch(keycode) {
      case 0: // Some custom string here
        SEND_STRING("");
        return false;

      case 1: // Word Select
        SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
        return false;

      case 2: // Word Select Mac
        SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
        return false;

      case 3: // Line Select
        SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
        return false;

      case 4: // Line Select Mac
        SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
        return false;

      case 5: // Line Delete
        SEND_STRING(SS_TAP(X_HOME) SS_DOWN(X_LSHIFT) SS_TAP(X_END) SS_UP(X_LSHIFT));
        SEND_STRING(SS_TAP(X_BSPACE));
        return false;

      case 6: // Line Delete Mac
        SEND_STRING(SS_LCTRL("a") SS_DOWN(X_LSHIFT) SS_LCTRL("e") SS_UP(X_LSHIFT));
        SEND_STRING(SS_TAP(X_BSPACE));
        return false;

      case 7: // Duplicate Selection
        SEND_STRING(SS_LCTRL("c") SS_TAP(X_RIGHT) SS_LCTRL("v"));
        return false;

      case 8: // Duplicate Selection Mac
        SEND_STRING(SS_LGUI("c") SS_TAP(X_RIGHT) SS_LGUI("v"));
        return false;

      case 9: // Join line
        SEND_STRING(SS_TAP(X_END) SS_TAP(X_DELETE));
        return false;

      case 10: // Join line Mac
        SEND_STRING(SS_LCTRL("e") SS_TAP(X_DELETE));
        return false;

      case 98: // Print mode
        SEND_STRING("PC");
        return false;

      case 99: // Print mode
        SEND_STRING("OSX");
        return false;
    }
  }
  return MACRO_NONE;
};