]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboard/ergodox_ez/keymaps/bepo/keymap.c
Add underscore "_" character in the qwerty compatibility layer.
[qmk_firmware.git] / keyboard / ergodox_ez / keymaps / bepo / keymap.c
1 #include "ergodox_ez.h"
2 #include "debug.h"
3 #include "action_layer.h"
4 #include "keymap_extras/keymap_bepo.h"
5
6 #define BASE 0 // default layer
7 #define QWER 1 // qwerty compat layer
8 #define SQWER 2 // shifted qwerty compat layer
9 #define AQWER 3 // alted qwerty compat layer
10 #define FNX 4 // function keys
11 #define NUM 5 // numeric keypad keys
12 #define NAV 6 // navigation keys
13 #define MSE 7 // mouse keys
14
15 #define KP_00 0
16
17 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
18 /* Keymap 0: Base layer
19  *
20  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
21  * |   $    |   "  |   <  |   >  |   (  |   )  |  Esc |                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
22  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
23  * |   %    |   B  |E_ACUT|   P  |   O  |E_GRAV|Backsp|                                  |CapsLo|   ^  |   V  |   D  |   L  |   J  |   Z    |
24  * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
25  * |   W    |   A  |   U  |   I  |   E  |   ,  |------|                                  |------|   C  |   T  |   S  |   R  |   N  |   M    |
26  * |--------+------+------+------+------+------|Delete|                                  | NumLo|------+------+------+------+------+--------|
27  * | E_CIRC |A_GRAV|   Y  |   X  |   .  |   K  |      |                                  |      |   '  |   Q  |   G  |   H  |   F  | C_CEDIL|
28  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
29  *   |QWERTY|      |LSuper| LCtrl|  LAlt|             |      | L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
30  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
31  *                                             |      |      | L_Num|      |      |      |      |
32  *                                             | Space|  Tab |------|      |------|RShift|Enter |
33  *                                             |      |      | L_Nav|      | L_Fx |      |      |
34  *                                             `--------------------'      `--------------------'
35  */
36 [BASE] = KEYMAP(
37 // Left hand
38 BP_DOLLAR,      BP_DQOT,        BP_LGIL,        BP_RGIL,        BP_LPRN,        BP_RPRN,        KC_ESC,
39 BP_PERCENT,     BP_B,           BP_E_ACUTE,     BP_P,           BP_O,           BP_E_GRAVE,     KC_BSPC,
40 BP_W,           BP_A,           BP_U,           BP_I,           BP_E,           BP_COMMA,
41 BP_ECRC,        BP_A_GRAVE,     BP_Y,           BP_X,           BP_DOT,         BP_K,           KC_DEL,
42 TG(QWER),       KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
43                                                                                                                 KC_NO,          MO(MSE),
44                                                                                                                                 MO(NUM),
45                                                                                                 KC_SPC,         KC_TAB,         MO(NAV),
46 // Right hand
47                                 KC_SLCK,        BP_AT,          BP_PLUS,        BP_MINUS,       BP_SLASH,       BP_ASTR,        BP_EQUAL,
48                                 KC_CAPSLOCK,    BP_DCRC,        BP_V,           BP_D,           BP_L,           BP_J,           BP_Z,
49                                                 BP_C,           BP_T,           BP_S,           BP_R,           BP_N,           BP_M,
50                                 KC_NUMLOCK,     BP_APOS,        BP_Q,           BP_G,           BP_H,           BP_F,           BP_CCED,
51                                                                 BP_ALGR,        KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
52 KC_NO,          KC_INS,
53 KC_NO,
54 MO(FNX),        KC_RSHIFT,      KC_ENTER),
55 /* Keymap 1: QWERTY system compatibility layer
56  *
57  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
58  * |   $    |   "  |   <  |   >  |   (  |   )  |  Esc |                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
59  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
60  * |   %    |   b  |   e  |   p  |   o  |   e  |Backsp|                                  |CapsLo|   ^  |   v  |   d  |   l  |   j  |   z    |
61  * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
62  * |   w    |   a  |   u  |   i  |   e  |   ,  |------|                                  |------|   c  |   t  |   s  |   r  |   n  |   m    |
63  * |--------+------+------+------+------+------|Delete|                                  | NumLo|------+------+------+------+------+--------|
64  * |   e    |   a  |   y  |   x  |   .  |   k  |      |                                  |      |   '  |   q  |   g  |   h  |   f  |   c    |
65  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
66  *   | BEPO |      |LSuper| LCtrl|  LAlt|             |      | L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
67  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
68  *                                             |      |      | L_Num|      |      |      |      |
69  *                                             | Space|  Tab |------|      |------|RShift|Enter |
70  *                                             |      |      | L_Nav|      | L_Fx |      |      |
71  *                                             `--------------------'      `--------------------'
72  */
73 [QWER] = KEYMAP(
74 // Left hand
75 KC_DOLLAR,      S(KC_QUOT),     S(KC_COMM),     S(KC_DOT),      KC_LPRN,        KC_RPRN,        KC_ESC,
76 KC_PERCENT,     KC_B,           KC_E,           KC_P,           KC_O,           KC_E,           KC_BSPC,
77 KC_W,           KC_A,           KC_U,           KC_I,           KC_E,           KC_COMMA,
78 KC_E,           KC_A,           KC_Y,           KC_X,           KC_DOT,         KC_K,           KC_DEL,
79 KC_TRNS,        KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
80                                                                                                                 KC_NO,          MO(MSE),
81                                                                                                                                 MO(NUM),
82                                                                                                 KC_SPC,         KC_TAB,         MO(NAV),
83 // Right hand
84                                 KC_SLCK,        KC_AT,          KC_PLUS,        KC_MINUS,       KC_SLASH,       KC_ASTR,        KC_EQUAL,
85                                 KC_CAPSLOCK,    KC_CIRC,        KC_V,           KC_D,           KC_L,           KC_J,           KC_Z,
86                                                 KC_C,           KC_T,           KC_S,           KC_R,           KC_N,           KC_M,
87                                 KC_NUMLOCK,     KC_QUOT,        KC_Q,           KC_G,           KC_H,           KC_F,           KC_C,
88                                                                 MO(AQWER),      KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
89 KC_NO,          KC_INS,
90 KC_NO,
91 MO(FNX),        MO(SQWER),      KC_ENTER),
92 /* Keymap 2: QWERTY shifted system compatibility layer
93  *
94  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
95  * |   #    |   1  |   2  |   3  |   4  |   5  |  Esc |                                  |ScroLo|   6  |   7  |   8  |   9  |   0  |   =    |
96  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
97  * |   `    |   B  |   E  |   P  |   O  |   E  |Backsp|                                  |CapsLo|   !  |   V  |   D  |   L  |   J  |   Z    |
98  * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
99  * |   W    |   A  |   U  |   I  |   E  |   ;  |------|                                  |------|   C  |   T  |   S  |   R  |   N  |   M    |
100  * |--------+------+------+------+------+------|Delete|                                  | NumLo|------+------+------+------+------+--------|
101  * |   E    |   A  |   Y  |   X  |   :  |   K  |      |                                  |      |   ?  |   Q  |   G  |   H  |   F  |   C    |
102  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
103  *   | BEPO |      |LSuper| LCtrl|  LAlt|             |      | L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
104  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
105  *                                             |      |      | L_Num|      |      |      |      |
106  *                                             | Space|  Tab |------|      |------|RShift|Enter |
107  *                                             |      |      | L_Nav|      | L_Fx |      |      |
108  *                                             `--------------------'      `--------------------'
109  */
110 [SQWER] = KEYMAP(
111 // Left hand
112 S(KC_3),        KC_1,           KC_2,           KC_3,           KC_4,           KC_5,           KC_TRNS,
113 KC_GRV,         S(KC_B),        S(KC_E),        S(KC_P),        S(KC_O),        S(KC_E),        KC_TRNS,
114 S(KC_W),        S(KC_A),        S(KC_U),        S(KC_I),        S(KC_E),        KC_SCOLON,
115 S(KC_E),        S(KC_A),        S(KC_Y),        S(KC_X),        S(KC_SCOLON),   S(KC_K),        KC_TRNS,
116 KC_TRNS,        KC_TRNS,        S(KC_LGUI),     S(KC_LCTL),     S(KC_LALT),
117                                                                                                                 KC_TRNS,        KC_TRNS,
118                                                                                                                                 KC_TRNS,
119                                                                                                 KC_TRNS,        S(KC_TAB),      KC_TRNS,
120 // Right hand
121                                 KC_TRNS,        KC_6,           KC_7,           KC_8,           KC_9,           KC_0,           KC_TRNS,
122                                 KC_TRNS,        S(KC_1),        S(KC_V),        S(KC_D),        S(KC_L),        S(KC_J),        S(KC_Z),
123                                                 S(KC_C),        S(KC_T),        S(KC_S),        S(KC_R),        S(KC_N),        S(KC_M),
124                                 KC_TRNS,        S(KC_SLASH),    S(KC_Q),        S(KC_G),        S(KC_H),        S(KC_F),        S(KC_C),
125                                                                 S(KC_RALT),     S(KC_RCTL),     S(KC_RGUI),     KC_TRNS,        KC_TRNS,
126 KC_TRNS,        KC_TRNS,
127 KC_TRNS,
128 KC_TRNS,        KC_TRNS,        KC_TRNS),
129 /* Keymap 3: QWERTY alted system compatibility layer
130  *
131  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
132  * |   $    |   "  |   <  |   >  |   [  |   ]  |  Esc |                                  |ScroLo|   @  |   +  |   -  |   /  |   *  |   =    |
133  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
134  * |   %    |   |  |   e  |   &  |   o  |   e  |Backsp|                                  |CapsLo|   ^  |   v  |   d  |   l  |   j  |   z    |
135  * |--------+------+------+------+------+------|  ace |                                  |      |------+------+------+------+------+--------|
136  * |   w    |   a  |   u  |   i  |   â‚¬  |   ,  |------|                                  |------|   c  |   t  |   s  |   r  |   n  |   m    |
137  * |--------+------+------+------+------+------|Delete|                                  | NumLo|------+------+------+------+------+--------|
138  * |   e    |   \  |   {  |   }  |   .  |   ~  |      |                                  |      |   '  |   q  |   g  |   h  |   f  |   c    |
139  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
140  *   | BEPO |      |LSuper| LCtrl|  LAlt|             |      | L_Mse|      |      |Insert|             | AltGr| RCtrl|RSuper|PrntSc| Pause|
141  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
142  *                                             |      |      | L_Num|      |      |      |      |
143  *                                             |   _  |  Tab |------|      |------|RShift|Enter |
144  *                                             |      |      | L_Nav|      | L_Fx |      |      |
145  *                                             `--------------------'      `--------------------'
146  */
147 [AQWER] = KEYMAP(
148 // Left hand
149 KC_DOLLAR,      S(KC_QUOT),     S(KC_COMM),     S(KC_DOT),      KC_LBRC,        KC_RBRC,        KC_ESC,
150 KC_PERCENT,     S(KC_BSLASH),   KC_E,           S(KC_7),        KC_O,           KC_E,           KC_BSPC,
151 KC_W,           KC_A,           KC_U,           KC_I,           RALT(KC_5),     KC_COMMA,
152 KC_E,           KC_BSLASH,      S(KC_LBRC),     S(KC_RBRC),     KC_DOT,         S(KC_GRV),      KC_DEL,
153 KC_TRNS,        KC_NO,          KC_LGUI,        KC_LCTL,        KC_LALT,
154                                                                                                                 KC_NO,          MO(MSE),
155                                                                                                                                 MO(NUM),
156                                                                                                 S(KC_MINUS),    KC_TAB,         MO(NAV),
157 // Right hand
158                                 KC_SLCK,        KC_AT,          KC_PLUS,        KC_MINUS,       KC_SLASH,       KC_ASTR,        KC_EQUAL,
159                                 KC_CAPSLOCK,    KC_CIRC,        KC_V,           KC_D,           KC_L,           KC_J,           KC_Z,
160                                                 KC_C,           KC_T,           KC_S,           KC_R,           KC_N,           KC_M,
161                                 KC_NUMLOCK,     KC_QUOT,        KC_Q,           KC_G,           KC_H,           KC_F,           KC_C,
162                                                                 KC_TRNS,        KC_RCTL,        KC_RGUI,        KC_PSCREEN,     KC_PAUSE,
163 KC_NO,          KC_INS,
164 KC_NO,
165 MO(FNX),        MO(SQWER),      KC_ENTER),
166 /* Keymap 4: function layer
167  *
168  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
169  * |        |  F1  |  F2  |  F3  |  F4  |  F5  |      |                                  |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
170  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
171  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |   F12  |
172  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
173  * |        |      |      |      |      |      |------|                                  |------|      |      |      |      |      |   F13  |
174  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
175  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |   F14  |
176  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
177  *   |      |      |      |      |      |             |      |      |      |      |      |             |      |      |      |      |      |
178  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
179  *                                             |      |      |      |      |      |      |      |
180  *                                             |      |      |------|      |------|      |      |
181  *                                             |      |      |      |      |      |      |      |
182  *                                             `--------------------'      `--------------------'
183  */
184 [FNX] = KEYMAP(
185 // Left hand
186 KC_NO,          KC_F1,          KC_F2,          KC_F3,          KC_F4,          KC_F5,          KC_NO,
187 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
188 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
189 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
190 KC_NO,          KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
191                                                                                                                 KC_NO,          KC_NO,
192                                                                                                                                 KC_NO,
193                                                                                                 KC_NO,          KC_NO,          KC_NO,
194 // Right hand
195                                 KC_NO,          KC_F6,          KC_F7,          KC_F8,          KC_F9,          KC_F10,         KC_F11,
196                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_F12,
197                                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_F13,
198                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_F14,
199                                                                 KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_NO,          KC_NO,
200 KC_NO,          KC_NO,
201 KC_NO,
202 KC_TRNS,        KC_TRNS,        KC_NO),
203 /* Keymap 5: numeric layer, sends keypad codes
204  *
205  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
206  * |        |      |      |      |      |      |      |                                  |      |      |   +  |   -  |   /  |   *  |        |
207  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
208  * |        |      |      |      |      |      |      |                                  |      |      |   7  |   8  |   9  |      |        |
209  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
210  * |        |      |      |      |      |      |------|                                  |------|      |   4  |   5  |   6  |      |        |
211  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
212  * |        |      |      |      |      |      |      |                                  |      |      |   1  |   2  |   3  |      |        |
213  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
214  *   |      |      |      |      |      |             |      |      |      |      |      |             |   0  |  00  |   .  |      |      |
215  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
216  *                                             |      |      |      |      |      |      |      |
217  *                                             |      |      |------|      |------|      | Enter|
218  *                                             |      |      |      |      |      |      |      |
219  *                                             `--------------------'      `--------------------'
220  */
221 [NUM] = KEYMAP(
222 // Left hand
223 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
224 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
225 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
226 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
227 KC_NO,          KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
228                                                                                                                 KC_NO,          KC_NO,
229                                                                                                                                 KC_TRNS,
230                                                                                                 KC_NO,          KC_NO,          KC_NO,
231 // Right hand
232                                 KC_NO,          KC_NO,          KC_KP_PLUS,     KC_KP_MINUS,    KC_KP_SLASH,    KC_KP_ASTERISK, KC_NO,
233                                 KC_NO,          KC_NO,          KC_KP_7,        KC_KP_8,        KC_KP_9,        KC_NO,          KC_NO,
234                                                 KC_NO,          KC_KP_4,        KC_KP_5,        KC_KP_6,        KC_NO,          KC_NO,
235                                 KC_NO,          KC_NO,          KC_KP_1,        KC_KP_2,        KC_KP_3,        KC_NO,          KC_NO,
236                                                                 KC_KP_0,        M(KP_00),       KC_KP_COMMA,    KC_NO,          KC_NO,
237 KC_NO,          KC_NO,
238 KC_NO,
239 KC_NO,          KC_TRNS,        KC_KP_ENTER),
240 /* Keymap 6: navigation layer
241  *
242  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
243  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
244  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
245  * |        |      |      |      |      |      |      |                                  |      |      | Home |  Up  |  End | PgUp |        |
246  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
247  * |        |      |      |      |      |      |------|                                  |------|      | Left | Down | Right| PgDn |        |
248  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
249  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
250  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
251  *   |      |      |      |      |      |             |      |      |      |      |      |             |      |      |      |      |      |
252  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
253  *                                             |      |      |      |      |      |      |      |
254  *                                             |      |      |------|      |------|      |      |
255  *                                             |      |      |      |      |      |      |      |
256  *                                             `--------------------'      `--------------------'
257  */
258 [NAV] = KEYMAP(
259 // Left hand
260 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
261 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
262 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
263 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
264 KC_NO,          KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
265                                                                                                                 KC_NO,          KC_NO,
266                                                                                                                                 KC_NO,
267                                                                                                 KC_NO,          KC_NO,          KC_TRNS,
268 // Right hand
269                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
270                                 KC_NO,          KC_NO,          KC_HOME,        KC_UP,          KC_END,         KC_PGUP,        KC_NO,
271                                                 KC_NO,          KC_LEFT,        KC_DOWN,        KC_RIGHT,       KC_PGDOWN,      KC_NO,
272                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
273                                                                 KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_NO,          KC_NO,
274 KC_NO,          KC_NO,
275 KC_NO,
276 KC_NO,          KC_TRNS,        KC_NO),
277 /* Keymap 7: mouse layer
278  *
279  * ,--------------------------------------------------.                                  ,--------------------------------------------------.
280  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
281  * |--------+------+------+------+------+-------------|                                  |------+------+------+------+------+------+--------|
282  * |        |      |      |      |      |      |      |                                  |      |      |LClick|  Up  |RClick| WhUp |        |
283  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
284  * |        |      |      |      |      |      |------|                                  |------|      | Left | Down | Right|WhDown|        |
285  * |--------+------+------+------+------+------|      |                                  |      |------+------+------+------+------+--------|
286  * |        |      |      |      |      |      |      |                                  |      |      |      |      |      |      |        |
287  * `--------+------+------+------+------+-------------,-------------.      ,-------------`-------------+------+------+------+------+--------'
288  *   |      |      |      |      |      |             |      |      |      |      |      |             |      |      |      |      |      |
289  *   `----------------------------------'      ,------|------|------|      |------+------+------.      `----------------------------------'
290  *                                             |      |      |      |      |      |      |      |
291  *                                             |      |      |------|      |------|      |      |
292  *                                             |      |      |      |      |      |      |      |
293  *                                             `--------------------'      `--------------------'
294  */
295 [MSE] = KEYMAP(
296 // Left hand
297 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
298 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
299 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
300 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
301 KC_NO,          KC_NO,          KC_TRNS,        KC_TRNS,        KC_TRNS,
302                                                                                                                 KC_NO,          KC_TRNS,
303                                                                                                                                 KC_NO,
304                                                                                                 KC_NO,          KC_NO,          KC_NO,
305 // Right hand
306                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
307                                 KC_NO,          KC_NO,          KC_MS_BTN1,     KC_MS_UP,       KC_MS_BTN2,     KC_MS_WH_UP,    KC_NO,
308                                                 KC_NO,          KC_MS_LEFT,     KC_MS_DOWN,     KC_MS_RIGHT,    KC_MS_WH_DOWN,  KC_NO,
309                                 KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,          KC_NO,
310                                                                 KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_NO,          KC_NO,
311 KC_NO,          KC_NO,
312 KC_NO,
313 KC_NO,          KC_TRNS,        KC_NO)
314 };
315
316 const uint16_t PROGMEM fn_actions[] = {
317 };
318
319 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
320 {
321   switch(id) {
322     case KP_00:
323       if (record->event.pressed) {
324         return MACRO( T(KP_0), D(KP_0), END );
325       } else {
326         return MACRO( U(KP_0), END );
327       }
328       break;
329   }
330   return MACRO_NONE;
331 };
332
333 // Runs just one time when the keyboard initializes.
334 void matrix_init_user(void) {
335 };
336
337 // Runs constantly in the background, in a loop.
338 void matrix_scan_user(void) {
339 };