~ruther/qmk_firmware

f14629ed1cd7c7ec9089604d64f29a99981558e8 — fauxpark 6 years ago 2a23145
Remove/migrate action_get_macro()s from default keymaps (#5625)

* Remove/migrate action_get_macro()s from default keymaps

* Leave these breaks alone
119 files changed, 286 insertions(+), 1860 deletions(-)

M keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c
M keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c
M keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c
M keyboards/al1/keymaps/default/keymap.c
M keyboards/al1/keymaps/splitbs/keymap.c
M keyboards/alf/dc60/keymaps/default/keymap.c
M keyboards/alf/x2/keymaps/default/keymap.c
M keyboards/alu84/keymaps/default/keymap.c
M keyboards/amj40/keymaps/default/keymap.c
M keyboards/amj60/keymaps/iso_split_rshift/keymap.c
M keyboards/amj96/keymaps/default/keymap.c
M keyboards/atomic/keymaps/default/keymap.c
M keyboards/atreus/keymaps/default/keymap.c
M keyboards/atreus62/keymaps/default/keymap.c
M keyboards/bantam44/keymaps/default/keymap.c
M keyboards/bigseries/1key/keymaps/ctrl-alt-del/keymap.c
M keyboards/bigseries/1key/keymaps/default/keymap.c
M keyboards/bigseries/1key/keymaps/lock/keymap.c
M keyboards/bigseries/1key/keymaps/tester/keymap.c
M keyboards/bigseries/2key/keymaps/default/keymap.c
M keyboards/bigseries/2key/keymaps/lock/keymap.c
M keyboards/bigseries/2key/keymaps/tester/keymap.c
M keyboards/bigseries/3key/keymaps/ctrl-alt-del/keymap.c
M keyboards/bigseries/3key/keymaps/default/keymap.c
M keyboards/bigseries/3key/keymaps/tester/keymap.c
M keyboards/bigseries/4key/keymaps/default/keymap.c
M keyboards/bigseries/4key/keymaps/tester/keymap.c
M keyboards/bpiphany/kitten_paw/keymaps/default/keymap.c
M keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c
M keyboards/bpiphany/unloved_bastard/keymaps/default_ansi/keymap.c
M keyboards/catch22/keymaps/default/keymap.c
M keyboards/chimera_ergo/keymaps/default/keymap.c
M keyboards/ckeys/nakey/keymaps/default/keymap.c
M keyboards/cu24/keymaps/default/keymap.c
M keyboards/cu75/keymaps/default/keymap.c
M keyboards/cu75/keymaps/iso/keymap.c
M keyboards/do60/keymaps/default/keymap.c
M keyboards/do60/keymaps/test/keymap.c
M keyboards/donutcables/scrabblepad/keymaps/default/keymap.c
M keyboards/duck/eagle_viper/v2/keymaps/default/keymap.c
M keyboards/duck/jetfire/keymaps/default/keymap.c
M keyboards/duck/lightsaver/keymaps/default/keymap.c
M keyboards/ergodone/keymaps/default/keymap.c
M keyboards/ergodox_ez/keymaps/default_osx/keymap.c
M keyboards/ergodox_ez/keymaps/testing/keymap.c
M keyboards/ergodox_infinity/keymaps/default/keymap.c
M keyboards/gray_studio/cod67/keymaps/default/keymap.c
M keyboards/hadron/ver2/keymaps/default/keymap.c
M keyboards/hadron/ver3/keymaps/default/keymap.c
M keyboards/handwired/412_64/keymaps/default/keymap.c
M keyboards/handwired/dactyl/keymaps/default/keymap.c
M keyboards/handwired/frenchdev/keymaps/default/keymap.c
M keyboards/handwired/gamenum/keymaps/default/keymap.c
M keyboards/handwired/kbod/keymaps/default/keymap.c
M keyboards/handwired/traveller/keymaps/default/keymap.c
M keyboards/helix/rev1/keymaps/OLED_sample/keymap.c
M keyboards/hhkb/keymaps/default/keymap.c
M keyboards/hid_liber/keymaps/default/keymap.c
M keyboards/hineybush/h87a/keymaps/default/keymap.c
M keyboards/katana60/keymaps/default/keymap.c
M keyboards/kbdfans/kbd66/keymaps/ansi/keymap.c
M keyboards/kbdfans/kbd66/keymaps/default/keymap.c
M keyboards/kbdfans/kbd66/keymaps/iso/keymap.c
M keyboards/kbdfans/kbd8x/keymaps/default/keymap.c
M keyboards/kbdfans/kbd8x/keymaps/default_backlighting/keymap.c
M keyboards/kc60/keymaps/default/keymap.c
M keyboards/kinesis/keymaps/default/keymap.c
M keyboards/kinesis/keymaps/default_pretty/keymap.c
M keyboards/kira75/keymaps/default/keymap.c
M keyboards/knops/mini/keymaps/default-gsm-newbs/keymap.c
M keyboards/knops/mini/keymaps/default/keymap.c
M keyboards/kona_classic/keymaps/ansi/keymap.c
M keyboards/kona_classic/keymaps/ansi_arrows/keymap.c
M keyboards/kona_classic/keymaps/ansi_arrows_lcap/keymap.c
M keyboards/kona_classic/keymaps/ansi_split/keymap.c
M keyboards/kona_classic/keymaps/ansi_split_arrows/keymap.c
M keyboards/kona_classic/keymaps/default/keymap.c
M keyboards/kona_classic/keymaps/iso/keymap.c
M keyboards/kona_classic/keymaps/iso_arrows/keymap.c
M keyboards/kona_classic/keymaps/iso_split/keymap.c
M keyboards/kona_classic/keymaps/iso_split_arrows/keymap.c
M keyboards/lets_split/keymaps/OLED_sample/keymap.c
M keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c
M keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c
M keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
M keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
M keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c
M keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c
M keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
M keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
M keyboards/lfkeyboards/smk65/keymaps/default/keymap.c
M keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
M keyboards/mechmini/v2/keymaps/default/keymap.c
M keyboards/meira/keymaps/default/keymap.c
M keyboards/melody96/keymaps/default/keymap.c
M keyboards/mint60/keymaps/default/keymap.c
M keyboards/mitosis/keymaps/default/keymap.c
M keyboards/miuni32/keymaps/default/keymap.c
M keyboards/mxss/keymaps/default/keymap.c
M keyboards/novelpad/keymaps/default/keymap.c
M keyboards/org60/keymaps/default/keymap.c
M keyboards/paladin64/keymaps/default/keymap.c
M keyboards/phantom/keymaps/default/keymap.c
M keyboards/planck/keymaps/basic/keymap.c
M keyboards/primekb/prime_r/keymaps/default/keymap.c
M keyboards/satan/keymaps/isoHHKB/keymap.c
M keyboards/satan/keymaps/iso_split_rshift/keymap.c
M keyboards/scarletbandana/keymaps/default/keymap.c
M keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c
M keyboards/sixkeyboard/keymaps/default/keymap.c
M keyboards/speedo/keymaps/default/keymap.c
M keyboards/thevankeyboards/minivan/keymaps/default/keymap.c
M keyboards/thevankeyboards/roadkit/keymaps/default/keymap.c
M keyboards/v60_type_r/keymaps/default/keymap.c
M keyboards/vision_division/keymaps/default/keymap.c
M keyboards/xd60/keymaps/default/keymap.c
M keyboards/xd60/keymaps/iso/keymap.c
M keyboards/xd60/keymaps/split_bksp_arrows/keymap.c
M layouts/community/ergodox/reset_eeprom/keymap.c
M keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c => keyboards/1upkeyboards/1up60rgb/keymaps/default/keymap.c +0 -9
@@ 18,15 18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	;

	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c => keyboards/1upkeyboards/1up60rgb/keymaps/iso/keymap.c +0 -9
@@ 18,15 18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	;

	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c => keyboards/1upkeyboards/1up60rgb/keymaps/tsangan/keymap.c +0 -9
@@ 18,15 18,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	;

	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/al1/keymaps/default/keymap.c => keyboards/al1/keymaps/default/keymap.c +0 -17
@@ 31,23 31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_LCTL, KC_LGUI,  KC_LALT, KC_SPACE,   KC_TRNS,  KC_RGUI,  KC_RCTRL,                                         BL_TOGG,  BL_DEC,  BL_INC, KC_P0,    KC_PDOT         ),
};


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/al1/keymaps/splitbs/keymap.c => keyboards/al1/keymaps/splitbs/keymap.c +0 -16
@@ 15,22 15,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_LCTL, KC_LGUI,  KC_LALT, KC_SPACE,   KC_TRNS,  KC_RGUI,  KC_RCTRL,                                         BL_TOGG,  BL_DEC,  BL_INC, KC_P0,    KC_PDOT         ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/alf/dc60/keymaps/default/keymap.c => keyboards/alf/dc60/keymaps/default/keymap.c +0 -16
@@ 33,22 33,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/alf/x2/keymaps/default/keymap.c => keyboards/alf/x2/keymaps/default/keymap.c +0 -4
@@ 19,10 19,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/alu84/keymaps/default/keymap.c => keyboards/alu84/keymaps/default/keymap.c +0 -9
@@ 55,15 55,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {


	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/amj40/keymaps/default/keymap.c => keyboards/amj40/keymaps/default/keymap.c +0 -10
@@ 98,16 98,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
   
    return MACRO_NONE;
};




bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
  switch (keycode) {

M keyboards/amj60/keymaps/iso_split_rshift/keymap.c => keyboards/amj60/keymaps/iso_split_rshift/keymap.c +2 -20
@@ 68,7 68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_PSCR, KC_F1,   KC_F2,   KC_F3,     KC_F4,     KC_F5,     KC_F6,    KC_F7,     KC_F8,     KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL,  \
        _______, KC_PAUS, KC_UP,   GER_BRC_L, GER_BRC_R, _______,   _______,  GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, _______, \
        _______, KC_LEFT, KC_DOWN, KC_RIGHT,  _______,   _______,   KC_LEFT,  KC_DOWN,   KC_UP,     KC_RGHT, _______, _______, _______, KC_MPLY, \
        _______, _______, _______, _______,   GER_ANG_L, GER_ANG_R, KC_SPACE, M(0),      _______,   _______, _______, _______, KC_VOLU, _______, \
        _______, _______, _______, _______,   GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______, _______, _______, _______, KC_VOLU, _______, \
        _______, _______, _______,                                  _______,                                 _______, KC_MPRV, KC_VOLD, KC_MNXT),

    /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)


