]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/thevankeyboards/minivan/keymaps/mjt/keymap.c
Remove redundant KC_TRNS and KC_NO fillers in remaining keymaps (#5154)
[qmk_firmware.git] / keyboards / thevankeyboards / minivan / keymaps / mjt / keymap.c
1 //Author: mike terhar
2 #include QMK_KEYBOARD_H
3
4 #ifdef BACKLIGHT_ENABLE
5   #include "backlight.h"
6 #endif
7
8 enum minivan_layers {
9   _QWERTY,
10   _NUMSYM,
11   _FKEYS,
12   _FKEYGRV,
13   _PLOVER,
14   _ADJUST
15 };
16
17 enum planck_keycodes {
18   QWERTY = SAFE_RANGE,
19   DYNKEY,
20   DYNAMIC_MACRO_RANGE,
21 };
22
23 #define FKEYS F(_FKEYS)
24 #define NUMSYM F(_NUMSYM)
25 #define FKEYGRV F(_FKEYGRV)
26 #define MACSLEEP M(5)
27 #define PLOVER M(6)
28 #define LAYERRESET M(7)
29 #define BACKLIT M(8)
30 #define ADJUST M(9)
31
32 #include "dynamic_macro.h"
33
34 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35 [_QWERTY] = {
36   {FKEYS, KC_Q,   KC_W,   KC_E, KC_R,   KC_T,   KC_Y,   KC_U, KC_I,   KC_O,  KC_P,   KC_BSPC},
37   {KC_ESC, KC_A,   KC_S,   KC_D, KC_F,   KC_G,   KC_H,   KC_J, KC_K,   KC_L,  KC_SCLN,KC_QUOT},
38   {KC_LSFT,KC_Z,   KC_X,   KC_C, KC_V,   KC_B,   KC_N,   KC_M, KC_COMM,KC_DOT,KC_SLSH,SFT_T(KC_ENT) },
39   {KC_LCTL,KC_LALT,KC_LGUI, KC_SPC,XXXXXXX,XXXXXXX,XXXXXXX,NUMSYM,KC_LEFT,KC_DOWN,KC_UP ,KC_RIGHT}
40 },
41 [_NUMSYM] = {
42   {FKEYGRV,  KC_1,  KC_2,    KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,  _______},
43   {KC_DEL,KC_EXLM, KC_AT,  KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, ADJUST },
44   { _______,  KC_UNDS,KC_PLUS, KC_LCBR,KC_RCBR,KC_PIPE , KC_MINS,KC_EQL,KC_LBRC, KC_RBRC, KC_BSLS, _______},
45   {_______,_______,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,_______,    KC_HOME, KC_PGDN, KC_PGUP, KC_END}
46 },
47 [_FKEYS] ={
48   {_______, KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5, KC_F6, KC_F7,  KC_F8,  KC_F9,  KC_F10, _______},
49   {KC_DEL, KC_F11, KC_F12,  KC_F13,  KC_F14,  KC_F15, _______, _______,  _______,  MACSLEEP, DYN_REC_START1, DYN_REC_START2 },
50   {KC_CAPS,  _______, _______,  _______,  _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2,_______,DYN_REC_STOP},
51   {_______,_______,_______,LAYERRESET,XXXXXXX,XXXXXXX,XXXXXXX,LAYERRESET,    KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
52 },
53 [_PLOVER] = {
54   {KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   },
55   {XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC},
56   {XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT},
57   {LAYERRESET, XXXXXXX, KC_C,    KC_V,   XXXXXXX ,  XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX}
58 },
59 [_ADJUST] = {
60  {_______ , RESET,   _______, _______, _______, _______, _______, _______, KC_SLCK, KC_PAUS, KC_PSCR, KC_DEL },
61  {_______ , _______, _______, _______, _______,  AG_NORM, AG_SWAP, QWERTY,  _______, MACSLEEP,  PLOVER, _______},
62  {_______ , _______,  _______,  _______,   _______,  _______,   _______,  _______, _______, _______, _______, _______},
63  {BACKLIT, _______, _______, LAYERRESET, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______}
64 }
65 };
66
67 #ifdef AUDIO_ENABLE
68
69 float tone_startup[][2]           = SONG(STARTUP_SOUND);
70 float tone_qwerty[][2]            = SONG(QWERTY_SOUND);
71 float tone_dyn_macro_rec[][2]     = SONG(DVORAK_SOUND);
72 float tone_dyn_macro_play[][2]    = SONG(COLEMAK_SOUND);
73 float tone_plover[][2]            = SONG(PLOVER_SOUND);
74 float tone_adjust[][2]            = SONG(PLOVER_GOODBYE_SOUND);
75 float music_scale[][2]            = SONG(MUSIC_SCALE_SOUND);
76
77 float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
78 #endif
79
80 void persistant_default_layer_set(uint16_t default_layer) {
81   eeconfig_update_default_layer(default_layer);
82   default_layer_set(default_layer);
83 }
84
85 const uint16_t PROGMEM fn_actions[] = {
86  [_FKEYS] = ACTION_LAYER_TAP_KEY(_FKEYS, KC_TAB),
87  [_FKEYGRV] = ACTION_LAYER_TAP_KEY(_FKEYS, KC_GRV),
88  [_NUMSYM] = ACTION_LAYER_TAP_TOGGLE(_NUMSYM),
89 };
90
91 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
92 {
93       switch(id) {
94         case 5: // MACSLEEP
95             if (record->event.pressed) {
96               register_code(KC_RSFT);
97               register_code(KC_RCTL);
98               register_code(KC_POWER);
99               unregister_code(KC_POWER);
100               unregister_code(KC_RCTL);
101               unregister_code(KC_RSFT);
102             }
103         break;
104         case 6: // PLOVER
105               if (record->event.pressed) {
106               #ifdef AUDIO_ENABLE
107                 stop_all_notes();
108                 PLAY_NOTE_ARRAY(tone_plover, false, 0);
109               #endif
110               layer_off(_NUMSYM);
111               layer_off(_FKEYS);
112               layer_off(_ADJUST);
113               layer_on(_PLOVER);
114             }
115         break;
116         case 7: // LAYERRESET
117               if (record->event.pressed) {
118               #ifdef AUDIO_ENABLE
119                 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
120               #endif
121               layer_off(_NUMSYM);
122               layer_off(_FKEYS);
123               layer_off(_PLOVER);
124               layer_off(_ADJUST);
125             }
126         break;
127         case 8: // BACKLIT
128           if (record->event.pressed) {
129             register_code(KC_RSFT);
130             #ifdef BACKLIGHT_ENABLE
131               backlight_step();
132             #endif
133           } else {
134             unregister_code(KC_RSFT);
135           }
136         break;
137         case 9: // ADJUST
138           if(record->event.pressed) {
139             #ifdef AUDIO_ENABLE
140               stop_all_notes();
141               PLAY_NOTE_ARRAY(tone_adjust, false, 0);
142             #endif
143             layer_off(_NUMSYM);
144             layer_off(_FKEYS);
145             layer_off(_PLOVER);
146             layer_on(_ADJUST);
147           }
148       }
149     return MACRO_NONE;
150 };
151
152 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
153   uint16_t macro_kc = keycode;
154   if (keycode == FKEYS || keycode == ADJUST || keycode == FKEYGRV ){
155     macro_kc = DYN_REC_STOP;
156   }
157   if (!process_record_dynamic_macro(macro_kc, record)) {
158     return false;
159   }
160
161   return true;
162 }
163
164 void matrix_init_user(void) {
165     #ifdef AUDIO_ENABLE
166         startup_user();
167     #endif
168 }
169
170 #ifdef AUDIO_ENABLE
171
172 void startup_user()
173 {
174     _delay_ms(20); // gets rid of tick
175     PLAY_NOTE_ARRAY(tone_startup, false, 0);
176 }
177
178 void shutdown_user()
179 {
180     PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
181     _delay_ms(150);
182     stop_all_notes();
183 }
184
185 void music_on_user(void)
186 {
187     music_scale_user();
188 }
189
190 void music_scale_user(void)
191 {
192     PLAY_NOTE_ARRAY(music_scale, false, 0);
193 }
194 #endif