const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { dprintf( "record.\n" " event.pressed = %u\n" " tap.count = %u\n" " tap.interrupted = %u\n" , record->event.pressed , record->tap.count , record->tap.interrupted ); dprintf( "id = %u\n", id ); dprintf( "opt = %u\n", opt ); switch(id) { case UM_MHEN: { return MACRO_TAP_HOLD_LAYER( record, MACRO(TYPE(KC_MHEN), END), KL_LOWER ); } break; case UM_HENK: { return MACRO_TAP_HOLD_LAYER( record, MACRO(TYPE(KC_HENK), END), KL_RAISE ); } break; case UM_DEBUG: { if (record->event.pressed) { debug_enable = !debug_enable; if (debug_enable) { dprint("\nDEBUG: enabled.\n"); SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } } } break; } return MACRO_NONE; };
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case M_ALT_HASH: return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 3, LALT); case M_GR_DASH: { const macro_t* macro = MACRO_TAP_HOLD_LAYER(record, MACRO(T(MINS)), _GR); update_tri_layer(_NUM, _GR, _ADJ); return macro; } case M_SYM_LPRN: return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 9, _SYM); case M_NAV_UNDS: return MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, MINS, _NAV); case M_NUM_RPRN: { const macro_t* macro = MACRO_TAP_SHFT_KEY_HOLD_LAYER(record, 0, _NUM); update_tri_layer(_NUM, _GR, _ADJ); return macro; } case M_CTRL_DLR: return MACRO_TAP_SHFT_KEY_HOLD_MOD(record, 4, LCTL); case M_LCBR_ENT: return MACRODOWN(I(10), D(LSFT), T(LBRC), U(LSFT), T(ENT), END); case M_PLOVER: if (record->event.pressed) { layer_and(0); layer_on(_PLOVER); default_layer_set(_PLOVER); // Starts plover return MACRO(I(10), D(E), D(R), D(F), D(V), D(I), D(K), U(E), U(R), U(F), U(V), U(I), U(K), END); } break; case M_EXT_PLV: if (!record->event.pressed) { layer_off(_PLOVER); default_layer_set(_COLEMAK); //Pauses plover return MACRO(I(10), D(E), D(R), D(F), D(V), D(Y), D(U), U(E), U(R), U(F), U(V), U(Y), U(U), END); } break; case M_WINDOWS: set_unicode_input_mode(UC_WIN); break; case M_LINUX: set_unicode_input_mode(UC_LNX); break; case M_OSX: set_unicode_input_mode(UC_OSX); break; case M_FUNCTION: if (record->event.pressed) { SEND_STRING("function"); } break; case M_THEN: if (record->event.pressed) { SEND_STRING("then"); } break; case M_CATCH: if (record->event.pressed) { SEND_STRING("catch"); } break; } return MACRO_NONE; };