@@ 88,7 88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_WAKE, _______, _______, _______, _______, _______, _______, _______,    _______,  _______, _______, _______, _______, KC_INS,  \
        _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, _______, \
        _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN,    KC_PGUP,  KC_END,  _______, _______, _______, KC_ENT,  \
        _______, _______, _______, _______, _______, _______, _______, M(1),       _______,  _______, _______, _______, KC_PGUP, _______, \
        _______, _______, _______, _______, _______, _______, _______, A(KC_F2),   _______,  _______, _______, _______, KC_PGUP, _______, \
        _______, _______, _______,                            _______,                                _______, KC_HOME, KC_PGDN, KC_END),

    /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)


@@ 111,21 111,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_0, _______, KC_SLSH, KC_UP,   _______, \
        _______, _______, _______,                            _______,                         _______, KC_LEFT, KC_DOWN, KC_RGHT),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
        case 0:
            return (record->event.pressed ? 
                    MACRO( D(RALT), T(SPC), U(RALT), END )
                    :MACRO( END ));
            break;
        case 1:
            return (record->event.pressed ? 
                    MACRO( D(LALT), T(F2), U(LALT), END )
                    :MACRO( END ));
            break;
    }
    return MACRO_NONE;
};

M keyboards/amj96/keymaps/default/keymap.c => keyboards/amj96/keymaps/default/keymap.c +0 -16
@@ 36,22 36,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/atomic/keymaps/default/keymap.c => keyboards/atomic/keymaps/default/keymap.c +3 -20
@@ 95,7 95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
    KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_ENT,  KC_PGUP,
    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN,
    M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
    BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
  ),

  /* COLEMAK - MIT ENHANCED / GRID COMPATIBLE


@@ 117,7 117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
    KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT, KC_ENT,  KC_ENT,  KC_PGUP,
    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN,
    M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
    BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
  ),

  /* DVORAK - MIT ENHANCED / GRID COMPATIBLE


@@ 139,7 139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL ,
    KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH, KC_ENT,  KC_ENT,  KC_PGUP,
    KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN,
    M(0),    KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
    BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC,  KC_SPC,  MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
  ),

  /* LOWERED


@@ 208,20 208,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
  ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) {
        register_code(KC_RSFT);
        #ifdef BACKLIGHT_ENABLE
          backlight_step();
        #endif
      } else {
        unregister_code(KC_RSFT);
      }
    break;
  }
  return MACRO_NONE;
};

M keyboards/atreus/keymaps/default/keymap.c => keyboards/atreus/keymaps/default/keymap.c +0 -14
@@ 42,17 42,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_NO,   KC_VOLU, KC_NO,   KC_NO,   RESET,                     KC_NO,   KC_F1,   KC_F2,   KC_F3,   KC_F12  ,
    KC_NO,   KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC,  TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) {
        register_code(KC_RSFT);
      } else {
        unregister_code(KC_RSFT);
      }
    break;
  }
  return MACRO_NONE;
};

M keyboards/atreus62/keymaps/default/keymap.c => keyboards/atreus62/keymaps/default/keymap.c +0 -15
@@ 46,18 46,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
  */
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  // MACRODOWN only works in this function
  switch (id) {
  case 0:
    if (record->event.pressed) {
      register_code(KC_RSFT);
    }
    else {
      unregister_code(KC_RSFT);
    }
    break;
  }
  return MACRO_NONE;
};

M keyboards/bantam44/keymaps/default/keymap.c => keyboards/bantam44/keymaps/default/keymap.c +0 -5
@@ 23,8 23,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_LCTL, KC_LGUI, KC_LALT,           KC_TRNS,          KC_SPC,           KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT  \
    )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function
{
    return MACRO_NONE;
};

M keyboards/bigseries/1key/keymaps/ctrl-alt-del/keymap.c => keyboards/bigseries/1key/keymaps/ctrl-alt-del/keymap.c +0 -4
@@ 29,10 29,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/1key/keymaps/default/keymap.c => keyboards/bigseries/1key/keymaps/default/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/1key/keymaps/lock/keymap.c => keyboards/bigseries/1key/keymaps/lock/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/1key/keymaps/tester/keymap.c => keyboards/bigseries/1key/keymaps/tester/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/2key/keymaps/default/keymap.c => keyboards/bigseries/2key/keymaps/default/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
    // Disable to set a known state

M keyboards/bigseries/2key/keymaps/lock/keymap.c => keyboards/bigseries/2key/keymaps/lock/keymap.c +0 -4
@@ 29,10 29,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/2key/keymaps/tester/keymap.c => keyboards/bigseries/2key/keymaps/tester/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/3key/keymaps/ctrl-alt-del/keymap.c => keyboards/bigseries/3key/keymaps/ctrl-alt-del/keymap.c +0 -4
@@ 29,10 29,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/3key/keymaps/default/keymap.c => keyboards/bigseries/3key/keymaps/default/keymap.c +0 -4
@@ 27,10 27,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
    dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/3key/keymaps/tester/keymap.c => keyboards/bigseries/3key/keymaps/tester/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/4key/keymaps/default/keymap.c => keyboards/bigseries/4key/keymaps/default/keymap.c +0 -4
@@ 29,10 29,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bigseries/4key/keymaps/tester/keymap.c => keyboards/bigseries/4key/keymaps/tester/keymap.c +0 -4
@@ 28,10 28,6 @@ LAYOUT(

bool initialized = 0;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {
  if (!initialized){
      dprintf("Initializing in matrix_scan_user");

M keyboards/bpiphany/kitten_paw/keymaps/default/keymap.c => keyboards/bpiphany/kitten_paw/keymaps/default/keymap.c +0 -16
@@ 14,22 14,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      KC_LCTL,KC_LGUI,KC_LALT,                 KC_SPC,                                KC_RALT,KC_RGUI, KC_APP,KC_RCTL,  KC_LEFT,KC_DOWN,KC_RGHT,    KC_P0,KC_PDOT)
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c => keyboards/bpiphany/unloved_bastard/keymaps/default/keymap.c +0 -16
@@ 25,22 25,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                 KC_LCTL,KC_LGUI,KC_LALT,                KC_SPC,                                 KC_RALT,KC_RGUI, KC_APP,  KC_RCTL,   KC_LEFT, KC_DOWN, KC_RGHT  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/bpiphany/unloved_bastard/keymaps/default_ansi/keymap.c => keyboards/bpiphany/unloved_bastard/keymaps/default_ansi/keymap.c +0 -16
@@ 25,22 25,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                 KC_LCTL,KC_LGUI,KC_LALT,                KC_SPC,                                 KC_RALT,KC_RGUI, KC_APP,  KC_RCTL,   KC_LEFT, KC_DOWN, KC_RGHT  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/catch22/keymaps/default/keymap.c => keyboards/catch22/keymaps/default/keymap.c +0 -5
@@ 19,8 19,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
           _______, _______, _______, _______  \
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function
{
    return MACRO_NONE;
};

M keyboards/chimera_ergo/keymaps/default/keymap.c => keyboards/chimera_ergo/keymaps/default/keymap.c +31 -30
@@ 17,6 17,14 @@ enum chimera_ergo_layers
  _NAV
};

enum custom_keycodes {
  SC_INCL = SAFE_RANGE,
  SC_PULL,
  SC_PUSH,
  SC_SCAP,
  SC_SCOF
};

#define SC_NMPD TG(_NUMPAD)
#define SC_SYMB TG(_SYMBOLS)
#define SC_SPFN LT(_NAV,KC_EQL)


@@ 26,11 34,6 @@ enum chimera_ergo_layers
#define SC_SPRT MT(MOD_LALT, KC_1)
#define SC_GBRC MT(MOD_RGUI, KC_RBRC)
#define SC_MESC LT(_MACROS, KC_ESC)
#define SC_INCL M(0)
#define SC_PULL M(1)
#define SC_PUSH M(2)
#define SC_SCAP M(3)
#define SC_SCOF M(4)
#define SC_CAD LALT(LCTL(KC_DEL))

#define LONGPRESS_DELAY 150


@@ 88,47 91,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  switch(id) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    /* include some kind of library or header */
    case 0:
    case SC_INCL:
      if (record->event.pressed) {
        SEND_STRING("#include <>");
        return MACRO( T(LEFT), END);
        tap_code(KC_LEFT);
      }
      break;
    case 1:
      return false;
    case SC_PULL:
      if (record->event.pressed) {
        SEND_STRING("git pull");
        return MACRO( T(ENT), END );
        tap_code(KC_ENT);
      }
      break;
    case 2:
      if (record->event.pressed){
      return false;
    case SC_PUSH:
      if (record->event.pressed) {
        SEND_STRING("git push");
        return MACRO( T(ENT), END );
        tap_code(KC_ENT);
      }
      break;
    case 3:
      if (record->event.pressed){
      return false;
    case SC_SCAP:
      if (record->event.pressed) {
        layer_on(_CAPS);
        register_code(KC_CAPSLOCK);
        unregister_code(KC_CAPSLOCK);
        tap_code(KC_CAPS);
      }
      break;
    case 4:
      if (record->event.pressed){
      return false;
    case SC_SCOF:
      if (record->event.pressed) {
        layer_off(_CAPS);
        register_code(KC_CAPSLOCK);
        unregister_code(KC_CAPSLOCK);
        tap_code(KC_CAPS);
      }
      break;
      return false;
    default:
      return true;
  }
  return MACRO_NONE;
  return true;
};


void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);


M keyboards/ckeys/nakey/keymaps/default/keymap.c => keyboards/ckeys/nakey/keymaps/default/keymap.c +0 -15
@@ 25,21 25,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) {
        register_code(KC_RSFT);
      } else {
        unregister_code(KC_RSFT);
      }
      break;
  }
  return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/cu24/keymaps/default/keymap.c => keyboards/cu24/keymaps/default/keymap.c +0 -16
@@ 35,22 35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

/* Use this function to add macros */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}

