const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case _L3: if (record->event.pressed) { persistent_default_layer_set(1UL<<_L3); } break; case _L2: if (record->event.pressed) { persistent_default_layer_set(1UL<<_L2); } break; case _L1: if (record->event.pressed) { persistent_default_layer_set(1UL<<_L1); } break; case _NP: if (record->event.pressed) { persistent_default_layer_set(1UL<<_NP); } break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); #endif persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_colemak); #endif persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_dvorak); #endif persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); } else { layer_off(_ADJUST); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case DVORAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case WOW: if (record->event.pressed) { persistent_default_layer_set(1UL<<_WOW); } return false; break; case DESTINY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DESTINY); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; } return true; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif } else { unregister_code(KC_RSFT); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case DVORAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case GAME: if (record->event.pressed) { persistent_default_layer_set(1UL<<_GAME); } return false; break; case LEFTY: if (record->event.pressed) { layer_on(_LEFTY); update_tri_layer(_LEFTY, _RIGHTY, _DUAL); } else { layer_off(_LEFTY); update_tri_layer(_LEFTY, _RIGHTY, _DUAL); } return false; break; case RIGHTY: if (record->event.pressed) { layer_on(_RIGHTY); update_tri_layer(_LEFTY, _RIGHTY, _DUAL); } else { layer_off(_RIGHTY); update_tri_layer(_LEFTY, _RIGHTY, _DUAL); } return false; break; case DUAL: if (record->event.pressed) { layer_on(_DUAL); } else { layer_off(_DUAL); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case NERD: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_nerd); #endif persistent_default_layer_set(1UL<<_NERD); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; } return true; }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case _QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } break; case _NUMPAD: if (record->event.pressed) { persistent_default_layer_set(1UL<<_NUMPAD); } break; case _LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case _RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif } else { unregister_code(KC_RSFT); } break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); } else { layer_off(_LOWER); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); } else { layer_off(_RAISE); } return false; break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); } else { layer_off(_ADJUST); } return false; break; case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); RGB_current_mode = rgblight_config.mode; } #endif return false; break; case RGBRST: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); RGB_current_mode = rgblight_config.mode; } #endif break; } return true; }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { case _DV: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DV); } break; case _QW: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QW); } break; case _CM: if (record->event.pressed) { persistent_default_layer_set(1UL<<_CM); } break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); } else { layer_off(_ADJUST); } return false; break; case ADMIN: if (record->event.pressed) { SEND_STRING("Administrator"); } return false; break; case SMSPC1: if (record->event.pressed) { SEND_STRING("Simspace1!"); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case COLE: if (record->event.pressed) { persistent_default_layer_set(1UL << _COLE); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _AUX); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _AUX); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _AUX); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _AUX); } return false; break; case AUX: if (record->event.pressed) { layer_on(_AUX); } else { layer_off(_AUX); } return false; break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case DVORAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; } return true; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif persistent_default_layer_set(1UL<<_QWERTY); } break; return false; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistent_default_layer_set(1UL<<_COLEMAK); } break; return false; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif persistent_default_layer_set(1UL<<_DVORAK); } break; return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; return false; case RAISE: if (record->event.pressed) { layer_on(_RAISE); #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; return false; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif } else { unregister_code(KC_RSFT); } break; return false; case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE stop_all_notes(); PLAY_NOTE_ARRAY(tone_plover, false, 0); #endif layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); } keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; eeconfig_update_keymap(keymap_config.raw); } break; return false; case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); #endif layer_off(_PLOVER); } break; return false; case RGBLED_TOGGLE: //led operations if (record->event.pressed) { rgblight_toggle(); } return false; break; case RGBLED_INCREASE_HUE: if (record->event.pressed) { rgblight_increase_hue(); } return false; break; case RGBLED_DECREASE_HUE: if (record->event.pressed) { rgblight_decrease_hue(); } return false; break; case RGBLED_INCREASE_SAT: if (record->event.pressed) { rgblight_increase_sat(); } return false; break; case RGBLED_DECREASE_SAT: if (record->event.pressed) { rgblight_decrease_sat(); } return false; break; case RGBLED_INCREASE_VAL: if (record->event.pressed) { rgblight_increase_val(); } return false; break; case RGBLED_DECREASE_VAL: if (record->event.pressed) { rgblight_decrease_val(); } return false; break; case RGBLED_STEP_MODE: if (record->event.pressed) { rgblight_step(); } return false; break; } return true; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { // dynamically generate these. case EPRM: if (record->event.pressed) { eeconfig_init(); } return false; break; case VRSN: if (record->event.pressed) { SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } return false; break; case RGB_SLD: if (record->event.pressed) { rgblight_mode(1); } return false; break; case RGB_0000FF: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0x00,0x00,0xff); #endif } return false; break; case RGB_008000: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0x00,0x80,0x00); #endif } return false; break; case RGB_FF0000: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0xff,0x00,0x00); #endif } return false; break; case RGB_800080: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0x80,0x00,0x80); #endif } return false; break; case RGB_00FF90: if (record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0x00,0xff,0x90); #endif } return false; break; case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them if (record->event.pressed) { uint8_t dtime; for (dtime = 0; dtime < 4; dtime++) { diablo_key_time[dtime] = diablo_times[0]; } } return false; break; case KC_QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL << QWERTY); } return false; break; case KC_COLEMAK: if (record->event.pressed) { persistent_default_layer_set(1UL << COLEMAK); } return false; break; case KC_DVORAK: if (record->event.pressed) { persistent_default_layer_set(1UL << DVORAK); } return false; break; case KC_WORKMAN: if (record->event.pressed) { persistent_default_layer_set(1UL << WORKMAN); } return false; break; case KC_MAKEQMK: if (record->event.pressed) { SEND_STRING("make ergodox_ez:drashna-custom:teensy"SS_TAP(X_ENTER)); } return false; break; } return true; }
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_HELP_1: if (record->event.pressed) { uprintf("1"); } break; case MACRO_HELP_2: if (record->event.pressed) { uprintf("2"); } break; case MACRO_HELP_3: if (record->event.pressed) { uprintf("3"); } break; case MACRO_HELP_4: if (record->event.pressed) { uprintf("4"); } break; case MACRO_HELP_5: if (record->event.pressed) { uprintf("5"); } break; case MACRO_HELP_6: if (record->event.pressed) { uprintf("6"); } break; case MACRO_HELP_7: if (record->event.pressed) { uprintf("7"); } break; case MACRO_HELP_8: if (record->event.pressed) { uprintf("8"); } break; case MACRO_HELP_9: if (record->event.pressed) { uprintf("9"); } 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; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { breathing_period_dec(); } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { breathing_defaults(); } break; case MACRO_QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<LAYER_QWERTY); } break; case MACRO_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 { layer_off(LAYER_UPPER); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; case MACRO_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 { 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; #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: if (record->event.pressed) { layer_invert(LAYER_MOUSE); } break; #endif /* MOUSEKEY_ENABLE */ #ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; case MACRO_TIMBRE_2: if (record->event.pressed) set_timbre(TIMBRE_25); break; case MACRO_TIMBRE_3: if (record->event.pressed) set_timbre(TIMBRE_50); break; case MACRO_TIMBRE_4: if (record->event.pressed) set_timbre(TIMBRE_75); break; case MACRO_TEMPO_U: if (record->event.pressed) increase_tempo(10); break; case MACRO_TEMPO_D: if (record->event.pressed) decrease_tempo(10); break; case MACRO_TONE_DEFAULT: if (record->event.pressed) { set_timbre(TIMBRE_DEFAULT); set_tempo(TEMPO_DEFAULT); } break; /* case MACRO_AUDIO_TOGGLE: if (record->event.pressed) { if (is_audio_on()) { audio_off(); } else { audio_on(); PLAY_SONG(tone_audio_on); } } break; case MACRO_MUSIC_TOGGLE: if (record->event.pressed) { if (IS_LAYER_ON(LAYER_MUSIC)) { layer_off(LAYER_MUSIC); stop_all_notes(); } else { PLAY_SONG(tone_music_on); layer_on(LAYER_MUSIC); } } break; case MACRO_INC_VOICE: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_iterate(); PLAY_SONG(music_scale); #endif } break; case MACRO_DEC_VOICE: if (record->event.pressed) { #ifdef AUDIO_ENABLE voice_deiterate(); PLAY_SONG(music_scale); #endif } break; */ #endif /* AUDIO_ENABLE */ #ifdef BACKLIGHT_ENABLE case MACRO_BACKLIGHT: if (record->event.pressed) { backlight_step(); } #endif default: break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { switch(keycode) { case NORMAN: #ifdef AUDIO_ENABLE PLAY_SONG(tone_norman); #endif persistent_default_layer_set(1UL<<_NORMAN); return false; case LOWER: layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); return false; case RAISE: layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); return false; case ADJUST: layer_on(_ADJUST); return false; case SH_LOG: // Open Jira log work window SEND_STRING(SS_TAP(X_DOT)); _delay_ms(100); SEND_STRING("log work"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; case SH_GOUP: // Go up a directory SEND_STRING("cd .."SS_TAP(X_ENTER)); return false; case SH_TERM: // Open Terminal SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))); _delay_ms(100); SEND_STRING("terminal"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; case SPOT: // Open Spotify SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))); _delay_ms(100); SEND_STRING("spotify app"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; case SLACK: // Open Slack SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))); _delay_ms(100); SEND_STRING("slack"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; case OUTLOOK: // Open MS Outlook SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))); _delay_ms(100); SEND_STRING("outlook"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; case CHROME: // Open Chrome SEND_STRING(SS_LGUI(SS_TAP(X_SPACE))); _delay_ms(100); SEND_STRING("chrome"); _delay_ms(100); SEND_STRING(SS_TAP(X_ENTER)); return false; } } else { switch(keycode) { case LOWER: layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); return false; case RAISE: layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); return false; case ADJUST: layer_off(_ADJUST); return false; } } return true; }
// Defines actions tor my global custom keycodes. Defined in drashna.h file // Then runs the _keymap's recod handier if not processed here bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef CONSOLE_ENABLE xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed); #endif #ifdef AUDIO_ENABLE if (faux_click_enabled) { if (record->event.pressed) { PLAY_SONG(fauxclicky_pressed); } else { stop_note(NOTE_A6); PLAY_SONG(fauxclicky_released); } } #endif switch (keycode) { case KC_QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); #endif persistent_default_layer_set(1UL << _QWERTY); } return false; break; case KC_COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_colemak); #endif persistent_default_layer_set(1UL << _COLEMAK); } return false; break; case KC_DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_dvorak); #endif persistent_default_layer_set(1UL << _DVORAK); } return false; break; case KC_WORKMAN: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_workman); #endif persistent_default_layer_set(1UL << _WORKMAN); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); } else { layer_off(_ADJUST); } return false; break; #if !(defined(KEYBOARD_orthodox_rev1) || defined(KEYBOARD_orthodox_rev3) || defined(KEYBOARD_ergodox_ez)) case KC_OVERWATCH: if (record->event.pressed) { is_overwatch = !is_overwatch; } #ifdef RGBLIGHT_ENABLE is_overwatch ? rgblight_mode(17) : rgblight_mode(18); #endif return false; break; case KC_SALT: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Salt, salt, salt..."); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_MORESALT: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Please sir, can I have some more salt?!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_SALTHARD: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Your salt only makes me harder, and even more aggressive!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_GOODGAME: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Good game, everyone!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_GLHF: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Good luck, have fun!!!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_SYMM: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("Left click to win!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_JUSTGAME: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games."); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_TORB: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("That was positively riveting!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_AIM: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("That aim is absolutely amazing. It's almost like you're a machine!" SS_TAP(X_ENTER)); wait_ms(3000); register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); SEND_STRING("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!" SS_TAP(X_ENTER)); } return false; break; case KC_C9: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("OMG!!! C9!!!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; case KC_GGEZ: if (!record->event.pressed) { register_code(is_overwatch ? KC_BSPC : KC_ENTER); unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); SEND_STRING("That was a fantastic game, though it was a bit easy. Try harder next time!"); register_code(KC_ENTER); unregister_code(KC_ENTER); } return false; break; #endif #ifdef TAP_DANCE_ENABLE case KC_DIABLO_CLEAR: // reset all Diable timers, disabling them if (record->event.pressed) { uint8_t dtime; for (dtime = 0; dtime < 4; dtime++) { diablo_key_time[dtime] = diablo_times[0]; } } return false; break; #endif case KC_MAKE: if (!record->event.pressed) { SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) ":dfu" #elif defined(BOOTLOADER_HALFKAY) ":teensy" //#elif defined(BOOTLOADER_CATERINA) // ":avrdude" #endif SS_TAP(X_ENTER)); } return false; break; case KC_RESET: if (!record->event.pressed) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0xff, 0x00, 0x00); #endif reset_keyboard(); } return false; break; case EPRM: if (record->event.pressed) { eeconfig_init(); } return false; break; case VRSN: if (record->event.pressed) { SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } return false; break; case KC_SECRET_1 ... KC_SECRET_5: if (!record->event.pressed) { send_string_P(secret[keycode - KC_SECRET_1]); } return false; break; case KC_FXCL: if (!record->event.pressed) { faux_click_enabled = !faux_click_enabled; } return false; break; case KC_RGB_T: // Because I want the option to go back to normal RGB mode rather than always layer indication #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgb_layer_change = !rgb_layer_change; } #endif return false; break; #ifdef RGBLIGHT_ENABLE case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions if (record->event.pressed) { //This disrables layer indication, as it's assumed that if you're changing this ... you want that disabled rgb_layer_change = false; } return true; break; #endif } return process_record_keymap(keycode, record); }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case COLEMAK: if(record->event.pressed){ persistent_default_layer_set(1UL<<_COLEMAK); #ifdef AUDIO_ENABLE PLAY_SONG(tone_colemak); #endif } return false; break; case SWCOLE: if(record->event.pressed){ persistent_default_layer_set(1UL<<_SWCOLE); #ifdef AUDIO_ENABLE PLAY_SONG(tone_swcole); #endif } return false; break; case RAISE: if(record->event.pressed){ layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case LOWER: if(record->event.pressed){ layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case SHFT_CAP: if(record->event.pressed){ key_timer = timer_read(); // if the key is being pressed, we start the timer. register_code(KC_LSHIFT); } else { // this means the key was just released (tap or "held down") if(timer_elapsed(key_timer) < 152){ // Time in ms, the threshold we pick for counting something as a tap. tap(KC_CAPS); if(caps_status == 0){ caps_status = 1; #ifdef AUDIO_ENABLE PLAY_SONG(tone_capslock_on); #endif } else { caps_status = 0; #ifdef AUDIO_ENABLE PLAY_SONG(tone_capslock_off); #endif } } unregister_code(KC_LSHIFT); } return false; break; case CTRLB: // Control-B on tap (bold) if(record->event.pressed){ key_timer = timer_read(); // if the key is being pressed, we start the timer. register_code(KC_LCTL); } else { // this means the key was just released (tap or "held down") if (timer_elapsed(key_timer) < 152) { // Time in ms, the threshold we pick for counting something as a tap. tap(KC_B); #ifdef AUDIO_ENABLE PLAY_SONG(tone_ctrl_mod); #endif #ifdef BACKLIGHT_BREATHING breathing_period_set(2); breathing_pulse(); #endif } unregister_code(KC_LCTL); } return false; break; case CPYPST: // One key copy/paste if(record->event.pressed){ key_timer = timer_read(); } else { if (timer_elapsed(key_timer) > 152) { // Hold, copy register_code(KC_LCTL); tap(KC_C); unregister_code(KC_LCTL); #ifdef AUDIO_ENABLE PLAY_SONG(tone_copy); #endif } else { // Tap, paste register_code(KC_LCTL); tap(KC_V); unregister_code(KC_LCTL); #ifdef AUDIO_ENABLE PLAY_SONG(tone_paste); #endif } } return false; break; #ifdef UNICODE_ENABLE case UNIWIN: if(record->event.pressed){ set_unicode_input_mode(UC_WIN); #ifdef AUDIO_ENABLE PLAY_SONG(uniwin); #endif } return false; break; case UNILIN: if(record->event.pressed){ set_unicode_input_mode(UC_LNX); #ifdef AUDIO_ENABLE PLAY_SONG(unilin); #endif } return false; break; case DISFACE: // ಠ_ಠ if(record->event.pressed){ process_unicode((0x0CA0|QK_UNICODE), record); // Eye register_code(KC_RSFT); tap(KC_MINS); unregister_code(KC_RSFT); process_unicode((0x0CA0|QK_UNICODE), record); // Eye } return false; break; case TFLIP: // (╯°□°)╯ ︵ ┻━┻ if(record->event.pressed){ register_code(KC_RSFT); tap(KC_9); unregister_code(KC_RSFT); process_unicode((0x256F|QK_UNICODE), record); // Arm process_unicode((0x00B0|QK_UNICODE), record); // Eye process_unicode((0x25A1|QK_UNICODE), record); // Mouth process_unicode((0x00B0|QK_UNICODE), record); // Eye register_code(KC_RSFT); tap(KC_0); unregister_code(KC_RSFT); process_unicode((0x256F|QK_UNICODE), record); // Arm tap(KC_SPC); process_unicode((0x0361|QK_UNICODE), record); // Flippy tap(KC_SPC); process_unicode((0x253B|QK_UNICODE), record); // Table process_unicode((0x2501|QK_UNICODE), record); // Table process_unicode((0x253B|QK_UNICODE), record); // Table } return false; break; case TPUT: // ┬──┬ ノ( ゜-゜ノ) if(record->event.pressed){ process_unicode((0x252C|QK_UNICODE), record); // Table process_unicode((0x2500|QK_UNICODE), record); // Table process_unicode((0x2500|QK_UNICODE), record); // Table process_unicode((0x252C|QK_UNICODE), record); // Table tap(KC_SPC); process_unicode((0x30CE|QK_UNICODE), record); // Arm register_code(KC_RSFT); tap(KC_9); unregister_code(KC_RSFT); tap(KC_SPC); process_unicode((0x309C|QK_UNICODE), record); // Eye tap(KC_MINS); process_unicode((0x309C|QK_UNICODE), record); // Eye process_unicode((0x30CE|QK_UNICODE), record); // Arm register_code(KC_RSFT); tap(KC_0); unregister_code(KC_RSFT); } return false; break; case SHRUG: // ¯\_(ツ)_/¯ if(record->event.pressed){ process_unicode((0x00AF|QK_UNICODE), record); // Hand tap(KC_BSLS); // Arm register_code(KC_RSFT); tap(KC_UNDS); // Arm tap(KC_LPRN); // Head unregister_code(KC_RSFT); process_unicode((0x30C4|QK_UNICODE), record); // Face register_code(KC_RSFT); tap(KC_RPRN); // Head tap(KC_UNDS); // Arm unregister_code(KC_RSFT); tap(KC_SLSH); // Arm process_unicode((0x00AF|QK_UNICODE), record); // Hand } return false; break; #endif case FACE: // (o_O) if(record->event.pressed){ register_code(KC_RSFT); tap(KC_LPRN); unregister_code(KC_RSFT); tap(KC_O); register_code(KC_RSFT); tap(KC_UNDS); tap(KC_O); tap(KC_RPRN); unregister_code(KC_RSFT); } return false; break; case RANDIG: if (record->event.pressed) { tap_random_base64(); } return false; break; } return true; };
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: 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) { 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_speed_inc(1); } break; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { breathing_speed_dec(1); } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { breathing_defaults(); } break; case MACRO_QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<LAYER_QWERTY); } break; case MACRO_UPPER: if (record->event.pressed) { layer_on(LAYER_UPPER); breathing_speed_set(2); breathing_pulse(); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { layer_off(LAYER_UPPER); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; case MACRO_LOWER: if (record->event.pressed) { layer_on(LAYER_LOWER); breathing_speed_set(2); breathing_pulse(); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { layer_off(LAYER_LOWER); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; case MACRO_FUNCTION: if (record->event.pressed) { breathing_speed_set(3); breathing_enable(); layer_on(LAYER_FUNCTION); } else { breathing_speed_set(1); breathing_self_disable(); layer_off(LAYER_FUNCTION); } break; #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: if (record->event.pressed) { layer_invert(LAYER_MOUSE); } break; #endif /* MOUSEKEY_ENABLE */ #ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; case MACRO_TIMBRE_2: if (record->event.pressed) set_timbre(TIMBRE_25); break; case MACRO_TIMBRE_3: if (record->event.pressed) set_timbre(TIMBRE_50); break; case MACRO_TIMBRE_4: if (record->event.pressed) set_timbre(TIMBRE_75); break; case MACRO_TEMPO_U: if (record->event.pressed) increase_tempo(10); break; case MACRO_TEMPO_D: if (record->event.pressed) decrease_tempo(10); break; case MACRO_TONE_DEFAULT: if (record->event.pressed) { set_timbre(TIMBRE_DEFAULT); set_tempo(TEMPO_DEFAULT); } break; #endif /* AUDIO_ENABLE */ #ifdef BACKLIGHT_ENABLE case MACRO_BACKLIGHT: if (record->event.pressed) { backlight_step(); } break; #endif /* BACKLIGHT_ENABLE */ default: break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { static bool lshift = false; static bool rshift = false; static uint8_t layer = 0; lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); layer = biton32(layer_state); #ifdef DOUBLESPACE_LAYER_ENABLE // double-space: send space immediately if any other key depressed before space is released if ((lspace_active ^ rspace_active) && keycode != LSPACE && keycode != RSPACE && record->event.pressed) { if (lspace_active) { if (!lspace_emitted) { register_code(KC_SPC); unregister_code(KC_SPC); } lspace_emitted = true; } if (rspace_active) { if (!rspace_emitted) { register_code(KC_SPC); unregister_code(KC_SPC); } rspace_emitted = true; } } if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC && keycode != XXXXXXX) { if (record->event.pressed) { unregister_code(KC_LALT); } else { register_code(KC_LALT); } } #endif switch (keycode) { #ifdef DOUBLESPACE_LAYER_ENABLE // double-space enter space layer case LSPACE: process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted); return false; break; case RSPACE: process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted); return false; break; #endif // handle greek layer shift case KC_LSFT: case KC_RSFT: ; if (layer == _GREEKU || layer == _GREEKL) { if (record->event.pressed) { layer_on(_GREEKU); layer_off(_GREEKL); } else { if (lshift ^ rshift) { // if only one shift was pressed layer_on(_GREEKL); layer_off(_GREEKU); } } } return true; break; // press both ctrls to activate SYS layer case KC_LCTL: case KC_RCTL: ; bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL); bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL); if (record->event.pressed) { if (lctrl ^ rctrl) { // if only one ctrl was pressed layer_on(_SYS); } } else { layer_off(_SYS); } return true; break; // QWERTZ style comma and dot: semicolon and colon when shifted case KC_COMM: if (record->event.pressed) { if (lshift || rshift) { if (lshift) unregister_code(KC_LSFT); if (rshift) unregister_code(KC_RSFT); register_code(KC_SCLN); unregister_code(KC_SCLN); if (lshift) register_code(KC_LSFT); if (rshift) register_code(KC_RSFT); } else { register_code(KC_COMM); unregister_code(KC_COMM); } } return false; break; case KC_DOT: if (record->event.pressed) { if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT))) { register_code(KC_SCLN); unregister_code(KC_SCLN); } else { register_code(KC_DOT); unregister_code(KC_DOT); } } return false; break; // layout switchers case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; #ifdef LAYOUT_DVORAK case DVORAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DVORAK); } return false; break; #endif #ifdef LAYOUT_COLEMAK case COLEMAK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; #endif #ifdef LAYOUT_WORKMAN case WORKMAN: if (record->event.pressed) { persistent_default_layer_set(1UL<<_WORKMAN); } return false; break; #endif #ifdef LAYOUT_NORMAN case NORMAN: if (record->event.pressed) { persistent_default_layer_set(1UL<<_NORMAN); } return false; break; #endif // only process Fnumber on key release, and only when layer switcher is still pressed. // this is to avoid accidental presses on potentially destructive keys case KC_F1 ... KC_F12: case KC_PAUS: case KC_PSCR: case KC_INS: if (!record->event.pressed && layer == _FUN) { // key released and still in FUN layer register_code(keycode); unregister_code(keycode); } return false; break; // layer switcher // case GREEK: if (record->event.pressed) { if (lshift || rshift) { layer_on(_GREEKU); layer_off(_GREEKL); } else { layer_on(_GREEKL); layer_off(_GREEKU); } } else { layer_off(_GREEKU); layer_off(_GREEKL); } return false; break; // OS switchers case LINUX: set_unicode_input_mode(UC_LNX); #ifdef RGBSPS_ENABLE led_set_unicode_input_mode(); #endif return false; break; case WIN: set_unicode_input_mode(UC_WINC); #ifdef RGBSPS_ENABLE led_set_unicode_input_mode(); #endif return false; break; case OSX: set_unicode_input_mode(UC_OSX); #ifdef RGBSPS_ENABLE led_set_unicode_input_mode(); #endif return false; break; // glow mode changer #ifdef RGBSPS_ENABLE case GLOW: if (record->event.pressed) { glow_mode++; if (glow_mode > GLOW_FULL) { glow_mode = GLOW_NONE; } led_reset(); rgbsps_send(); } return false; break; #endif // faux clicky indicator #ifdef FAUXCLICKY_ENABLE case FC_TOG: #ifdef RGBSPS_ENABLE if (fauxclicky_enabled) { rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); } else { rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); } rgbsps_send(); #endif return true; break; #endif #ifdef RGBSPS_DEMO_ENABLE case RGBDEMO: led_demo(); return false; break; #endif } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { //uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)); switch (keycode) { case DVORAK: if(record->event.pressed) { persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case DESTINY: if(record->event.pressed) { persistent_default_layer_set(1UL<<_DESTINY); } return false; break; case QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if(record->event.pressed) { persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJ); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJ); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJ); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJ); } return false; break; /* Commenting this out since I removed the layer, but I want this in here for reference. case FN: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around //uses another variable that would be set to true after the first time a reactive key is pressed. if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false } else { TOG_STATUS = !TOG_STATUS; #ifdef RGBLIGHT_ENABLE //rgblight_mode(15); #endif } layer_on(_FN); } else { #ifdef RGBLIGHT_ENABLE //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change #endif layer_off(_FN); TOG_STATUS = false; } return false; break; */ case ADJ: if (record->event.pressed) { layer_on(_ADJ); } else { layer_off(_ADJ); } return false; break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released case RGBRST: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); RGB_current_mode = rgblight_config.mode; } #endif break; } return true; }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case DVRK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_DVRK); layer_on(_DVRK); } return false; break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; case SDRK: if (record->event.pressed) { persistent_default_layer_set(1UL<<_SDRK); layer_on(_SDRK); } return false; break; case SLWER: if (record->event.pressed) { layer_on(_SLWER); update_tri_layer(_SLWER, _SRAIS, _ADJUST); } else { layer_off(_SLWER); update_tri_layer(_SLWER, _SRAIS, _ADJUST); } return false; break; case SRAIS: if (record->event.pressed) { layer_on(_SRAIS); update_tri_layer(_SLWER, _SRAIS, _ADJUST); } else { layer_off(_SRAIS); update_tri_layer(_SLWER, _SRAIS, _ADJUST); } return false; break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif } else { unregister_code(KC_RSFT); } return false; break; case BACKTOG: if (record->event.pressed) { #ifdef BACKLIGHT_ENABLE backlight_toggle(); #endif } return false; break; case CUT: //cut macro return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_X), UP(KC_LCTL), END ); case COPY: // copy macro return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_C), UP(KC_LCTL), END ); case PASTE: // paste macro return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END ); } return true; }
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_HELP_1: if (record->event.pressed) { uprintf("1"); } break; case MACRO_HELP_2: if (record->event.pressed) { uprintf("2"); } break; case MACRO_HELP_3: if (record->event.pressed) { uprintf("3"); } break; case MACRO_HELP_4: if (record->event.pressed) { uprintf("4"); } break; case MACRO_HELP_5: if (record->event.pressed) { uprintf("5"); } break; case MACRO_HELP_6: if (record->event.pressed) { uprintf("6"); } break; case MACRO_HELP_7: if (record->event.pressed) { uprintf("7"); } break; case MACRO_HELP_8: if (record->event.pressed) { uprintf("8"); } break; case MACRO_HELP_9: if (record->event.pressed) { uprintf("9"); } break; case MACRO_BREATH_TOGGLE: if (record->event.pressed) { #ifdef BACKLIGHT_BREATHING breathing_toggle(); #endif } break; case MACRO_BREATH_SPEED_INC: if (record->event.pressed) { #ifdef BACKLIGHT_BREATHING breathing_period_inc(); #endif } break; case MACRO_BREATH_SPEED_DEC: if (record->event.pressed) { #ifdef BACKLIGHT_BREATHING breathing_period_dec(); #endif } break; case MACRO_BREATH_DEFAULT: if (record->event.pressed) { #ifdef BACKLIGHT_BREATHING breathing_period_default(); #endif } break; case MACRO_QWERTY: if (record->event.pressed) { persistent_default_layer_set(1UL<<LAYER_QWERTY); } break; case MACRO_UPPER: if (record->event.pressed) { layer_on(LAYER_UPPER); #ifdef BACKLIGHT_BREATHING breathing_period_set(2); breathing_pulse(); #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { layer_off(LAYER_UPPER); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; case MACRO_LOWER: if (record->event.pressed) { layer_on(LAYER_LOWER); #ifdef BACKLIGHT_BREATHING breathing_period_set(2); breathing_pulse(); #endif update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else { layer_off(LAYER_LOWER); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; case MACRO_FUNCTION: if (record->event.pressed) { #ifdef BACKLIGHT_BREATHING breathing_period_set(3); breathing_enable(); #endif layer_on(LAYER_FUNCTION); } else { #ifdef BACKLIGHT_BREATHING breathing_period_set(1); breathing_self_disable(); #endif layer_off(LAYER_FUNCTION); } break; #ifdef BACKLIGHT_ENABLE case MACRO_BACKLIGHT: if (record->event.pressed) { backlight_step(); } #endif #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: if (record->event.pressed) { layer_invert(LAYER_MOUSE); } break; case MACRO_MOUSE_MOVE_UL: if (record->event.pressed) { mousekey_on(KC_MS_UP); mousekey_on(KC_MS_LEFT); } else { mousekey_off(KC_MS_UP); mousekey_off(KC_MS_LEFT); } break; case MACRO_MOUSE_MOVE_UR: if (record->event.pressed) { mousekey_on(KC_MS_UP); mousekey_on(KC_MS_RIGHT); } else { mousekey_off(KC_MS_UP); mousekey_off(KC_MS_RIGHT); } break; case MACRO_MOUSE_MOVE_DL: if (record->event.pressed) { mousekey_on(KC_MS_DOWN); mousekey_on(KC_MS_LEFT); } else { mousekey_off(KC_MS_DOWN); mousekey_off(KC_MS_LEFT); } break; case MACRO_MOUSE_MOVE_DR: if (record->event.pressed) { mousekey_on(KC_MS_DOWN); mousekey_on(KC_MS_RIGHT); } else { mousekey_off(KC_MS_DOWN); mousekey_off(KC_MS_RIGHT); } break; #endif /* MOUSEKEY_ENABLE */ #ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; case MACRO_TIMBRE_2: if (record->event.pressed) set_timbre(TIMBRE_25); break; case MACRO_TIMBRE_3: if (record->event.pressed) set_timbre(TIMBRE_50); break; case MACRO_TIMBRE_4: if (record->event.pressed) set_timbre(TIMBRE_75); break; case MACRO_TEMPO_U: if (record->event.pressed) increase_tempo(10); break; case MACRO_TEMPO_D: if (record->event.pressed) decrease_tempo(10); break; case MACRO_TONE_DEFAULT: if (record->event.pressed) { set_timbre(TIMBRE_DEFAULT); set_tempo(TEMPO_DEFAULT); } break; #endif /* AUDIO_ENABLE */ default: break; } return MACRO_NONE; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_qwerty); #endif persistent_default_layer_set(1UL<<_QWERTY); } return false; break; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_colemak); #endif persistent_default_layer_set(1UL<<_COLEMAK); } return false; break; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_SONG(tone_dvorak); #endif persistent_default_layer_set(1UL<<_DVORAK); } return false; break; case LOWER: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around //uses another variable that would be set to true after the first time a reactive key is pressed. if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false } else { TOG_STATUS = !TOG_STATUS; #ifdef RGBLIGHT_ENABLE //rgblight_mode(16); #endif } layer_on(_LOWER); update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } else { #ifdef RGBLIGHT_ENABLE //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change #endif TOG_STATUS = false; layer_off(_LOWER); update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } return false; break; case RAISE: if (record->event.pressed) { //not sure how to have keyboard check mode and set it to a variable, so my work around //uses another variable that would be set to true after the first time a reactive key is pressed. if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false } else { TOG_STATUS = !TOG_STATUS; #ifdef RGBLIGHT_ENABLE //rgblight_mode(15); #endif } layer_on(_RAISE); update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } else { #ifdef RGBLIGHT_ENABLE //rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change #endif layer_off(_RAISE); TOG_STATUS = false; update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST); } return false; break; case ADJUST: if (record->event.pressed) { layer_on(_ADJUST); } else { layer_off(_ADJUST); } return false; break; //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released case RGB_MOD: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { rgblight_mode(RGB_current_mode); rgblight_step(); RGB_current_mode = rgblight_config.mode; } #endif return false; break; case EISU: if (record->event.pressed) { if(keymap_config.swap_lalt_lgui==false){ register_code(KC_LANG2); }else{ SEND_STRING(SS_LALT("`")); } } else { unregister_code(KC_LANG2); } return false; break; case KANA: if (record->event.pressed) { if(keymap_config.swap_lalt_lgui==false){ register_code(KC_LANG1); }else{ SEND_STRING(SS_LALT("`")); } } else { unregister_code(KC_LANG1); } return false; break; case RGBRST: #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { eeconfig_update_rgblight_default(); rgblight_enable(); RGB_current_mode = rgblight_config.mode; } #endif break; } return true; }