]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/kinesis/keymaps/milestogo/keymap.c
Remove all Makefiles from the keyboards directory. (#1660)
[qmk_firmware.git] / keyboards / kinesis / keymaps / milestogo / keymap.c
1 #include "kinesis.h"
2 #include "action_layer.h"
3 #include "mousekey.h"
4
5 #define _QWERTY 0 // Base qerty
6 #define _SYMB 1// Symbol layer
7 #define _MOUSE 2//
8 #define _TRANS 3//
9 #define _SYMB2 4// old symbol level, more ergodox like
10
11 // Fillers to make layering more clear
12 #define _______ KC_TRNS
13 #define XXXXXXX KC_NO
14
15 /* Macros */
16 enum {
17   NONE = 0,
18   // Diagonal mouse movement
19   A_MUL,
20   A_MUR,
21   A_MDL,
22   A_MDR,
23 };
24
25
26 //  Train out of using uncomfortable esc  and GUI keys. 
27 /****************************************************************************************************
28 *
29 * Keymap: Default Layer in Qwerty
30 *
31 * ,-------------------------------------------------------------------------------------------------------------------.
32 * | no     |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F8  |  F9  |  F10 |  F12 |  FN0 |  FN1 |  FN2 |      |  bOOT  |
33 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
34 * | `~     |  1!  |  2@  |  3#  |  4$  |  5%  |                           |  6^  |  7&  |  8*  |  9(  |  0)  | -_     |
35 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
36 * | Tab    |   Q  |   W  |   E  |   R  |   T  |                           |   Y  |   U  |   I  |   O  |   P  | \|     |
37 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
38 * |MouseFN0|   A  |   S  |   D  |   F  |   G  |                           |   H  |   J  |   K  |   L  |  ;:  | '"     |
39 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
40 * | Shift  |   Z  |   X  |   C  |   V  |   B  |                           |   N  |   M  |  ,<  |  .>  |  /?  | Shift  |
41 * `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
42 *          | ~`   | ESC  |GUI/L |L1/RT |                                         | L1/UP|GUI/DN| [{   | ]}   |
43 *          `---------------------------'                                         `---------------------------'
44 *                                        ,-------------.         ,-------------.
45 *                                        | CTRL | ALT  |         | ALT  | GUI |
46 *                                 ,------|------|------|         |------+------+------.
47 *                                 |      |      | Del  |         | PgUp |      |      |
48 *                                 | BkSp | BkSp |------|         |------|Return| Space|
49 *                                 |      |      | FN0  |         | PgDn |      |      |
50 *                                 `--------------------'         `--------------------'
51 */
52
53 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
54 [_QWERTY] = KEYMAP(
55            XXXXXXX, KC_F1  ,KC_F2  ,KC_F3  ,KC_F4  ,KC_F5  ,KC_F6  ,KC_F7  ,KC_F8,
56            KC_GRAVE, KC_1   ,KC_2   ,KC_3   ,KC_4   ,KC_5   ,
57            KC_TAB, KC_Q   ,KC_W   ,KC_E   ,KC_R   ,KC_T   ,
58            KC_FN0 ,KC_A   ,KC_S   ,KC_D   ,KC_F   ,KC_G   ,
59            KC_LSFT,KC_Z   ,KC_X   ,KC_C   ,KC_V   ,KC_B   ,
60               KC_GRAVE,  KC_ESC, KC_FN4, KC_FN5,
61                                         KC_LCTL,KC_LALT,
62                                         KC_DEL,
63                         KC_BSPC, KC_DEL ,KC_FN0 ,
64         KC_F9  ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1  ,KC_FN2, KC_NO, RESET,
65         KC_6   ,KC_7   ,KC_8   ,KC_9   ,KC_0   ,KC_MINS,
66         KC_Y   ,KC_U   ,KC_I   ,KC_O   ,KC_P   ,KC_BSLS,
67         KC_H   ,KC_J   ,KC_K   ,KC_L   ,KC_SCLN,KC_QUOT,
68         KC_N   ,KC_M   ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
69                 KC_FN6, KC_FN7,  KC_LBRC ,KC_RBRC, 
70            KC_RALT,KC_RGUI,
71            KC_PGUP,
72            KC_PGDN,KC_ENTER ,KC_SPC
73     ),
74     
75     
76 /* _SYMB level, more planck like. Much work to make sequences into multi-finger rolls. eg ([1,0]), !=0
77 * Also sorted by frequency / strength of finger.
78 *
79 * ,-------------------------------------------------------------------------------------------------------------------.
80 * |        |      |      |      |      |      |      |      |      |      |      |      |      |      |      |        |
81 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
82 * |        |      |      |      |      |      |                           |      |      |      |      |      |        |
83 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
84 * |        |  ^   |   {  |   }  |  @   |  %   |                           |   &  |  [   |   (  |   )  |   _  |   \    |
85 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
86 * |        |  !   |   #  |   0  |   =  |  ~   |                           |   *  |   +  |   1  |  -   |   ]  |  `     |
87 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
88 * |        |   6  |  7   |   8  |  9   | pipe |                           |   $  |  2   |   3  |   4  |  5   |        |
89 * `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
90 *          |      |  :   |GUI/L |L1/RT |                                         | L1/UP|GUI/DN|  \   |      |
91 *          `---------------------------'                                         `---------------------------'
92 *                                        ,-------------.         ,-------------.
93 *                                        | CTRL |      |         | ALT  | GUI |
94 *                                 ,------|------|------|         |------+------+------.
95 *                                 |      |      |      |         |      |      |      |
96 *                                 | Cut  | Paste|------|         |------|      |      |
97 *                                 |      |      |Reset |         |      |      |      |
98 *                                 `--------------------'         `--------------------'
99 */
100
101
102
103 [_SYMB] = KEYMAP( 
104          _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______,
105          _______,  _______,  _______,  _______,  _______,  _______,
106          _______,  KC_CIRC,  KC_LCBR, KC_RCBR,  KC_AT,  KC_PERC,
107          _______,  KC_EXLM,  KC_HASH,  KC_0,   KC_EQL,  KC_TILD,
108          _______,   KC_6,   KC_7,   KC_8,  KC_9, KC_PIPE,
109                    _______,  KC_COLON,  KC_FN4, KC_FN5,
110                              _______,  _______,
111                                        _______,
112                     _______, _______,  RESET,
113          _______,  _______,  _______,  _______,  _______,  _______, _______, KC_FN0, KC_2,
114          _______,  _______,  _______,  _______,  _______,  _______,
115          KC_AMPR,  KC_LBRC,  KC_LPRN, KC_RPRN,  KC_UNDS,  _______,
116          KC_ASTR,  KC_PLUS,  KC_1,    KC_MINS,   KC_RBRC,  KC_GRV,
117          KC_DLR,   KC_2,   KC_3,   KC_4,  KC_5, XXXXXXX,
118                    KC_FN6, KC_FN7,   KC_BSLS,  XXXXXXX,
119          _______,  _______,
120          _______,
121          _______,  _______,  _______
122     ),
123     
124     
125 /* _SYMB2ol level, more ergodox like
126 *
127 * ,-------------------------------------------------------------------------------------------------------------------.
128 * |        |      |      |      |      |      |      |      |      |      |      |      |      |      |      |        |
129 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
130 * |        |      |   *  |   #  |      |      |                           |      |      |      |      |      |        |
131 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
132 * |        |  /   |   <  |   >  |      |      |                           |      |      |   +  |   *  |      |        |
133 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
134 * |        |      |  {   |   }  |      |      |                           |      |      |   =  |   -  |      |        |
135 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
136 * |        |   =  |  (   |   )  |      |      |                           |      |      |      |   |  |      |        |
137 * `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
138 *          |      |      |GUI/L |L1/RT |                                         | L1/UP|GUI/DN|  {   |   }  |
139 *          `---------------------------'                                         `---------------------------'
140 *                                        ,-------------.         ,-------------.
141 *                                        | CTRL |      |         | ALT  | GUI |
142 *                                 ,------|------|------|         |------+------+------.
143 *                                 |      |      |      |         |      |      |      |
144 *                                 | BkSp | Del  |------|         |------|Mouse1|Mouse2|
145 *                                 |      |      |Reset |         |      |LClick|Rclick|
146 *                                 `--------------------'         `--------------------'
147 */
148
149
150
151 [_SYMB2] = KEYMAP( 
152          _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______,
153          _______,  _______,  KC_ASTR,  KC_HASH,  _______,  _______,
154          _______,  KC_SLSH,  RSFT(KC_COMM), RSFT(KC_DOT),  _______,  _______,
155          _______,  _______,  RSFT(KC_LBRC),  RSFT(KC_RBRC),   _______,  _______,
156          _______,  KC_EQL,  RSFT(KC_9),  RSFT(KC_0),  _______,  _______,
157                    _______,  _______,  KC_FN4, KC_FN5,
158                              _______,  _______,
159                                        _______,
160                     _______, _______,  RESET,
161          _______,  _______,  _______,  _______,  _______,  _______, _______, KC_FN0, KC_2,
162          _______,  _______,  _______,  KC_ASTR,  _______,  _______,
163          _______,  _______,  KC_PLUS,  KC_MINS,  _______,  _______,
164          _______,  _______,  KC_EQL,  KC_PIPE,  _______,  _______,
165          _______,  _______,  _______,  _______,  _______,  _______,
166                    KC_FN6, KC_FN7,   _______,  _______,
167          _______,  _______,
168          _______,
169          _______,  _______,  _______
170     ),
171 /* Keymap: Movement and function layer
172 *
173 * ,-------------------------------------------------------------------------------------------------------------------.
174 * | Caps   |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F8  |  F9  |  F10 |  F12 |  FN0 |  FN1 |  FN2 |  Tada |  bOOT  |
175 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
176 * | =+     |  !   |   @  |   #  |   $  |   %  |                           |  ^   |   &  |   *  |  (   |   )  |MS Fast |
177 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
178 * | Tab    |      |      |      |      |PgUp  |                           | MwU  |MS_UL | MS_U |MS_UR |      | Ms Norm| 
179 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
180 * |MouseFN1|GUI_V |GUI X |GUI C |GUI_V |      |                           |      | MS_L |Mouse1| MS_R |      |MS Slow |
181 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
182 * |        |      |      |      |      |PgDown|                           | MWD  | MDown|MS Dwn|MS_DR  |  ?  |        |
183 * `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
184 *          | `~   | ESC  |      |      |                                         |      |      |  {  |    }  |
185 *          `---------------------------'                                         `---------------------------'
186 *                                        ,-------------.         ,-------------.
187 *                                        | CTRL | GUI  |         | ALT  | GUI  |
188 *                                 ,------|------|------|         |------+------+------.
189 *                                 |      |      | Home |         | PgUp |      |      |
190 *                                 | BkSp | Del  |------|         |------|Mouse1|Mouse2|
191 *                                 |      |      | End  |         | PgDn |LClick|Rclick|
192 *                                 `--------------------'         `--------------------'
193 */
194
195
196 [_MOUSE] = KEYMAP(
197          KC_CAPS,  _______,  _______,  _______,  _______,  _______, _______, _______, _______,
198          _______,  KC_EXLM  ,KC_AT,    KC_HASH,  KC_DLR   ,KC_PERC   ,
199          _______,  KC_NO,    KC_NO,    KC_UP,    KC_NO,    KC_PGUP,
200          KC_FN1,   LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V), KC_NO,
201          _______,  KC_NO,    KC_NO,    KC_UP,    KC_NO,    KC_PGDN,
202                    _______,  _______,  KC_NO,  KC_NO,
203                              _______,  _______,
204                                        _______,
205                     _______, _______,  _______,
206          _______,  _______,  _______,  _______,  _______,  _______, _______, KC_FN0,RESET, 
207          KC_CIRC,  KC_AMPR,  KC_ASTR,  KC_LPRN,  KC_RPRN,  KC_ACL2,  
208          KC_WH_U,  M(A_MUL), KC_MS_U,  M(A_MUR), KC_NO,  KC_ACL1,
209          KC_NO,    KC_MS_L,  KC_MS_D,  KC_MS_R,  KC_NO,  KC_ACL0,
210          KC_WH_D,  M(A_MDL), KC_MS_D,  M(A_MDR), RSFT(KC_LBRC), RSFT(KC_RBRC),
211                    KC_LCBR,  KC_RCBR,  KC_NO,  KC_NO,
212          _______,  _______,
213          _______,
214          _______,  KC_BTN1,  KC_BTN2
215     ),
216
217
218
219 /* EMPTY
220 *
221 * ,-------------------------------------------------------------------------------------------------------------------.
222 * |        |      |      |      |      |      |      |      |      |      |      |      |      |      |      |  bOOT  |
223 * |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
224 * |        |      |      |      |      |      |                           |      |      |      |      |      |        |
225 * |--------+------+------+------+------+------|                           +------+------+------+------+------+--------|
226 * |        |      |      |      |      |      |                           |      |      |      |      |      |        |
227 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
228 * |        |      |      |      |      |      |                           |      |      |      |      |      |        |
229 * |--------+------+------+------+------+------|                           |------+------+------+------+------+--------|
230 * |        |      |      |      |      |      |                           |      |      |      |      |      |        |
231 * `--------+------+------+------+------+-------                           `------+------+------+------+------+--------'
232 *          |      |      |      |      |                                         |      |      |    |      |
233 *          `---------------------------'                                         `---------------------------'
234 *                                        ,-------------.         ,-------------.
235 *                                        | Ctrl | Alt  |         | Gui  | Ctrl |
236 *                                 ,------|------|------|         |------+------+------.
237 *                                 |      |      | Home |         | PgUp |      |      |
238 *                                 | BkSp | Del  |------|         |------|Mouse1|Mouse2|
239 *                                 |      |      | End  |         | PgDn |LClick|Rclick|
240 *                                 `--------------------'         `--------------------'
241 */
242
243
244
245 [_TRANS] = KEYMAP( 
246          _______,  _______,  _______,  _______,  _______,  _______, _______, _______, _______,
247          _______,  _______,  _______,  _______,  _______,  _______,
248           _______,  _______,  _______,  _______,  _______,  _______,
249          _______,  _______,  _______,  _______,  _______,  _______,
250         _______,  _______,  _______,  _______,  _______,  _______,
251                    _______,  _______,  _______,  _______,
252                              _______,  _______,
253                                        _______,
254                     _______, _______,  _______,
255          _______,  _______,  _______,  _______,  _______,  _______, _______, KC_FN0, KC_2,
256          _______,  _______,  _______,  _______,  _______,  _______,
257          _______,  _______,  _______,  _______,  _______,  _______,
258          _______,  _______,  _______,  _______,  _______,  _______,
259          _______,  _______,  _______,  _______,  _______,  _______,
260                    _______,  _______,  _______,  _______,
261          _______,  _______,
262          _______,
263          _______,  _______,  _______
264     ),
265     
266     
267 };
268
269
270
271 const uint16_t PROGMEM fn_actions[] = {
272    [0] = ACTION_LAYER_TAP_TOGGLE(_MOUSE) ,             
273    [1] = ACTION_LAYER_TOGGLE(_MOUSE) ,                
274    [2] = ACTION_LAYER_TAP_TOGGLE(_SYMB) ,              
275         [5]= ACTION_LAYER_TAP_KEY(_SYMB,KC_RIGHT), 
276         [4]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_LEFT),
277         [6]= ACTION_LAYER_TAP_KEY(_SYMB,KC_UP), 
278         [7]= ACTION_MODS_TAP_KEY(MOD_LGUI,KC_DOWN),
279
280         
281 };
282
283 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
284 {
285   // MACRODOWN only works in this function
286       switch(id) {
287         case 0:
288           if (record->event.pressed) {
289             register_code(KC_RSFT);
290           } else {
291             unregister_code(KC_RSFT);
292           }
293         break;
294
295         // from  algernon's ErgoDox EZ layout, 
296        case A_MUL:
297         if (record->event.pressed) {
298           mousekey_on(KC_MS_UP);
299           mousekey_on(KC_MS_LEFT);
300         } else {
301           mousekey_off(KC_MS_UP);
302           mousekey_off(KC_MS_LEFT);
303         }
304         mousekey_send();
305         break;
306
307       case A_MUR:
308         if (record->event.pressed) {
309           mousekey_on(KC_MS_UP);
310           mousekey_on(KC_MS_RIGHT);
311         } else {
312           mousekey_off(KC_MS_UP);
313           mousekey_off(KC_MS_RIGHT);
314         }
315         mousekey_send();
316         break;
317
318       case A_MDL:
319         if (record->event.pressed) {
320           mousekey_on(KC_MS_DOWN);
321           mousekey_on(KC_MS_LEFT);
322         } else {
323           mousekey_off(KC_MS_DOWN);
324           mousekey_off(KC_MS_LEFT);
325         }
326         mousekey_send();
327         break;
328
329       case A_MDR:
330         if (record->event.pressed) {
331           mousekey_on(KC_MS_DOWN);
332           mousekey_on(KC_MS_RIGHT);
333         } else {
334           mousekey_off(KC_MS_DOWN);
335           mousekey_off(KC_MS_RIGHT);
336         }
337         mousekey_send();
338         break;
339      } 
340     return MACRO_NONE;
341 };
342
343
344 void matrix_init_user(void) {
345
346
347 }
348
349 void matrix_scan_user(void) {
350
351 #ifdef ALVICSTEP_CONFIG_H
352  int8_t layer = biton32(layer_state);
353
354         switch (layer) {
355         case 1:
356                 if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) {
357                         all_led_off();
358                         caps_lock_led_on();
359                 }
360                 break;
361                 
362         case 2:
363                 if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) {
364                         all_led_off();
365                         scroll_lock_led_on();
366                 }
367         case 0:
368                 all_led_off();
369                 num_lock_led_on();
370                 break;
371         default:
372                 break;
373         }
374 #endif
375
376 }
377
378 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
379   return true;
380 }
381
382 void led_set_user(uint8_t usb_led) {
383
384 }