M keyboards/cu75/keymaps/default/keymap.c => keyboards/cu75/keymaps/default/keymap.c +0 -9
@@ 58,15 58,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/cu75/keymaps/iso/keymap.c => keyboards/cu75/keymaps/iso/keymap.c +0 -9
@@ 57,15 57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/do60/keymaps/default/keymap.c => keyboards/do60/keymaps/default/keymap.c +0 -15
@@ 20,21 20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// Macros
/*
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};
*/
// Loop
void matrix_scan_user(void) {
  // Empty

M keyboards/do60/keymaps/test/keymap.c => keyboards/do60/keymaps/test/keymap.c +0 -15
@@ 21,21 21,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// Macros
/*
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};
*/
// Loop
void matrix_scan_user(void) {
  // Empty

M keyboards/donutcables/scrabblepad/keymaps/default/keymap.c => keyboards/donutcables/scrabblepad/keymaps/default/keymap.c +0 -16
@@ 35,22 35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/duck/eagle_viper/v2/keymaps/default/keymap.c => keyboards/duck/eagle_viper/v2/keymaps/default/keymap.c +0 -4
@@ 33,7 33,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    _______, _______, _______,                                     _______,                            _______, _______, _______, _______  \
  ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE;
};

M keyboards/duck/jetfire/keymaps/default/keymap.c => keyboards/duck/jetfire/keymaps/default/keymap.c +0 -16
@@ 26,22 26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_LCTL, KC_LGUI, KC_LALT,                       KC_SPC,                 KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_COMM),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/duck/lightsaver/keymaps/default/keymap.c => keyboards/duck/lightsaver/keymaps/default/keymap.c +0 -4
@@ 42,7 42,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      _______,  _______, _______,                                              _______,                   _______, _______, _______, _______, _______, _______, _______ ), \

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE;
};

M keyboards/ergodone/keymaps/default/keymap.c => keyboards/ergodone/keymaps/default/keymap.c +0 -18
@@ 141,24 141,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
        if (record->event.pressed) {
          SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
        }
        break;
        case 1:
        if (record->event.pressed) { // For resetting EEPROM
          eeconfig_init();
        }
        break;
      }
    return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // dynamically generate these.

M keyboards/ergodox_ez/keymaps/default_osx/keymap.c => keyboards/ergodox_ez/keymaps/default_osx/keymap.c +0 -15
@@ 138,21 138,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) {
        register_code(KC_RSFT);
      } else {
        unregister_code(KC_RSFT);
      }
      break;
  }
  return MACRO_NONE;
};

// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {


M keyboards/ergodox_ez/keymaps/testing/keymap.c => keyboards/ergodox_ez/keymaps/testing/keymap.c +0 -13
@@ 28,19 28,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// leaving this in place for compatibilty with old keymaps cloned and re-compiled.
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
      switch(id) {
        case 0:
        if (record->event.pressed) {
          SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
        }
        break;
      }
    return MACRO_NONE;
};

void matrix_init_user(void) {
#ifdef RGBLIGHT_COLOR_LAYER_0
  rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);

M keyboards/ergodox_infinity/keymaps/default/keymap.c => keyboards/ergodox_infinity/keymaps/default/keymap.c +0 -18
@@ 141,24 141,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
        if (record->event.pressed) {
          SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
        }
        break;
        case 1:
        if (record->event.pressed) { // For resetting EEPROM
          eeconfig_init();
        }
        break;
      }
    return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // dynamically generate these.

M keyboards/gray_studio/cod67/keymaps/default/keymap.c => keyboards/gray_studio/cod67/keymaps/default/keymap.c +0 -16
@@ 26,22 26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/hadron/ver2/keymaps/default/keymap.c => keyboards/hadron/ver2/keymaps/default/keymap.c +7 -27
@@ 37,10 37,7 @@ enum preonic_keycodes {
  RGBLED_DECREASE_SAT,
  RGBLED_INCREASE_VAL,
  RGBLED_DECREASE_VAL,
};

enum macro_keycodes {
  KC_DEMOMACRO,
  DEMOMACRO
};

// Custom macros


@@ 51,7 48,6 @@ enum macro_keycodes {
// Requires KC_TRNS/_______ for the trigger key in the destination layer
#define LT_MC(kc)   LT(_MOUSECURSOR, kc)        // L-ayer T-ap M-ouse C-ursor
#define LT_RAI(kc)  LT(_RAISE, kc)              // L-ayer T-ap to Raise
#define DEMOMACRO   M(KC_DEMOMACRO)            // Sample for macros


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {


@@ 302,32 298,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      }
      return false;
      break;
    case DEMOMACRO:
      if (record->event.pressed) {
        SEND_STRING("hello world");
      }
      return false;
      break;
  }
  return true;
}



/*
 * Macro definition
 */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    if (!eeconfig_is_enabled()) {
      eeconfig_init();
    }

    switch (id) {
      case KC_DEMOMACRO:
        if (record->event.pressed){
          return MACRO (I(1), T(H),T(E),T(L), T(L), T(O), T(SPACE), T(W), T(O), T(R), T(L), T(D),  END);
        }
    }

    return MACRO_NONE;
}


//Functions for ver2
#ifdef KEYBOARD_hadron_ver2
#include "LUFA/Drivers/Peripheral/TWI.h"

M keyboards/hadron/ver3/keymaps/default/keymap.c => keyboards/hadron/ver3/keymaps/default/keymap.c +5 -27
@@ 27,10 27,7 @@ enum preonic_keycodes {
  RGBLED_DECREASE_SAT,
  RGBLED_INCREASE_VAL,
  RGBLED_DECREASE_VAL,
};

enum macro_keycodes {
  KC_DEMOMACRO,
  DEMOMACRO
};

// Custom macros


@@ 41,8 38,6 @@ enum macro_keycodes {
// Requires KC_TRNS/_______ for the trigger key in the destination layer
#define LT_MC(kc)   LT(_MOUSECURSOR, kc)        // L-ayer T-ap M-ouse C-ursor
#define LT_RAI(kc)  LT(_RAISE, kc)              // L-ayer T-ap to Raise
#define DEMOMACRO   M(KC_DEMOMACRO)            // Sample for macros


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {



@@ 248,6 243,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      }
      return false;
      break;
    case DEMOMACRO:
      if (record->event.pressed) {
        SEND_STRING("hello world");
      }
  }
  return true;
}


@@ 262,27 261,6 @@ bool music_mask_user(uint16_t keycode) {
  }
}


/*
 * Macro definition
 */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    if (!eeconfig_is_enabled()) {
      eeconfig_init();
    }

    switch (id) {
      case KC_DEMOMACRO:
        if (record->event.pressed){
          return MACRO (I(1), T(H),T(E),T(L), T(L), T(O), T(SPACE), T(W), T(O), T(R), T(L), T(D),  END);
        }
    }

    return MACRO_NONE;
}


void matrix_init_user(void) {
}


M keyboards/handwired/412_64/keymaps/default/keymap.c => keyboards/handwired/412_64/keymaps/default/keymap.c +0 -11
@@ 71,17 71,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  keyevent_t event = record->event;
    (void)event;

  switch (id) {

  }
  return MACRO_NONE;
}


void matrix_init_user(void) {

}

M keyboards/handwired/dactyl/keymaps/default/keymap.c => keyboards/handwired/dactyl/keymaps/default/keymap.c +0 -18
@@ 137,24 137,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) {
        SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
      }
      break;
    case 1:
      if (record->event.pressed) { // For resetting EEPROM
        eeconfig_init();
      }
      break;
  }
  return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case VRSN:

M keyboards/handwired/frenchdev/keymaps/default/keymap.c => keyboards/handwired/frenchdev/keymaps/default/keymap.c +2 -2
@@ 12,8 12,8 @@
#define PEDAL_DELAY 250
#define KEY_DELAY 130

enum macros {
    M_LP = SAFE_RANGE,   // left pedal
enum custom_keycodes {
    M_LP = SAFE_RANGE, // left pedal
    M_RP,   // right pedal
    M_SF,   // shift
    M_SFS,  // shift and space

M keyboards/handwired/gamenum/keymaps/default/keymap.c => keyboards/handwired/gamenum/keymaps/default/keymap.c +0 -5
@@ 29,11 29,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE;
};


bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    case TO(HDN):

M keyboards/handwired/kbod/keymaps/default/keymap.c => keyboards/handwired/kbod/keymaps/default/keymap.c +0 -5
@@ 75,11 75,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  }
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  return MACRO_NONE;
};

void led_set_user(uint8_t usb_led) {
  if (usb_led & _BV(USB_LED_CAPS_LOCK)) {
    PORTB |= _BV(PB0);

M keyboards/handwired/traveller/keymaps/default/keymap.c => keyboards/handwired/traveller/keymaps/default/keymap.c +21 -39
@@ 15,13 15,13 @@
#define  RGBLED_TOGGLE 10
#define _HIOUT 15
#define _LWOUT 16
// Macros
#define  MDL 4
#define  MDR 5
#define  MUR 6
#define  MUL 3


enum custom_keycodes {
  M_MUL = SAFE_RANGE,
  M_MDL,
  M_MDR,
  M_MUR
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty


@@ 102,9 102,9 @@ Right hand nav keys work pretty well chorded with the Right hand Hi Key
*/

[_NAV] = KEYMAP(
  TG(_NAV), KC_NO,         KC_NO,    KC_UP,       KC_NO,     RGUI(KC_RIGHT),            KC_WH_U,  M(MUL), KC_MS_U,   M(MUR), KC_NO, KC_ACL2,
  TG(_NAV), KC_NO,         KC_NO,    KC_UP,       KC_NO,     RGUI(KC_RIGHT),            KC_WH_U,  M_MUL,  KC_MS_U,   M_MUR,  KC_NO, KC_ACL2,
  KC_TRNS, RGUI(KC_LEFT),  KC_LEFT,  KC_DOWN,     KC_RIGHT,  LCTL(KC_E),                KC_BTN3,  KC_MS_L,  KC_MS_U,   KC_MS_R,  KC_NO, KC_ACL1,
  KC_TRNS, LCTL(KC_A),     LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO,         KC_ENTER,   KC_WH_D,  M(MDL), KC_MS_D,  M(MDR),  KC_UP, KC_ACL0,
  KC_TRNS, LCTL(KC_A),     LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO,         KC_ENTER,   KC_WH_D,  M_MDL,  KC_MS_D,  M_MDR,   KC_UP, KC_ACL0,
  KC_TRNS, RGUI(KC_Z),     KC_TRNS,  KC_TRNS,     KC_TRNS,   KC_TRNS,       KC_BTN2,   KC_BTN1,  KC_TRNS,  KC_TRNS,   KC_LEFT,   KC_DOWN,   KC_RIGHT
),



@@ 152,23 152,10 @@ Right hand nav keys work pretty well chorded with the Right hand Hi Key

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
            #ifdef BACKLIGHT_ENABLE
              backlight_step();
            #endif
          } else {
            unregister_code(KC_RSFT);
          }
        break;

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      switch (keycode) {
   // from  algernon's ErgoDox EZ layout,
       case MUL:
       case M_MUL:
        if (record->event.pressed) {
          mousekey_on(KC_MS_UP);
          mousekey_on(KC_MS_LEFT);


@@ 177,9 164,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
          mousekey_off(KC_MS_LEFT);
        }
        mousekey_send();
        break;
        return false;

      case MUR:
      case M_MUR:
        if (record->event.pressed) {
          mousekey_on(KC_MS_UP);
          mousekey_on(KC_MS_RIGHT);


@@ 188,9 175,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
          mousekey_off(KC_MS_RIGHT);
        }
        mousekey_send();
        break;
        return false;

      case MDL:
      case M_MDL:
        if (record->event.pressed) {
          mousekey_on(KC_MS_DOWN);
          mousekey_on(KC_MS_LEFT);


@@ 199,9 186,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
          mousekey_off(KC_MS_LEFT);
        }
        mousekey_send();
        break;
        return false;

      case MDR:
      case M_MDR:
        if (record->event.pressed) {
          mousekey_on(KC_MS_DOWN);
          mousekey_on(KC_MS_RIGHT);


@@ 210,11 197,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
          mousekey_off(KC_MS_RIGHT);
        }
        mousekey_send();
        break;


        return false;
      default:
        return true;
      }
    return MACRO_NONE;
    return true;
};

void LayerLEDSet(uint8_t layr) {


@@ 262,11 249,6 @@ void matrix_scan_user(void) {
           }
}


bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}

