]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/dz60/keymaps/hailbreno/keymap.c
[Keyboard] Add QMK configurator JSON for Alice PCB (#6397)
[qmk_firmware.git] / keyboards / dz60 / keymaps / hailbreno / keymap.c
1 /*
2 * @Author: hailbreno
3 * @Date:   2018-04-30 14:32:13
4 * @Last Modified by:   hailbreno
5 * @Last Modified time: 2018-05-03 11:19:34
6 */
7
8 #include QMK_KEYBOARD_H
9
10 #define X KC_NO
11
12 extern keymap_config_t keymap_config;
13
14 enum layers {
15   _QWERTY,
16   _COLEMAK,
17   _DVORAK,
18   _FUNC,
19   _FUNC2,
20   _ADJUST,
21   _RGB
22 };
23
24 enum keycodes {
25   QWERTY = SAFE_RANGE,
26   COLEMAK,
27   DVORAK,
28   FUNC,
29   FUNC2,
30   RGB,
31 };
32
33 /*layout template
34  * ,-----------------------------------------------------------------------------------------.
35  * |     |     |     |     |     |     |     |     |     |     |     |     |     |     |     |
36  * |-----------------------------------------------------------------------------------------+
37  * |        |     |     |     |     |     |     |     |     |     |     |     |     |        |
38  * |-----------------------------------------------------------------------------------------+
39  * |          |     |     |     |     |     |     |     |     |     |     |     |            |
40  * |-----------------------------------------------------------------------------------------+
41  * |           |     |     |     |     |     |     |     |     |     |     |     |     |     |
42  * |-----------------------------------------------------------------------------------------+
43  * |      |      |      |             |      |                 |     |     |     |     |     |
44  * `-----------------------------------------------------------------------------------------'
45
46  [LAYOUT] = LAYOUT_all(
47   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48   _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49   _______,      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,              _______,
50   _______, X,       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51   _______, _______, _______,           _______,        _______,           _______,         _______, _______, _______, _______, _______),
52 */
53
54 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
55
56 /* QWERTY
57  * ,-----------------------------------------------------------------------------------------.
58  * | Esc | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 0   | -   | =   |  \  |  ~  |
59  * |-----------------------------------------------------------------------------------------+
60  * | Tab    | Q   | W   | E   | R   | T   | Y   | U   | I   | O   | P   | [   | ]   |  Del   |
61  * |-----------------------------------------------------------------------------------------+
62  * | Caps     | A   | S   | D   | F   | G   | H   | J   | K   | L   | ;   | '   | Enter      |
63  * |-----------------------------------------------------------------------------------------+
64  * | Shift     | Z   | X   | C   | V   | B   | N   | M   | ,   | .   | /   |Shift| Up  | Bl  |
65  * |-----------------------------------------------------------------------------------------+
66  * | Ctrl | Alt  | Gui  |  Backspace  | Fn2  |      Space      | Alt | App | Left| Down|Right|
67  * `-----------------------------------------------------------------------------------------'
68  */
69 [_QWERTY] = LAYOUT_all(
70   KC_ESC,          KC_1,  KC_2,  KC_3,  KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,  KC_0,  KC_MINS,  KC_EQL,  KC_BSLS, KC_GRV,
71   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_DEL,
72   LT(_FUNC,KC_CAPS),   KC_A,  KC_S,  KC_D,  KC_F,  KC_G,  KC_H,  KC_J,  KC_K,  KC_L,  KC_SCLN,  KC_QUOT,             KC_ENT,
73   KC_LSPO, X,         KC_Z,  KC_X,  KC_C,  KC_V,  KC_B,  KC_N,  KC_M,  KC_COMM, KC_DOT,  KC_SLSH,  KC_RSPC,  KC_UP,     RGB,
74   KC_LCTL,            KC_LALT,  KC_LGUI,  KC_BSPC,    FUNC2,   KC_SPC,     KC_RALT,  KC_APP,  KC_LEFT,  KC_DOWN,   KC_RGHT),
75
76 /* COLEMAK
77  * ,-----------------------------------------------------------------------------------------.
78  * | Esc | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 0   | -   | =   | ~   | Del |
79  * |-----------------------------------------------------------------------------------------+
80  * | Tab    | Q   | W   | F   | P   | G   | J   | L   | U   | Y   | ;   | [   | ]   | \      |
81  * |-----------------------------------------------------------------------------------------+
82  * | Caps     | A   | R   | S   | T   | D   | H   | N   | E   | I   | O   | '   | Enter      |
83  * |-----------------------------------------------------------------------------------------+
84  * | Shift     | Z   | X   | C   | V   | B   | K   | M   | ,   | .   | /   |Shift| Up  | Bl  |
85  * |-----------------------------------------------------------------------------------------+
86  * | Ctrl | Alt  | Gui  |  Backspace  | Fn2  |      Space      | Alt | App | Left| Down|Right|
87  * `-----------------------------------------------------------------------------------------'
88  */
89 [_COLEMAK] = LAYOUT_all(
90   KC_ESC,          KC_1,  KC_2,  KC_3,  KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,  KC_0,  KC_MINS,  KC_EQL,  KC_BSLS, KC_GRV,
91   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_DEL,
92   LT(_FUNC,KC_CAPS),   KC_A,  KC_R,  KC_S,  KC_T,  KC_D,  KC_H,  KC_N,  KC_E,  KC_I,  KC_O,  KC_QUOT,                KC_ENT,
93   KC_LSPO, X,         KC_Z,  KC_X,  KC_C,  KC_V,  KC_B,  KC_K,  KC_M,  KC_COMM, KC_DOT,  KC_SLSH,  KC_RSPC,  KC_UP,     RGB,
94   KC_LCTL,            KC_LALT,  KC_LGUI,  KC_BSPC,    FUNC2,   KC_SPC,     KC_RALT,  KC_APP,  KC_LEFT,  KC_DOWN,   KC_RGHT),
95
96 /* DVORAK
97  * ,-----------------------------------------------------------------------------------------.
98  * | Esc | 1   | 2   | 3   | 4   | 5   | 6   | 7   | 8   | 9   | 0   | [   | ]   | ~   | Del |
99  * |-----------------------------------------------------------------------------------------+
100  * | Tab    | "   | ,   | .   | P   | Y   | F   | G   | C   | R   | L   | /   | =   | \      |
101  * |-----------------------------------------------------------------------------------------+
102  * | Bckspc   | A  | O   | E   | U   | I   | D   | H   | T   | N   | S   | -   | Enter       |
103  * |-----------------------------------------------------------------------------------------+
104  * | Shift     | ;   | Q   | J   | K   | X   | B   | M   | W   | V   | Z   |Shift| Up  | Bl  |
105  * |-----------------------------------------------------------------------------------------+
106  * | Ctrl | Alt  | Gui  |  Backspace  | Fn2  |      Space      | Alt | App | Left| Down|Right|
107  * `-----------------------------------------------------------------------------------------'
108  */
109 [_DVORAK] = LAYOUT_all(
110   KC_ESC,         KC_1,  KC_2,  KC_3,  KC_4,  KC_5,  KC_6,  KC_7,  KC_8,  KC_9,  KC_0,  KC_LBRC,  KC_RBRC,  KC_BSLS, KC_GRV,
111   KC_TAB,          KC_QUOTE,  KC_COMM,  KC_DOT,  KC_P,  KC_Y,  KC_F,  KC_G,  KC_C,  KC_R,  KC_L,  KC_SLSH,  KC_EQL,  KC_DEL,
112   LT(_FUNC,KC_CAPS),   KC_A,  KC_O,  KC_E,  KC_U,  KC_I,  KC_D,  KC_H,  KC_T,  KC_N,  KC_S,  KC_MINS,                KC_ENT,
113   KC_LSPO, X,         KC_SCLN,  KC_Q,  KC_J,  KC_K,  KC_X,  KC_B,  KC_M,  KC_W, KC_V,  KC_Z,  KC_RSPC,     KC_UP,       RGB,
114   KC_LCTL,            KC_LALT,  KC_LGUI,  KC_BSPC,    FUNC2,   KC_SPC,      KC_RALT,  KC_APP,  KC_LEFT,  KC_DOWN,  KC_RGHT),
115
116 /* FUNC
117  * ,-----------------------------------------------------------------------------------------.
118  * |     | F1  | F2  | F3  | F4  | F5  | F6  | F7  | F8  | F9  | F10 | F11 | F12 | Prnt| Ins |
119  * |-----------------------------------------------------------------------------------------+
120  * |        |     |     |     |     |     |     |     | Up  |     |     |     |     | Bspc   |
121  * |-----------------------------------------------------------------------------------------+
122  * |          |     |     |     |     |     |     | Left| Down| Rght|     |     |            |
123  * |-----------------------------------------------------------------------------------------+
124  * |           |     |     |     |     |     |     |     |     |     |     |     | PgUp|     |
125  * |-----------------------------------------------------------------------------------------+
126  * |      |      |      |             |      |                 |     |     | Home| PgDn| End |
127  * `-----------------------------------------------------------------------------------------'
128  */
129 [_FUNC] = LAYOUT_all(
130   _______,   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_PSCR,  KC_INS,
131   _______,          _______, _______, _______, _______, _______, _______, KC_PGUP,   KC_UP, KC_PGDN, KC_CIRC, _______, _______, KC_BSPC,
132   _______,      _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_TILD,              _______,
133   _______, X,        _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______, _______, KC_PGUP, _______,
134   _______, _______, _______,           _______,        _______,           _______,          _______, _______, KC_HOME, KC_PGDN, KC_END),
135
136 /* FUNC2
137  * ,-----------------------------------------------------------------------------------------.
138  * |     |     |     |     |     |     |     |     |     |     |     |     |     |     |     |
139  * |-----------------------------------------------------------------------------------------+
140  * |        |     |     |     |     |     |     |     |     |     |     |     |     |        |
141  * |-----------------------------------------------------------------------------------------+
142  * |          |     |     |     |     |     |     |     |     |     |     |     |            |
143  * |-----------------------------------------------------------------------------------------+
144  * |           |     |     |     |     |     |     |     |     |     |     |     |     |     |
145  * |-----------------------------------------------------------------------------------------+
146  * |      |      |      |             |      |                 |     |     |     |     |     |
147  * `-----------------------------------------------------------------------------------------'
148  */
149 [_FUNC2] = LAYOUT_all(
150   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
151   _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
152   _______,      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,              _______,
153   _______, X,       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
154   _______, _______, _______,           _______,        _______,           _______,         _______, _______, _______, _______, _______),
155
156 /* RGB
157  * ,-----------------------------------------------------------------------------------------.
158  * |     |     |     |     |     |     |     |     |     |     |     |     |     |     |     |
159  * |-----------------------------------------------------------------------------------------+
160  * |        |     |     |     |     |     |     |     |     |     |     |     |     |        |
161  * |-----------------------------------------------------------------------------------------+
162  * |          |     |     |     |     |     |     |     |     |     |     |     |            |
163  * |-----------------------------------------------------------------------------------------+
164  * |           |     |     |     |     |     |     |     |     |     |     |     | Tog |     |
165  * |-----------------------------------------------------------------------------------------+
166  * |      |      |      |             |      |                 |     |     |     |     |     |
167  * `-----------------------------------------------------------------------------------------'
168  */
169 [_RGB] = LAYOUT_all(
170   _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, _______,
171   _______,          RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
172   _______,      RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______,              _______,
173   _______, X,       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______,
174   _______, _______, _______,           _______,        _______,           _______,         _______, _______, _______, _______, _______),
175
176 /* Adjust (Func + Func2)
177  * ,-----------------------------------------------------------------------------------------.
178  * |     |     |     |     |     |     |     |     |     |     |     |     |     |     |Reset|
179  * |-----------------------------------------------------------------------------------------+
180  * |        |     |     |     |     |     |     |     |     |     |     |     |     |        |
181  * |-----------------------------------------------------------------------------------------+
182  * |          |     |     |     |     |     |     |     |     |     |     |     |            |
183  * |-----------------------------------------------------------------------------------------+
184  * |           |     |     |     |     |     |     |     |     |     |     |     |     |     |
185  * |-----------------------------------------------------------------------------------------+
186  * |      |      |      |           |      |                |     |     |Qwerty|Colemk|Dvorak|
187  * `-----------------------------------------------------------------------------------------'
188  */
189 [_ADJUST] = LAYOUT_all(
190   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   RESET,
191   _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
192   _______,      _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,              _______,
193   _______, X,       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
194   _______, _______, _______,           _______,        _______,           _______,         _______, _______,  QWERTY, COLEMAK,  DVORAK),
195 };
196
197 #ifdef AUDIO_ENABLE
198   float plover_song[][2]     = SONG(PLOVER_SOUND);
199   float plover_gb_song[][2]  = SONG(PLOVER_GOODBYE_SOUND);
200 #endif
201
202 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
203   switch (keycode) {
204     case QWERTY:
205       if (record->event.pressed) {
206         set_single_persistent_default_layer(_QWERTY);
207       }
208       return false;
209       break;
210     case COLEMAK:
211       if (record->event.pressed) {
212         set_single_persistent_default_layer(_COLEMAK);
213       }
214       return false;
215       break;
216     case DVORAK:
217       if (record->event.pressed) {
218         set_single_persistent_default_layer(_DVORAK);
219       }
220       return false;
221       break;
222     case FUNC:
223       if (record->event.pressed) {
224         layer_on(_FUNC);
225         update_tri_layer(_FUNC, _FUNC2, _ADJUST);
226       } else {
227         layer_off(_FUNC);
228         update_tri_layer(_FUNC, _FUNC2, _ADJUST);
229       }
230       return false;
231       break;
232     case FUNC2:
233       if (record->event.pressed) {
234         layer_on(_FUNC2);
235         update_tri_layer(_FUNC, _FUNC2, _ADJUST);
236       } else {
237         layer_off(_FUNC2);
238         update_tri_layer(_FUNC, _FUNC2, _ADJUST);
239       }
240       return false;
241       break;
242     case RGB:
243       if (record->event.pressed) {
244         layer_on(_RGB);
245       } else {
246         layer_off(_RGB);
247       }
248       return false;
249       break;
250   }
251   return true;
252 }