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