void led_set_user(uint8_t usb_led) {

}

M keyboards/helix/rev1/keymaps/OLED_sample/keymap.c => keyboards/helix/rev1/keymaps/OLED_sample/keymap.c +6 -27
@@ 41,15 41,9 @@ enum custom_keycodes {
  RGBLED_DECREASE_SAT,
  RGBLED_INCREASE_VAL,
  RGBLED_DECREASE_VAL,
  M_SAMPLE
};

enum macro_keycodes {
  KC_SAMPLEMACRO,
};

//Macros
#define M_SAMPLE M(KC_SAMPLEMACRO)

#if HELIX_ROWS == 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {



@@ 423,6 417,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      }
      return false;
      break;
    case M_SAMPLE:
      if (record->event.pressed) {
        SEND_STRING("hello world");
      }
      return false;
  }
  return true;
}


@@ 470,23 469,3 @@ void music_scale_user(void)
}

#endif

/*
 * Macro definition
 */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    if (!eeconfig_is_enabled()) {
      eeconfig_init();
    }

    switch (id) {
      case KC_SAMPLEMACRO:
        if (record->event.pressed){
          return MACRO (I(10), T(H), T(E), T(L), T(L), T(O), T(SPACE), T(W), T(O), T(R), T(L), T(D), END);
        }

    }

    return MACRO_NONE;
}

M keyboards/hhkb/keymaps/default/keymap.c => keyboards/hhkb/keymaps/default/keymap.c +0 -19
@@ 54,22 54,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch (id)
    {
    case 0:
        if (record->event.pressed)
        {
            register_code(KC_RSFT);
        }
        else
        {
            unregister_code(KC_RSFT);
        }
        break;
    }
    return MACRO_NONE;
};

M keyboards/hid_liber/keymaps/default/keymap.c => keyboards/hid_liber/keymaps/default/keymap.c +0 -16
@@ 43,22 43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
        case 0:
            if (record->event.pressed) {
                register_code(KC_RSFT);
            } else {
                unregister_code(KC_RSFT);
            }
            break;
    }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/hineybush/h87a/keymaps/default/keymap.c => keyboards/hineybush/h87a/keymaps/default/keymap.c +0 -16
@@ 35,22 35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/katana60/keymaps/default/keymap.c => keyboards/katana60/keymaps/default/keymap.c +0 -16
@@ 64,22 64,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kbdfans/kbd66/keymaps/ansi/keymap.c => keyboards/kbdfans/kbd66/keymaps/ansi/keymap.c +0 -16
@@ 66,22 66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kbdfans/kbd66/keymaps/default/keymap.c => keyboards/kbdfans/kbd66/keymaps/default/keymap.c +0 -16
@@ 66,22 66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kbdfans/kbd66/keymaps/iso/keymap.c => keyboards/kbdfans/kbd66/keymaps/iso/keymap.c +0 -16
@@ 66,22 66,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kbdfans/kbd8x/keymaps/default/keymap.c => keyboards/kbdfans/kbd8x/keymaps/default/keymap.c +0 -16
@@ 35,22 35,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kbdfans/kbd8x/keymaps/default_backlighting/keymap.c => keyboards/kbdfans/kbd8x/keymaps/default_backlighting/keymap.c +0 -16
@@ 34,22 34,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,                   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                                      KC_TRNS, KC_TRNS, KC_TRNS),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kc60/keymaps/default/keymap.c => keyboards/kc60/keymaps/default/keymap.c +0 -6
@@ 10,9 10,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      KC_LCTL,  KC_LALT,  KC_LGUI,                     KC_SPC,                             KC_NO,    KC_RGUI,  KC_RALT,  KC_RCTL,  RESET \
      ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
  return MACRO_NONE;
};

M keyboards/kinesis/keymaps/default/keymap.c => keyboards/kinesis/keymaps/default/keymap.c +0 -16
@@ 52,22 52,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kinesis/keymaps/default_pretty/keymap.c => keyboards/kinesis/keymaps/default_pretty/keymap.c +0 -16
@@ 45,22 45,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/kira75/keymaps/default/keymap.c => keyboards/kira75/keymaps/default/keymap.c +0 -16
@@ 26,22 26,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/knops/mini/keymaps/default-gsm-newbs/keymap.c => keyboards/knops/mini/keymaps/default-gsm-newbs/keymap.c +20 -89
@@ 1,5 1,10 @@
#include QMK_KEYBOARD_H

enum custom_keycodes {
	M_TGLHF = SAFE_RANGE,
	M_TGG
};

/*
*  Copy of knopps mini default May 16,2018
*  Added comments in code to more easilly understand it.


@@ 41,16 46,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*   Layer 1
*	 _____	 _____	 _____
*	| 	  | | 	  | | 	  |
*	  ESC    Macro3  Macro4
*	  ESC    Ctl+Z   CSf+Z
*	|_____| |_____| |_____|
*	 _____	 _____	 _____
*	| 	  | | 	  | | 	  |
*	 Macro5  Macro6  Macro7
*	 Ctl+X   Ctl+C   Ctl+V
*	|_____| |_____| |_____|
*
*/
	LAYOUT(
		LT(3, KC_ESC), M(3), M(4), M(5), M(6), M(7)),
		LT(3, KC_ESC), C(KC_Z), C(S(KC_Z)), C(KC_X), C(KC_C), C(KC_V)),

/*
*   Layer 2


@@ 65,7 70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*
*/
	LAYOUT(
		LT(3, KC_1), KC_2, KC_3, KC_4, M(0), M(1)),
		LT(3, KC_1), KC_2, KC_3, KC_4, M_TGLHF, M_TGG),

/*
*  Layer 3 Key Layout


@@ 126,91 131,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

//  Older way of Macros found here: https://docs.qmk.fm/features/macros

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	//keyevent_t event = record->event;

	switch (id) {
		case 0:
			if (record->event.pressed) {
			/*
			* This is Macro 0
			* Content:  tglhf<enter>
			*/
				return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END );
			}
			break;
		case 1:
			if (record->event.pressed) {
			/*
			* This is Macro 1
			* Content:  tgg<enter>
			*/
				return MACRO( T(T), T(G), T(G), T(ENT), END );
			}
			break;
		case 2:
			if (record->event.pressed) {
			/*
			* This is Macro 2
			* Content:  Press and hold "no" , type "l", release "no"<enter>
			* I haven't found what this "NO" key maps to
			*/
				return MACRO( D(NO), T(L), U(NO), END );
			}
			break;
		case 3:
			if (record->event.pressed) {
			/*
			* This is Macro 3
			* Content:  press/hold LCTRL, type "2", release LCTRL
			*/
				return MACRO( D(LCTL), T(Z), U(LCTL), END );
			}
			break;
		case 4:
			if (record->event.pressed) {
			/*
			* This is Macro 4
			* Content:  press/hold LCTRL, type "2", release LCTRL
			*/
				return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END );
			}
			break;
		case 5:
			if (record->event.pressed) {
			/*
			* This is Macro 5
			* Content:  press/hold LCTRL, type "x", release LCTRL
			*/
				return MACRO( D(LCTL), T(X), U(LCTL), END );
			}
			break;
		case 6:
			if (record->event.pressed) {
			/*
			* This is Macro 6
			* Content:  press/hold LCTRL, type "c", release LCTRL
			*/
				return MACRO( D(LCTL), T(C), U(LCTL), END );
			}
			break;
		case 7:
			if (record->event.pressed) {
			/*
			* This is Macro 7
			* Content:  press/hold LCTRL, type "v", release LCTRL
			*/
				return MACRO( D(LCTL), T(V), U(LCTL), END );
			}
			break;
	}
	return MACRO_NONE;
}



void set_switch_led(int ledId, bool state) {
	if(state) {
		switch(ledId) {


@@ 480,6 400,17 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) {
        led_set_layer(2);
     }
     break;
  case M_TGLHF:
    if (record->event.pressed) {
      SEND_STRING("tglhf");
      tap_code(KC_ENT);
    }
  case M_TGG:
    if (record->event.pressed) {
      SEND_STRING("tgg");
      tap_code(KC_ENT);
    }
    return false;
  }
  return true;
}

M keyboards/knops/mini/keymaps/default/keymap.c => keyboards/knops/mini/keymaps/default/keymap.c +20 -51
@@ 1,15 1,20 @@
#include QMK_KEYBOARD_H

enum custom_keycodes {
	M_TGLHF = SAFE_RANGE,
	M_TGG
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

	LAYOUT(
		LT(3, KC_MSTP), KC_VOLU, KC_MPLY, KC_MPRV, KC_VOLD, KC_MNXT),

