]> git.donarmstrong.com Git - tmk_firmware.git/blob - keyboard/ergodox/keymap_cub.h
Implementation for Ergodox project
[tmk_firmware.git] / keyboard / ergodox / keymap_cub.h
1 static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2     /* Keymap 0: Default Layer
3      *
4      * ,--------------------------------------------------.           ,--------------------------------------------------.
5      * |   ~    |   1  |   2  |   3  |   4  |   5  |   \  |           |   '  |   6  |   7  |   8  |   9  |   0  |   =    |
6      * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
7      * | Tab    |   Q  |   W  |   E  |   R  |   T  | ~Fn1 |           | ~Fn3 |   Y  |   U  |   I  |   O  |   P  |   [    |
8      * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
9      * | LShift |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  | RShift |
10      * |--------+------+------+------+------+------|  Fn0 |           | ~Fn4 |------+------+------+------+------+--------|
11      * | LCtrl  |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   /  | RCtrl  |
12      * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
13      *   | ~Fn1 | ~Fn2 | Caps | LAlt | LGui |                                       |  Lft |  Up  |  Dn  | Rght | ~Fn4 |
14      *   `----------------------------------'                                       `----------------------------------'
15      *                                        ,-------------.       ,-------------.
16      *                                        | +Fn2 | Home |       | PgUp | Del  |
17      *                                 ,------|------|------|       |------+------+------.
18      *                                 |      |      |  End |       | PgDn |      |      |
19      *                                 | BkSp |  ESC |------|       |------| Enter| Space|
20      *                                 |      |      |  Spc |       | Ins  |      |      |
21      *                                 `--------------------'       `--------------------'
22      */
23
24     KEYMAP(  // layout: layer 0: default
25         // left hand
26         GRV, 1,   2,   3,   4,   5,   BSLS,
27         TAB, Q,   W,   E,   R,   T,   FN1,
28         LSFT,A,   S,   D,   F,   G,
29         LCTL,Z,   X,   C,   V,   B,   FN0,
30         FN1, FN6, CAPS,LALT,LGUI,
31                                       FN2, HOME,
32                                            END,
33                                  BSPC,ESC, SPC,
34         // right hand
35              QUOT,6,   7,   8,   9,   0,   EQL,
36              FN3, Y,   U,   I,   O,   P,   LBRC,
37                   H,   J,   K,   L,   SCLN,RSFT,
38              FN4, N,   M,   COMM,DOT, SLSH,RCTL,
39                        LEFT,UP,  DOWN,RGHT,FN4,
40         PGUP,DEL,
41         PGDN,
42         INS, ENT, SPC
43     ),
44
45     KEYMAP(  // layout: layer 1: F-keys instead of numbers
46         // left hand
47         TRNS,F1,  F2,  F3,  F4,  F5,  F6,
48         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
49         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
50         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
51         TRNS,TRNS,TRNS,LALT,LGUI,
52                                       TRNS,TRNS,
53                                            TRNS,
54                                  LCTL,LSFT,TRNS,
55         // right hand
56              F7,  F8,  F9,  F10, F11, F12, MINS,
57              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,RBRC,
58                   TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
59              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
60                        RGUI,RALT,TRNS,TRNS,TRNS,
61         TRNS,TRNS,
62         TRNS,
63         TRNS,RSFT,RCTL
64     ),
65
66     KEYMAP(  // layout: layer 2: mouse + numpad
67         // left hand
68         TRNS,NO,  NO,  NO,  NO,  PAUS,PSCR,
69         TRNS,WH_L,WH_U,WH_D,WH_R,BTN2,TRNS,
70         TRNS,MS_L,MS_U,MS_D,MS_R,BTN1,
71         TRNS,NO,  NO,  NO,  NO,  BTN3,TRNS,
72         TRNS,TRNS,TRNS,TRNS,TRNS,
73                                       TRNS,TRNS,
74                                            TRNS,
75                                  TRNS,TRNS,TRNS,
76         // right hand
77              SLCK,NLCK,PSLS,PAST,PAST,PMNS,BSPC,
78              TRNS,NO,  P7,  P8,  P9,  PMNS,BSPC,
79                   NO,  P4,  P5,  P6,  PPLS,PENT,
80              TRNS,NO,  P1,  P2,  P3,  PPLS,PENT,
81                        P0,  PDOT,SLSH,PENT,PENT,
82         TRNS,TRNS,
83         TRNS,
84         TRNS,TRNS,TRNS
85     ),
86
87     KEYMAP(  // layout: layer 3: F-keys only
88         // left hand
89         TRNS,NO,  NO,  NO,  NO,  NO,  NO,  
90         TRNS,F13, F14, F15, F16, NO,  TRNS,
91         TRNS,F17, F18, F19, F20, NO,  
92         TRNS,F21, F22, F23, F24, NO,  TRNS,
93         TRNS,TRNS,TRNS,LALT,LGUI,
94                                       TRNS,TRNS,
95                                            TRNS,
96                                  LCTL,LSFT,TRNS,
97         // right hand
98              NO,  NO,  NO,  NO,  NO,  NO,  TRNS,
99              TRNS,NO,  F1,  F2,  F3,  F4,  TRNS,
100                   NO,  F5,  F6,  F7,  F8,  TRNS,
101              TRNS,NO,  F9,  F10, F11, F12, TRNS,
102                        RGUI,RALT,TRNS,TRNS,TRNS,
103         TRNS,TRNS,
104         TRNS,
105         TRNS,RSFT,RCTL
106     ),
107
108     KEYMAP(  // layout: layer 4: F-keys + cursor
109         // left hand
110         TRNS,F1,  F2,  F3,  F4,  F5,  F6,
111         FN7, NO,  PGUP,UP,  PGDN,PGUP,TRNS,
112         TRNS,NO,  LEFT,DOWN,RGHT,PGDN,
113         TRNS,NO,  NO,  END, HOME,NO,  TRNS,
114         FN5, TRNS,TRNS,LALT,LGUI,
115                                       TRNS,TRNS,
116                                            TRNS,
117                                  LCTL,LSFT,TRNS,
118         // right hand
119              F7,  F8,  F9,  F10, F11, F12, MINS,
120              TRNS,PGUP,PGUP,UP,  PGDN,NO,  FN7,
121                   PGDN,LEFT,DOWN,RGHT,NO,  TRNS,
122              TRNS,NO,  HOME,END, NO,  NO,  TRNS,
123                        RGUI,RALT,TRNS,TRNS,TRNS,
124         TRNS,TRNS,
125         TRNS,
126         TRNS,RSFT,RCTL
127     ),
128
129     KEYMAP(  // layout: layer 5: Workman layout
130         // left hand
131         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
132         TRNS,Q,   D,   R,   W,   B,   TRNS,
133         TRNS,A,   S,   H,   T,   G,
134         TRNS,Z,   X,   M,   C,   V,   TRNS,
135         TRNS,TRNS,TRNS,TRNS,TRNS,
136                                       TRNS,TRNS,
137                                            TRNS,
138                                  TRNS,TRNS,TRNS,
139         // right hand
140              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
141              TRNS,J,   F,   U,   P,   4,   TRNS,
142                   Y,   N,   E,   O,   I,   TRNS,
143              TRNS,K,   L,   TRNS,TRNS,TRNS,TRNS,
144                        TRNS,TRNS,TRNS,TRNS,TRNS,
145         TRNS,TRNS,
146         TRNS,
147         TRNS,TRNS,TRNS
148     ),
149
150 /*
151     KEYMAP(  // layout: layer N: transparent on edges, all others are empty
152         // left hand
153         TRNS,NO,  NO,  NO,  NO,  NO,  NO,  
154         TRNS,NO,  NO,  NO,  NO,  NO,  TRNS,
155         TRNS,NO,  NO,  NO,  NO,  NO,  
156         TRNS,NO,  NO,  NO,  NO,  NO,  TRNS,
157         TRNS,TRNS,TRNS,LALT,LGUI,
158                                       TRNS,TRNS,
159                                            TRNS,
160                                  LCTL,LSFT,TRNS,
161         // right hand
162              NO,  NO,  NO,  NO,  NO,  NO,  TRNS,
163              TRNS,NO,  NO,  NO,  NO,  NO,  TRNS,
164                   NO,  NO,  NO,  NO,  NO,  TRNS,
165              TRNS,NO,  NO,  NO,  NO,  NO,  TRNS,
166                        RGUI,RALT,TRNS,TRNS,TRNS,
167         TRNS,TRNS,
168         TRNS,
169         TRNS,RSFT,RCTL
170     ),
171     KEYMAP(  // layout: layer N: fully transparent
172         // left hand
173         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
174         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
175         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
176         TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
177         TRNS,TRNS,TRNS,TRNS,TRNS,
178                                       TRNS,TRNS,
179                                            TRNS,
180                                  TRNS,TRNS,TRNS,
181         // right hand
182              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
183              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
184                   TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
185              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
186                        TRNS,TRNS,TRNS,TRNS,TRNS,
187         TRNS,TRNS,
188         TRNS,
189         TRNS,TRNS,TRNS
190     ),
191 */
192
193 };
194
195 /* id for user defined functions */
196 enum function_id {
197     TEENSY_KEY,
198 };
199
200 /*
201  * Fn action definition
202  */
203 static const uint16_t PROGMEM fn_actions[] = {
204     ACTION_DEFAULT_LAYER_SET(0),                    // FN0 - switch to Layer0
205     ACTION_LAYER_MOMENTARY(1),                      // FN1 - push Layer1
206     ACTION_DEFAULT_LAYER_SET(2),                    // FN2 - switch to Layer2
207     ACTION_LAYER_MOMENTARY(3),                      // FN3 - push Layer3
208     ACTION_LAYER_MOMENTARY(4),                      // FN4 - push Layer4
209     ACTION_DEFAULT_LAYER_SET(5),                    // FN5 - switch to Layer5
210     ACTION_LAYER_MOMENTARY(2),                      // FN6 - push Layer2
211     ACTION_FUNCTION(TEENSY_KEY),                    // FN7 - Teensy key
212 };
213
214 void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
215 {
216     print("action_function called\n");
217     print("id  = "); phex(id); print("\n");
218     print("opt = "); phex(opt); print("\n");
219     if (id == TEENSY_KEY) {
220         clear_keyboard();
221         print("\n\nJump to bootloader... ");
222         _delay_ms(250);
223         bootloader_jump(); // should not return
224         print("not supported.\n");
225     }
226 }
227