Пример #1
0
// 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
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;
};
Пример #3
0
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef CFQ_USE_DYNAMIC_MACRO
  if (!process_record_dynamic_macro(keycode, record)) {
    return false;
  }
#endif
  switch (keycode) {
    /* dynamically generate these. */
    case RGB_SLD:
      if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
        rgblight_mode(1);
#endif
      }
      return false;
      break;
    case M_BRACKET_IN_CBR:  /* {} */
      if (record->event.pressed) {
        SEND_STRING("{}" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_IN_PRN:  /* () */
      if (record->event.pressed) {
        SEND_STRING("()" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_IN_BRC:  /* [] */
      if (record->event.pressed) {
        SEND_STRING("[]" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_IN_ANG:  /* <> */
      if (record->event.pressed) {
        SEND_STRING("<>" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_OUT_CBR:  /* }{ */
      if (record->event.pressed) {
        SEND_STRING("}{" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_OUT_PRN:  /* )( */
      if (record->event.pressed) {
        SEND_STRING(")(" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_OUT_BRC:  /* ][ */
      if (record->event.pressed) {
        SEND_STRING("][" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_BRACKET_OUT_ANG:  /* >< */
      if (record->event.pressed) {
        SEND_STRING("><" SS_TAP(X_LEFT));
        return false;
      }
      break;
    case M_ARROW_LMINUS:  /* <- */
      if (record->event.pressed) {
        SEND_STRING("<-");
        return false;
      }
      break;
    case M_ARROW_RMINUS:  /* -> */
      if (record->event.pressed) {
        SEND_STRING("->");
        return false;
      }
      break;
    case M_ARROW_LEQL:  /* <= */
      if (record->event.pressed) {
        SEND_STRING("<=");
        return false;
      }
      break;
    case M_ARROW_REQL:  /* => */
      if (record->event.pressed) {
        SEND_STRING("=>");
        return false;
      }
      break;
#ifdef CFQ_USE_SHIFT_QUOTES
    case KC_LSHIFT:  /* '' */
      if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_RSFT)))) {
        WITHOUT_MODS({
            SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSHIFT) SS_DOWN(X_LSHIFT));
          });
        return false;
      }
Пример #4
0
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
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;
};