	LAYOUT(
		LT(3, KC_ESC), M(3), M(4), M(5), M(6), M(7)),
		LT(3, KC_ESC), C(KC_Z), C(S(KC_Z)), C(KC_X), C(KC_C), C(KC_V)),

	LAYOUT(
		LT(3, KC_1), KC_2, KC_3, KC_4, M(0), M(1)),
		LT(3, KC_1), KC_2, KC_3, KC_4, M_TGLHF, M_TGG),

	LAYOUT(
		KC_TRNS, KC_TRNS, RESET, TO(0), TO(1), TO(2)),


@@ 52,54 57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	//keyevent_t event = record->event;

	switch (id) {
		case 0:
			if (record->event.pressed) {
				return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END );
			}
			break;
		case 1:
			if (record->event.pressed) {
				return MACRO( T(T), T(G), T(G), T(ENT), END );
			}
			break;
		case 2:
			if (record->event.pressed) {
				return MACRO( D(NO), T(L), U(NO), END );
			}
			break;
		case 3:
			if (record->event.pressed) {
				return MACRO( D(LCTL), T(Z), U(LCTL), END );
			}
			break;
		case 4:
			if (record->event.pressed) {
				return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END );
			}
			break;
		case 5:
			if (record->event.pressed) {
				return MACRO( D(LCTL), T(X), U(LCTL), END );
			}
			break;
		case 6:
			if (record->event.pressed) {
				return MACRO( D(LCTL), T(C), U(LCTL), END );
			}
			break;
		case 7:
			if (record->event.pressed) {
				return MACRO( D(LCTL), T(V), U(LCTL), END );
			}
			break;
	}
	return MACRO_NONE;
}

void set_switch_led(int ledId, bool state) {
	if(state) {
		switch(ledId) {


@@ 369,6 326,18 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) {
        led_set_layer(2);
     }
     break;
  case M_TGLHF:
    if (record->event.pressed) {
      SEND_STRING("tglhf");
      tap_code(KC_ENT);
    }
    return false;
  case M_TGG:
    if (record->event.pressed) {
      SEND_STRING("tgg");
      tap_code(KC_ENT);
    }
    return false;
  }
  return true;
}
\ No newline at end of file
}

M keyboards/kona_classic/keymaps/ansi/keymap.c => keyboards/kona_classic/keymaps/ansi/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/ansi_arrows/keymap.c => keyboards/kona_classic/keymaps/ansi_arrows/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/ansi_arrows_lcap/keymap.c => keyboards/kona_classic/keymaps/ansi_arrows_lcap/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/ansi_split/keymap.c => keyboards/kona_classic/keymaps/ansi_split/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/ansi_split_arrows/keymap.c => keyboards/kona_classic/keymaps/ansi_split_arrows/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/default/keymap.c => keyboards/kona_classic/keymaps/default/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/iso/keymap.c => keyboards/kona_classic/keymaps/iso/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/iso_arrows/keymap.c => keyboards/kona_classic/keymaps/iso_arrows/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/iso_split/keymap.c => keyboards/kona_classic/keymaps/iso_split/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/kona_classic/keymaps/iso_split_arrows/keymap.c => keyboards/kona_classic/keymaps/iso_split_arrows/keymap.c +0 -3
@@ 44,9 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

// const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {};


void matrix_init_user(void) {

}

M keyboards/lets_split/keymaps/OLED_sample/keymap.c => keyboards/lets_split/keymaps/OLED_sample/keymap.c +6 -28
@@ 37,15 37,9 @@ enum custom_keycodes {
  RGBLED_DECREASE_SAT,
  RGBLED_INCREASE_VAL,
  RGBLED_DECREASE_VAL,
  M_SAMPLE
};

enum macro_keycodes {
  KC_SAMPLEMACRO,
};

//Macros
#define M_SAMPLE M(KC_SAMPLEMACRO)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* Qwerty


@@ 278,6 272,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      }
      return false;
      break;
    case M_SAMPLE:
      if (record->event.pressed){
        SEND_STRING("hello world");
      }
      return false;
  }
  return true;
}


@@ 328,27 327,6 @@ void music_scale_user(void)

#endif

/*
 * Macro definition
 */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    if (!eeconfig_is_enabled()) {
      eeconfig_init();
    }

    switch (id) {
      case KC_SAMPLEMACRO:
        if (record->event.pressed){
          return MACRO (I(10), T(H), T(E), T(L), T(L), T(O), T(SPACE), T(W), T(O), T(R), T(L), T(D), END);
        }

    }

    return MACRO_NONE;
}


void matrix_update(struct CharacterMatrix *dest,
                          const struct CharacterMatrix *source) {
  if (memcmp(dest->display, source->display, sizeof(dest->display))) {

M keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c => keyboards/lfkeyboards/lfk65_hs/keymaps/default/keymap.c +0 -9
@@ 53,15 53,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_TR, KC_TR, KC_TR,         KC_TR,       KC_TR, KC_TR, KC_TR, RGB_SAD, RGB_HUD,  RGB_SAI),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c => keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c +0 -10
@@ 92,16 92,6 @@ const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c => keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c +0 -10
@@ 92,16 92,6 @@ const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c => keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c +0 -10
@@ 92,16 92,6 @@ const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c => keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c +0 -10
@@ 100,16 100,6 @@ const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
};


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
    }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c => keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c +0 -10
@@ 100,16 100,6 @@ const uint16_t PROGMEM fn_actions[] = {
    [7] = ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN7 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c => keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c +0 -10
@@ 20,16 20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
};


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c => keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c +0 -10
@@ 100,16 100,6 @@ const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
    }
    return MACRO_NONE;
};


void matrix_init_user(void) {
    // This keymap only has a single base layer, so reset the default if needed
    if(eeconfig_read_default_layer() > 1){

M keyboards/lfkeyboards/smk65/keymaps/default/keymap.c => keyboards/lfkeyboards/smk65/keymaps/default/keymap.c +0 -9
@@ 59,15 59,6 @@ const uint16_t PROGMEM fn_actions[] = {
    [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE),                  // FN5 - Toggle audio click
  };

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c => keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c +0 -10
@@ 59,16 59,6 @@ const uint16_t PROGMEM fn_actions[] = {
    [5] = ACTION_FUNCTION(LFK_CLICK_TOGGLE),                        // FN5 - Toggle audio click
  };


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/mechmini/v2/keymaps/default/keymap.c => keyboards/mechmini/v2/keymaps/default/keymap.c +0 -9
@@ 31,15 31,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {


	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/meira/keymaps/default/keymap.c => keyboards/meira/keymaps/default/keymap.c +0 -16
@@ 174,22 174,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
  }
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/melody96/keymaps/default/keymap.c => keyboards/melody96/keymaps/default/keymap.c +0 -4
@@ 69,10 69,6 @@ BL_TOGG, BL_DEC, BL_INC changes the in-switch LEDs
    _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	return MACRO_NONE;
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	return true;
}

M keyboards/mint60/keymaps/default/keymap.c => keyboards/mint60/keymaps/default/keymap.c +0 -16
@@ 52,22 52,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool TOG_STATUS = false;
int RGB_current_mode;


const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case RGBRST:

M keyboards/mitosis/keymaps/default/keymap.c => keyboards/mitosis/keymaps/default/keymap.c +44 -61
@@ 18,16 18,10 @@ enum mitosis_layers
enum mitosis_keycodes
{
  FNKEY = SAFE_RANGE,
  SHIFT
};


// Macro definitions for readability
enum mitosis_macros
{
	VOLU,
	VOLD,
	ESCM
  SHIFT,
  M_VOLU,
  M_VOLD,
  M_ESCM
};

#define LONGPRESS_DELAY 150


@@ 39,8 33,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KC_Q,    KC_P,    KC_Y,    KC_C,    KC_B,           KC_V,    KC_M,    KC_U,    KC_Z,    KC_L,
    KC_A,    KC_N,    KC_I,    KC_S,    KC_F,           KC_D,    KC_T,    KC_H,    KC_O,    KC_R,
    KC_COMM, KC_DOT,  KC_J,    KC_G,    KC_SLSH,        KC_SCLN, KC_W,    KC_K,    KC_QUOT, KC_X,
             M(VOLU), M(ESCM), KC_TAB,  KC_LCTL,        KC_LALT, KC_ENT,  KC_DEL,  KC_PGUP,
             M(VOLD), KC_LGUI, KC_E,    FNKEY,          SHIFT,   KC_SPC,  KC_BSPC, KC_PGDN
             M_VOLU,  M_ESCM,  KC_TAB,  KC_LCTL,        KC_LALT, KC_ENT,  KC_DEL,  KC_PGUP,
             M_VOLD,  KC_LGUI, KC_E,    FNKEY,          SHIFT,   KC_SPC,  KC_BSPC, KC_PGDN
  ),




@@ 78,55 72,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

static uint16_t key_timer;

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
    switch(id) {

      	//switch multiplexing for media, short tap for volume up, long press for play/pause
        case VOLU:
            if (record->event.pressed) {
            	key_timer = timer_read(); // if the key is being pressed, we start the timer.
          	} else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { // LONGPRESS_DELAY being 150ms, the threshhold we pick for counting something as a tap.
                  return MACRO(T(MPLY), END);
                } else {
                  return MACRO(T(VOLU), END);
                }
          	}
          	break;

		//switch multiplexing for media, short tap for volume down, long press for next track
        case VOLD:
            if (record->event.pressed) {
            	key_timer = timer_read();
          	} else {
            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {
                  return MACRO(T(MNXT), END);
                } else {
                  return MACRO(T(VOLD), END);
                }
          	}
          	break;

        //switch multiplexing for escape, short tap for escape, long press for context menu
        case ESCM:
            if (record->event.pressed) {
            	key_timer = timer_read();
          	} else {
            	if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {
                  return MACRO(T(APP), END);
                } else {
                  return MACRO(T(ESC), END);
                }
          	}
          	break;

        break;
    }
    return MACRO_NONE;
};

static bool singular_key = false;

bool process_record_user(uint16_t keycode, keyrecord_t *record) {


@@ 165,6 110,44 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    update_tri_layer(_FUNCTION, _SHIFTED, _FUNCSHIFT);
  	return false;
  	break;
  //switch multiplexing for media, short tap for volume up, long press for play/pause
  case M_VOLU:
      if (record->event.pressed) {
        key_timer = timer_read(); // if the key is being pressed, we start the timer.
      } else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
        if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { // LONGPRESS_DELAY being 150ms, the threshhold we pick for counting something as a tap.
            tap_code(KC_MPLY);
          } else {
            tap_code(KC_VOLU);
          }
      }
      return false;

  //switch multiplexing for media, short tap for volume down, long press for next track
  case M_VOLD:
      if (record->event.pressed) {
        key_timer = timer_read();
      } else {
        if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {
            tap_code(KC_MNXT);
          } else {
            tap_code(KC_VOLD);
          }
      }
      return false;

  //switch multiplexing for escape, short tap for escape, long press for context menu
  case M_ESCM:
      if (record->event.pressed) {
        key_timer = timer_read();
      } else {
        if (timer_elapsed(key_timer) > LONGPRESS_DELAY) {
            tap_code(KC_APP);
          } else {
            tap_code(KC_ESC);
          }
      }
      return false;

  //If any other key was pressed during the layer mod hold period,
  //then the layer mod was used momentarily, and should block latching

M keyboards/miuni32/keymaps/default/keymap.c => keyboards/miuni32/keymaps/default/keymap.c +0 -15
@@ 59,21 59,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};

void matrix_init_user(void) {
}


M keyboards/mxss/keymaps/default/keymap.c => keyboards/mxss/keymaps/default/keymap.c +0 -16
@@ 51,22 51,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/novelpad/keymaps/default/keymap.c => keyboards/novelpad/keymaps/default/keymap.c +0 -4
@@ 43,10 43,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
  return MACRO_NONE ;
}

void matrix_init_user(void) {

  rgblight_setrgb(0,255,0);

M keyboards/org60/keymaps/default/keymap.c => keyboards/org60/keymaps/default/keymap.c +0 -14
@@ 20,20 20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// Macros
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};

// Loop
void matrix_scan_user(void) {
  // Empty

M keyboards/paladin64/keymaps/default/keymap.c => keyboards/paladin64/keymaps/default/keymap.c +0 -9
@@ 44,15 44,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
	// keyevent_t event = record->event;

	switch (id) {

	}
	return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/phantom/keymaps/default/keymap.c => keyboards/phantom/keymaps/default/keymap.c +0 -16
@@ 41,22 41,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    ),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
        case 0:
            if (record->event.pressed) {
                register_code(KC_RSFT);
            } else {
                unregister_code(KC_RSFT);
            }
            break;
    }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/planck/keymaps/basic/keymap.c => keyboards/planck/keymaps/basic/keymap.c +1 -22
@@ 23,7 23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC},
  {KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT },
  {KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, M(1),    KC_SPC,  KC_SPC,   M(2),   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
  {KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, MO(1),   KC_SPC,  KC_SPC,  MO(2),   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT}
},

/* Lower


@@ 64,24 64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {


};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  switch(id) {
    case 1:
      if (record->event.pressed) {
        layer_on(1);
      } else {
        layer_off(1);
      }
      break;
    case 2:
      if (record->event.pressed) {
        layer_on(2);
      } else {
        layer_off(2);
      }
      break;
  }
  return MACRO_NONE;
};

M keyboards/primekb/prime_r/keymaps/default/keymap.c => keyboards/primekb/prime_r/keymaps/default/keymap.c +0 -8
@@ 53,14 53,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  switch (id) {

  }
  return MACRO_NONE;
}

void matrix_init_user(void) {
}


M keyboards/satan/keymaps/isoHHKB/keymap.c => keyboards/satan/keymaps/isoHHKB/keymap.c +25 -9
@@ 10,8 10,10 @@
#define _BL 0
#define _FL 1

#define KC_ENYE M(0)
#define KC_CEDL M(1)
enum custom_keycodes {
  KC_ENYE = SAFE_RANGE,
  KC_CEDL
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  /* Keymap _BL: (Base Layer) Default Layer


@@ 93,14 95,28 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
  }
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    if (record->event.pressed) {
        switch(id) {
            case 0: // Ñ
                return MACRO(D(LALT), T(KP_0), T(KP_2), T(KP_4), T(KP_1), U(LALT), END);
            case 1: // Ç
                return MACRO(D(LALT), T(KP_0), T(KP_2), T(KP_3), T(KP_1), U(LALT), END);
        switch(keycode) {
            case KC_ENYE: // Ñ
                register_code16(KC_LALT);
                tap_code(KC_KP_0);
                tap_code(KC_KP_2);
                tap_code(KC_KP_4);
                tap_code(KC_KP_1);
                unregister_code16(KC_LALT);
                return false;
            case KC_CEDL: // Ç
                register_code16(KC_LALT);
                tap_code(KC_KP_0);
                tap_code(KC_KP_2);
                tap_code(KC_KP_3);
                tap_code(KC_KP_1);
                unregister_code16(KC_LALT);
                return false;
            default:
              return true;
        }
    }
    return MACRO_NONE;
    return true;
};

M keyboards/satan/keymaps/iso_split_rshift/keymap.c => keyboards/satan/keymaps/iso_split_rshift/keymap.c +2 -20
@@ 70,7 70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_PSCR, KC_F1,   KC_F2,   KC_F3,     KC_F4,     KC_F5,     KC_F6,    KC_F7,     KC_F8,     KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL,  \
        _______, KC_PAUS, KC_UP,   GER_BRC_L, GER_BRC_R, _______,   _______,  GER_PAR_L, GER_PAR_R, _______, _______, _______, _______, \
        _______, KC_LEFT, KC_DOWN, KC_RIGHT,  _______,   _______,   KC_LEFT,  KC_DOWN,   KC_UP,     KC_RGHT, _______, _______, _______, KC_MPLY, \
        _______, _______, _______, _______,   GER_ANG_L, GER_ANG_R, KC_SPACE, M(0),      _______,   _______, _______, _______, KC_VOLU, _______, \
        _______, _______, _______, _______,   GER_ANG_L, GER_ANG_R, KC_SPACE, RALT(KC_SPC),_______,   _______, _______, _______, KC_VOLU, _______, \
        _______, _______, _______,                                  _______,                                 _______, KC_MPRV, KC_VOLD, KC_MNXT),

    /* Keymap 2: Tab Layer w/ vim pageup, modified with Tab (by holding tab)


@@ 90,7 90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_WAKE, _______, _______, _______, _______, _______, _______, _______,    _______,  _______, _______, _______, _______, KC_INS,  \
        _______, _______, _______, _______, _______, _______, _______, GER_CUR_L, GER_CUR_R, _______, _______, _______, _______, \
        _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN,    KC_PGUP,  KC_END,  _______, _______, _______, KC_ENT,  \
        _______, _______, _______, _______, _______, _______, _______, M(1),       _______,  _______, _______, _______, KC_PGUP, _______, \
        _______, _______, _______, _______, _______, _______, _______, A(KC_F2),   _______,  _______, _______, _______, KC_PGUP, _______, \
        _______, _______, _______,                            _______,                                _______, KC_HOME, KC_PGDN, KC_END),

    /* Keymap 3: Split right shift Numpad toggle Layer (by tapping the split rshift key)


@@ 113,21 113,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_0, _______, KC_SLSH, KC_UP,   _______, \
        _______, _______, _______,                            _______,                         _______, KC_LEFT, KC_DOWN, KC_RGHT),
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    // MACRODOWN only works in this function
    switch(id) {
        case 0:
            return (record->event.pressed ?
                    MACRO( D(RALT), T(SPC), U(RALT), END )
                    :MACRO( END ));
            break;
        case 1:
            return (record->event.pressed ?
                    MACRO( D(LALT), T(F2), U(LALT), END )
                    :MACRO( END ));
            break;
    }
    return MACRO_NONE;
};

M keyboards/scarletbandana/keymaps/default/keymap.c => keyboards/scarletbandana/keymaps/default/keymap.c +0 -15
@@ 82,21 82,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
  }
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};

#ifdef AUDIO_ENABLE

  float tone_qwerty[][2]     = SONG(QWERTY_SOUND);

M keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c => keyboards/sentraq/s60_x/keymaps/ansi_qwertz/keymap.c +0 -5
@@ 158,11 158,6 @@ const uint16_t PROGMEM fn_actions[] = {
    [F_OSLS] = ACTION_MODS_ONESHOT(MOD_LSFT)            // Oneshot Leftshift
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    return MACRO_NONE;
};

void matrix_init_user(void) {

}

M keyboards/sixkeyboard/keymaps/default/keymap.c => keyboards/sixkeyboard/keymaps/default/keymap.c +0 -5
@@ 9,11 9,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    return MACRO_NONE;
};

void matrix_scan_user(void) {
  // jump to bootloaer when all keys are pressed
  if (matrix_get_row(0) == 0b111 && matrix_get_row(1) == 0b111) {

M keyboards/speedo/keymaps/default/keymap.c => keyboards/speedo/keymaps/default/keymap.c +0 -16
@@ 55,22 55,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void matrix_init_user(void) {

}

M keyboards/thevankeyboards/minivan/keymaps/default/keymap.c => keyboards/thevankeyboards/minivan/keymaps/default/keymap.c +17 -15
@@ 14,16 14,17 @@ extern keymap_config_t keymap_config;
#define _L2 4
#define _L3 5

// Macro name shortcuts
#define QWERTY M(_QW)
#define DVORAK M(_DV)
#define COLEMAK M(_CM)

// Curly braces have their own keys. These are defined to make them not mess up
// the grid in layer 2.
#define L_CURBR LSFT(KC_LBRC)
#define R_CURBR LSFT(KC_RBRC)

enum custom_keycodes {
  DVORAK = SAFE_RANGE,
  QWERTY,
  COLEMAK
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_QW] = LAYOUT( /* Qwerty */
    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,


@@ 68,24 69,25 @@ void persistent_default_layer_set(uint16_t default_layer) {
  default_layer_set(default_layer);
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
      switch(id) {
        case _DV:
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      switch(keycode) {
        case DVORAK:
          if (record->event.pressed) {
            persistent_default_layer_set(1UL<<_DV);
          }
          break;
        case _QW:
          return false;
        case QWERTY:
          if (record->event.pressed) {
            persistent_default_layer_set(1UL<<_QW);
          }
          break;
        case _CM:
          return false;
        case COLEMAK:
          if (record->event.pressed) {
            persistent_default_layer_set(1UL<<_CM);
          }
          break;
          return false;
        default:
          return true;
      }
    return MACRO_NONE;
    return true;
};

M keyboards/thevankeyboards/roadkit/keymaps/default/keymap.c => keyboards/thevankeyboards/roadkit/keymaps/default/keymap.c +10 -8
@@ 9,8 9,9 @@ extern keymap_config_t keymap_config;

#define _NP 0

// Macro name shortcuts
#define NUMPAD M(_NP)
enum custom_keycodes {
  NUMPAD = SAFE_RANGE
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_NP] = LAYOUT_numpad_4x4( /* Numpad */


@@ 26,14 27,15 @@ void persistent_default_layer_set(uint16_t default_layer) {
  default_layer_set(default_layer);
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
      switch(id) {
        case _NP:
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      switch(keycode) {
        case NUMPAD:
          if (record->event.pressed) {
            persistent_default_layer_set(1UL<<_NP);
          }
          break;
          return false;
        default:
          return true;
      }
    return MACRO_NONE;
    return true;
};

M keyboards/v60_type_r/keymaps/default/keymap.c => keyboards/v60_type_r/keymaps/default/keymap.c +0 -16
@@ 63,22 63,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
          if (record->event.pressed) {
            register_code(KC_RSFT);
          } else {
            unregister_code(KC_RSFT);
          }
        break;
      }
    return MACRO_NONE;
};


void led_set_user(uint8_t usb_led) {

}

M keyboards/vision_division/keymaps/default/keymap.c => keyboards/vision_division/keymaps/default/keymap.c +64 -304
@@ 9,112 9,20 @@ enum keyboard_layers {
  LAYER_MOUSE,
  LAYER_ADJUST,
};
enum keyboard_macros {
  MACRO_QWERTY = 0,
  MACRO_UPPER,
  MACRO_LOWER,
  MACRO_FUNCTION,
  MACRO_MOUSE,
  MACRO_TIMBRE_1,
  MACRO_TIMBRE_2,
  MACRO_TIMBRE_3,
  MACRO_TIMBRE_4,
  MACRO_TEMPO_U,
  MACRO_TEMPO_D,
  MACRO_TONE_DEFAULT,
  MACRO_MUSIC_TOGGLE,
  MACRO_AUDIO_TOGGLE,
  MACRO_INC_VOICE,
  MACRO_DEC_VOICE,
  MACRO_BACKLIGHT,
  MACRO_BREATH_TOGGLE,
  MACRO_BREATH_SPEED_INC,
  MACRO_BREATH_SPEED_DEC,
  MACRO_BREATH_DEFAULT,
  MACRO_MOUSE_MOVE_UL,
  MACRO_MOUSE_MOVE_UR,
  MACRO_MOUSE_MOVE_DL,
  MACRO_MOUSE_MOVE_DR,
  MACRO_HELP,
  MACRO_HELP_1,
  MACRO_HELP_2,
  MACRO_HELP_3,
  MACRO_HELP_4,
  MACRO_HELP_5,
  MACRO_HELP_6,
  MACRO_HELP_7,
  MACRO_HELP_8,
  MACRO_HELP_9,
  MACRO_HELP_0,
  MACRO_GENERAL_1,
  MACRO_GENERAL_2,
  MACRO_GENERAL_3,
  MACRO_GENERAL_4,
  MACRO_GENERAL_5,
  MACRO_CURSOR_UL,
  MACRO_CURSOR_UR,
  MACRO_CURSOR_DL,
  MACRO_CURSOR_DR,
  MACRO_MUTE_APP,
  MACRO_COPY_CUT,
};

#define M_QWRTY             M(MACRO_QWERTY)
#define M_UPPER             M(MACRO_UPPER)
#define M_LOWER             M(MACRO_LOWER)
#define M_FUNCT             M(MACRO_FUNCTION)
#define M_MOUSE             M(MACRO_MOUSE)

#define TIMBR_1             M(MACRO_TIMBRE_1)
#define TIMBR_2             M(MACRO_TIMBRE_2)
#define TIMBR_3             M(MACRO_TIMBRE_3)
#define TIMBR_4             M(MACRO_TIMBRE_4)
#define TMPO_UP             M(MACRO_TEMPO_U)
#define TMPO_DN             M(MACRO_TEMPO_D)
#define TMPO_DF             M(MACRO_TONE_DEFAULT)

#define VC_UP               M(MACRO_INC_VOICE)
#define VC_DOWN             M(MACRO_DEC_VOICE)

#define M_BACKL             M(MACRO_BACKLIGHT)
#define M_BRTOG             M(MACRO_BREATH_TOGGLE)
#define M_BSPDU             M(MACRO_BREATH_SPEED_INC)
#define M_BSPDD             M(MACRO_BREATH_SPEED_DEC)
#define M_BDFLT             M(MACRO_BREATH_DEFAULT)

#define M_MS_UL             M(MACRO_MOUSE_MOVE_UL)
#define M_MS_UR             M(MACRO_MOUSE_MOVE_UR)
#define M_MS_DL             M(MACRO_MOUSE_MOVE_DL)
#define M_MS_DR             M(MACRO_MOUSE_MOVE_DR)

#define M_HELP              M(MACRO_HELP)
#define M_HELP1             M(MACRO_HELP_1)
#define M_HELP2             M(MACRO_HELP_2)
#define M_HELP3             M(MACRO_HELP_3)
#define M_HELP4             M(MACRO_HELP_4)
#define M_HELP5             M(MACRO_HELP_5)
#define M_HELP6             M(MACRO_HELP_6)
#define M_HELP7             M(MACRO_HELP_7)
#define M_HELP8             M(MACRO_HELP_8)
#define M_HELP9             M(MACRO_HELP_9)
#define M_HELP0             M(MACRO_HELP_0)

#define M_M1                M(MACRO_GENERAL_1)
#define M_M2                M(MACRO_GENERAL_2)
#define M_M3                M(MACRO_GENERAL_3)
#define M_M4                M(MACRO_GENERAL_4)
#define M_M5                M(MACRO_GENERAL_5)

#define M_UL                M(MACRO_CURSOR_UL)
#define M_UR                M(MACRO_CURSOR_UR)
#define M_DL                M(MACRO_CURSOR_DL)
#define M_DR                M(MACRO_CURSOR_DR)

#define M_MUTEA             M(MACRO_MUTE_APP)

#define M_CP_CT             M(MACRO_COPY_CUT)

#define M_COPY              MACROTAP(MACRO_COPY_CUT)
enum custom_keycodes {
  M_CP_CT = SAFE_RANGE,
  M_UPPER,
  M_LOWER,
  M_MOUSE,
  TIMBR_1,
  TIMBR_2,
  TIMBR_3,
  TIMBR_4,
  TMPO_UP,
  TMPO_DN,
  TMPO_DF
};

#define SC_UNDO             LCTL(KC_Z)
#define SC_REDO             LCTL(KC_Y)


@@ 151,28 59,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] =
  | VOL DN | MUTE   | VOL UP | BACKLT |       | F1     | F2     | F3     | F4     | XXXXXX | F5     | F6     | F7     | F8     | XXXXXX | F9     | F10    | F11    | F12    |       | PRINT  | SCR LK | PAUSE  | FN     |
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | NUM LK | KP /   | KP *   | KP -   |       | ESC    | `      | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | =      | BACKSP |       | INS    | HOME   | PG UP  | M1     |
  | NUM LK | KP /   | KP *   | KP -   |       | ESC    | `      | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | =      | BACKSP |       | INS    | HOME   | PG UP  | XXXXXX |
  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------|
  | KP 7   | KP 8   | KP 9   | KP +   |       | TAB    | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | -      | \      |       | DEL    | END    | PG DN  | M2     |
  | KP 7   | KP 8   | KP 9   | KP +   |       | TAB    | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | -      | \      |       | DEL    | END    | PG DN  | XXXXXX |
  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------|
  | KP 4   | KP 5   | KP 6   | KP +   |       | CAP LK | BACKSP | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | ENTER  |   o   | CP/CT  | UNDO   | PASTE  | M3     |
  | KP 4   | KP 5   | KP 6   | KP +   |       | CAP LK | BACKSP | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | ENTER  |   o   | CP/CT  | UNDO   | PASTE  | XXXXXX |
  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------|
  | KP 1   | KP 2   | KP 3   | KP Ent |       | LSHIFT | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | RSHIFT | RSHIFT |       | XXXXXX | UP     | XXXXXX | M4     |
  | KP 1   | KP 2   | KP 3   | KP Ent |       | LSHIFT | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | RSHIFT | RSHIFT |       | XXXXXX | UP     | XXXXXX | XXXXXX |
  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------|
  | KP 0   | KP ,   | KP .   | KP Ent |       | LCTRL  | XXXXXX | LWIN   | XXXXXX | LALT   | UPPER  | SPACE  . SPACE  | LOWER  | OSHIFT | RALT   | APP    | XXXXXX | RCTRL  |       | LEFT   | DOWN   | RIGHT  | M5     |
  | KP 0   | KP ,   | KP .   | KP Ent |       | LCTRL  | XXXXXX | LWIN   | XXXXXX | LALT   | UPPER  | SPACE  . SPACE  | LOWER  | OSHIFT | RALT   | APP    | XXXXXX | RCTRL  |       | LEFT   | DOWN   | RIGHT  | XXXXXX |
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
*/
KEYMAP(LAYER_QWERTY, \
    KC_VOLD, KC_MUTE, KC_VOLU, M_BACKL,         KC_F1  , KC_F2  , KC_F3  , KC_F4  , XXXXXXX, KC_F5  , KC_F6  , KC_F7  , KC_F8  , XXXXXXX, KC_F9  , KC_F10 , KC_F11 , KC_F12 ,         KC_PSCR, KC_SLCK, KC_PAUS, M_HELP , \
    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,         KC_ESC , KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_EQL , KC_BSPC,         KC_INS , KC_HOME, KC_PGUP, M_M1   , \
    KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,         KC_TAB , KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_MINS, KC_BSLS,         KC_DEL , KC_END , KC_PGDN, M_M2   , \
    KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,         KC_CAPS, KC_BSPC, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT, KC_ENT ,         M_CP_CT, SC_UNDO, SC_PSTE, M_M3   , \
    KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,         KC_LSFT, KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT,         XXXXXXX, KC_UP  , XXXXXXX, M_M4   , \
    KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT,         KC_LCTL, XXXXXXX, KC_LGUI, XXXXXXX, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL,         KC_LEFT, KC_DOWN, KC_RGHT, M_M5     \
    KC_VOLD, KC_MUTE, KC_VOLU, BL_STEP,         KC_F1  , KC_F2  , KC_F3  , KC_F4  , XXXXXXX, KC_F5  , KC_F6  , KC_F7  , KC_F8  , XXXXXXX, KC_F9  , KC_F10 , KC_F11 , KC_F12 ,         KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX , \
    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,         KC_ESC , KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_EQL , KC_BSPC,         KC_INS , KC_HOME, KC_PGUP, XXXXXXX , \
    KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,         KC_TAB , KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_MINS, KC_BSLS,         KC_DEL , KC_END , KC_PGDN, XXXXXXX , \
    KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,         KC_CAPS, KC_BSPC, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT, KC_ENT ,         M_CP_CT, SC_UNDO, SC_PSTE, XXXXXXX , \
    KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,         KC_LSFT, KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT,         XXXXXXX, KC_UP  , XXXXXXX, XXXXXXX , \
    KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT,         KC_LCTL, XXXXXXX, KC_LGUI, XXXXXXX, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL,         KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX   \
),
/* LAYER = LAYER_LOWER
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | ______ | MUTE A | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | ______ | ______ | ______ |
  | ______ | ______ | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | ______ | ______ | ______ |
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ |


@@ 187,7 95,7 @@ KEYMAP(LAYER_QWERTY, \
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
*/
KEYMAP(LAYER_LOWER, \
    _______, M_MUTEA, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT  , _______, _______,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______,         _______, _______, _______, _______, \


@@ 196,7 104,7 @@ KEYMAP(LAYER_LOWER, \
),
/* LAYER = LAYER_UPPER
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | ______ | MUTE A | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | ______ | ______ | ______ |
  | ______ | ______ | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | ______ | ______ | ______ |
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ |


@@ 211,7 119,7 @@ KEYMAP(LAYER_LOWER, \
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
*/
KEYMAP(LAYER_UPPER, \
    _______, M_MUTEA, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______,         _______, _______, _______, _______, \
    _______, _______, _______, _______,         _______, _______, KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______,         _______, _______, _______, _______, \


@@ 244,7 152,7 @@ KEYMAP(LAYER_MOUSE, \
),
/* LAYER = LAYER_ADJUST
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | VOICE- | AUDIO  | VOICE+ | MUSIC  |       | HELP 1 | HELP 2 | HELP 3 | HELP 4 | XXXXXX | HELP 5 | HELP 6 | HELP 7 | HELP 8 | XXXXXX | HELP 9 | HELP 0 | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
  | VOICE- | AUDIO  | VOICE+ | MUSIC  |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------.
  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX |


@@ 259,7 167,7 @@ KEYMAP(LAYER_MOUSE, \
  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------'
*/
KEYMAP(LAYER_ADJUST, \
    MUV_DE , AU_TOG , MUV_IN , MU_TOG ,         M_HELP1, M_HELP2, M_HELP3, M_HELP4, XXXXXXX, M_HELP5, M_HELP6, M_HELP7, M_HELP8, XXXXXXX, M_HELP9, M_HELP0, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
    MUV_DE , AU_TOG , MUV_IN , MU_TOG ,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \


@@ 296,233 204,85 @@ void persistent_default_layer_set(uint16_t default_layer)
  default_layer_set(default_layer);
}

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{

  // MACRODOWN only works in this function
  switch(id)
  {

    case MACRO_COPY_CUT:
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch(keycode) {
    case M_CP_CT:
        if (record->event.pressed) {
            register_code(KC_LCTL);
            if (record->tap.count == 1) {
                register_code(KC_C);
                unregister_code(KC_C);
            }
            else if (record->tap.count == 2) {
            } else if (record->tap.count == 2) {
                register_code(KC_X);
                unregister_code(KC_X);
            }
            unregister_code(KC_LCTL);
        }
        break;


  //   case MACRO_HELP_1:
  //     if (record->event.pressed)
  //     {
  //       uprint("H1");
  //     }
  //     break;

  //   case MACRO_HELP_2:
  //     if (record->event.pressed)
  //     {
  //       uprint("H2");
  //     }
  //     break;

  //   case MACRO_HELP_3:
  //     if (record->event.pressed)
  //     {
  //       uprint("H3");
  //     }
  //     break;

  //   case MACRO_HELP_4:
  //     if (record->event.pressed)
  //     {
  //       uprint("H4");
  //     }
  //     break;

  //  case MACRO_HELP_5:
  //    if (record->event.pressed)
  //    {
  //      uprint("H5");
  //    }
  //    break;

  //  case MACRO_HELP_6:
  //    if (record->event.pressed)
  //    {
  //      uprint("H6");
  //    }
  //    break;

  //  case MACRO_HELP_7:
  //     if (record->event.pressed)
  //     {
  //       uprint("H7");
  //     }
  //     break;

  // case MACRO_HELP_8:
  //   if (record->event.pressed)
  //   {
  //     uprint("H8");
  //   }
  //   break;

  // case MACRO_HELP_9:
  //   if (record->event.pressed)
  //   {
  //     uprint("H9");
  //   }
  //   break;

  case MACRO_BREATH_TOGGLE:
    if (record->event.pressed)
    {
      breathing_toggle();
    }
    break;

  case MACRO_BREATH_SPEED_INC:
    if (record->event.pressed)
    {
      breathing_period_inc();
    }
    break;
        return false;

  case MACRO_BREATH_SPEED_DEC:
    if (record->event.pressed)
    {
      breathing_period_dec();
    }
    break;

  case MACRO_BREATH_DEFAULT:
    if (record->event.pressed)
    {
      breathing_period_default();
    }
    break;

  case MACRO_QWERTY:
    if (record->event.pressed)
    {
      persistent_default_layer_set(1UL<<LAYER_QWERTY);
    }
    break;

  case MACRO_UPPER:
    if (record->event.pressed)
    {
  case M_UPPER:
    if (record->event.pressed) {
      layer_on(LAYER_UPPER);
      breathing_period_set(2);
      breathing_pulse();
      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
    }
    else
    {
    } else {
      layer_off(LAYER_UPPER);
      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
    }
    break;
    return false;

  case MACRO_LOWER:
    if (record->event.pressed)
    {
  case M_LOWER:
    if (record->event.pressed) {
      layer_on(LAYER_LOWER);
      breathing_period_set(2);
      breathing_pulse();
      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
    }
    else
    {
    } else {
      layer_off(LAYER_LOWER);
      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
    }
    break;

  case MACRO_FUNCTION:
    if (record->event.pressed)
    {
      breathing_period_set(3);
      breathing_enable();
      layer_on(LAYER_FUNCTION);
    }
    else
    {
      breathing_period_set(1);
      breathing_self_disable();
      layer_off(LAYER_FUNCTION);
    }
    break;
    return false;

#ifdef MOUSEKEY_ENABLE

  case MACRO_MOUSE:
    if (record->event.pressed)
    {
  case M_MOUSE:
    if (record->event.pressed) {
      layer_invert(LAYER_MOUSE);
    }
    break;

    return false;
#endif /* MOUSEKEY_ENABLE */

#ifdef AUDIO_ENABLE

  case MACRO_TIMBRE_1:
  case TIMBR_1:
    if (record->event.pressed) set_timbre(TIMBRE_12);
    break;

  case MACRO_TIMBRE_2:
    return false;
  case TIMBR_2:
    if (record->event.pressed) set_timbre(TIMBRE_25);
    break;

  case MACRO_TIMBRE_3:
    return false;
  case TIMBR_3:
    if (record->event.pressed) set_timbre(TIMBRE_50);
    break;

  case MACRO_TIMBRE_4:
    return false;
  case TIMBR_4:
    if (record->event.pressed) set_timbre(TIMBRE_75);
    break;

  case MACRO_TEMPO_U:
    return false;
  case TMPO_UP:
    if (record->event.pressed) increase_tempo(10);
    break;

  case MACRO_TEMPO_D:
    return false;
  case TMPO_DN:
    if (record->event.pressed) decrease_tempo(10);
    break;

  case MACRO_TONE_DEFAULT:
    if (record->event.pressed)
    {
    return false;
  case TMPO_DF:
    if (record->event.pressed) {
      set_timbre(TIMBRE_DEFAULT);
      set_tempo(TEMPO_DEFAULT);
    }
    break;

    return false;
#endif /* AUDIO_ENABLE */

#ifdef BACKLIGHT_ENABLE
  case MACRO_BACKLIGHT:
    if (record->event.pressed)
    {
      backlight_step();
    }
  break;
#endif /* BACKLIGHT_ENABLE */

  default:
    break;

}
return MACRO_NONE;
    return true;
  }
  return true;
};

#ifdef AUDIO_ENABLE

M keyboards/xd60/keymaps/default/keymap.c => keyboards/xd60/keymaps/default/keymap.c +0 -14
@@ 20,20 20,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// Macros
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};

// Loop
void matrix_scan_user(void) {
  // Empty

M keyboards/xd60/keymaps/iso/keymap.c => keyboards/xd60/keymaps/iso/keymap.c +0 -14
@@ 24,20 24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

// Macros
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};

// Loop
void matrix_scan_user(void) {
  // Empty

M keyboards/xd60/keymaps/split_bksp_arrows/keymap.c => keyboards/xd60/keymaps/split_bksp_arrows/keymap.c +0 -14
@@ 38,20 38,6 @@ const uint16_t PROGMEM fn_actions[] = {
    [0] = ACTION_LAYER_MOMENTARY(1),  // to Function Layer
};

// Macros
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {

  // MACRODOWN only works in this function
  switch(id) {
    case 0:
      if (record->event.pressed) { register_code(KC_RSFT); }
      else { unregister_code(KC_RSFT); }
      break;
  }

  return MACRO_NONE;
};

// Loop
void matrix_scan_user(void) {
  // Empty

M layouts/community/ergodox/reset_eeprom/keymap.c => layouts/community/ergodox/reset_eeprom/keymap.c +0 -18
@@ 60,24 60,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    )
};

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
  // MACRODOWN only works in this function
      switch(id) {
        case 0:
        if (record->event.pressed) {
          SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
        }
        break;
        case 1:
        if (record->event.pressed) { // For resetting EEPROM
          eeconfig_init();
        }
        break;
      }
    return MACRO_NONE;
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    // dynamically generate these.