]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/keymaps/pvinis/keymap.c
[Keymap] dsanchezseco for planck (#5944)
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / pvinis / keymap.c
1 // pvinis ergodox ez
2 // ,------------------------------------.          ,------------------------------------.
3 // |      |    |    |    |    |    |    |          |    |    |    |    |    |    |      |
4 // |------+----+----+----+----+---------|          |----+----+----+----+----+----+------|
5 // |      |    |    |    |    |    |    |          |    |    |    |    |    |    |      |
6 // |------+----+----+----x----x----|    |          |    |----x----x----+----+----+------|
7 // |      |    |    |    |    |    |----|          |----|    |    |    |    |    |      |
8 // |------+----+----+----x----x----|    |          |    |----x----x----+----+----+------|
9 // |      |    |    |    |    |    |    |          |    |    |    |    |    |    |      |
10 // `------+----+----+----+----+---------'          `---------+----+----+----+----+------'
11 //   |    |    |    |    |    |                              |    |    |    |    |    |
12 //   `------------------------'                              `------------------------'
13 //                              ,---------.      ,---------.
14 //                              |    |    |      |    |    |
15 //                         ,----+----+----|      |----+----+----.
16 //                         |    |    |    |      |    |    |    |
17 //                         |    |    |----|      |----|    |    |
18 //                         |    |    |    |      |    |    |    |
19 //                         `--------------'      `--------------'
20
21
22 #include QMK_KEYBOARD_H
23 #include "pvinis.h"
24 #include "mousekey.h"
25
26
27 // layers
28 enum {
29   MOUSE = 8,
30 };
31
32 // extra keys
33 enum {
34   NONE = 30,
35   TD_LAYR, // SYSCTL and MOUSE layer switch
36 };
37
38 // application selection
39 // this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
40 #define AP_SLCK ALLM(KC_S)
41 #define AP_XCOD ALLM(KC_X)
42 #define AP_MSGR ALLM(KC_M)
43
44
45 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46   // ,------------------------------------.          ,------------------------------------.
47   // |4xFLSH|    |    |    |    |    |Opt |          |    |    |    |    |    |    |      |
48   // |------+----+----+----+----+---------|          |----+----+----+----+----+----+------|
49   // | Tab  |    |    |    |    |    |    |          |    |    |    |    |    |    |      |
50   // |------+----+----+----x----x----|    |          |    |----x----x----+----+----+------|
51   // |EscCtl|    |    |    |    |    |----|          |----|    |    |    |    |    | Ent  |
52   // |------+----+----+----x----x----|    |          |    |----x----x----+----+----+------|
53   // |LShift|    |    |    |    |    |    |          |    |    |    |    |    |    |RShift|
54   // `------+----+----+----+----+---------'          `---------+----+----+----+----+------'
55   //   |    |    |    |    |Cmd |                              |    |    |    |    |    |
56   //   `------------------------'                              `------------------------'
57   //                              ,---------.      ,---------.
58   //                              |QWER|    |      |    |    |
59   //                         ,----+----+----|      |----+----+----.
60   //                         | Ba | L  |    |      |    |    |    |
61   //                         | ck |Shi |----|      |----|    |Spc |
62   //                         | spc| ft |    |      |    |    |    |
63   //                         `--------------'      `--------------'
64   [LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
65     TD_3FLS, _______, _______, _______, _______, _______, KC_LALT,      _______, _______, _______, _______, _______, _______, _______,
66     KC_TAB , _______, _______, _______, _______, _______, _______,      _______, _______, _______, _______, _______, _______, _______,
67     PV_ESCC, _______, _______, _______, _______, _______,                        _______, _______, _______, _______, _______, KC_ENT ,
68     KC_LSFT, _______, _______, _______, _______, _______, _______,      _______, _______, _______, _______, _______, _______, KC_RSFT,
69     _______, _______, _______, KC_LGUI, SYMBOL ,                                          SYSCTL , KC_RALT, _______, _______, _______,
70                                                  QWERTY , CARPALX,      _______, _______,
71                                                           _______,      _______,
72                                         KC_BSPC, _______, _______,      _______, _______, KC_SPC
73   ),
74
75   // ,------------------------------------.          ,------------------------------------.
76   // |      |        NUMBERS_L       |    |          |  - |        NUMBERS_R       |  =   |
77   // |------+----+----+----+----+---------|          |----+----+----+----+----+----+------|
78   // |      |                        |  [ |          | ]  |                        |      |
79   // |------+                        |    |          |    |                        +------|
80   // |      |         QWERTY_L       |----|          |----|         QWERTY_R       |      |
81   // |------+                        |  ( |          | )  |                        +------|
82   // |      |                        |    |          |    |                        |      |
83   // `------+----+----+----+----+---------'          `---------+----+----+----+----+------'
84   //   |    | `  |    |    |    |                              |    |    |    |  ' |    |
85   //   `------------------------'                              `------------------------'
86   //                              ,---------.      ,---------.
87   //                              |    |    |      |    |    |
88   //                         ,----+----+----|      |----+----+----.
89   //                         |    |    |    |      |    |    |    |
90   //                         |    |    |----|      |----|    |    |
91   //                         |    |    |    |      |    |    |    |
92   //                         `--------------'      `--------------'
93   // See `users/pvinis/pvinis.h`
94   [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
95     _______, ________________NUMBERS_L__________________, _______,      KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
96     _______, _________________QWERTY_L1_________________, KC_LBRC,      KC_RBRC, _________________QWERTY_R1_________________, _______,
97     _______, _________________QWERTY_L2_________________,                        _________________QWERTY_R2_________________, _______,
98     _______, _________________QWERTY_L3_________________, KC_LPRN,      KC_RPRN, _________________QWERTY_R3_________________, _______,
99     _______, KC_GRV, _______, _______, _______,                                          _______, _______, _______, KC_QUOT , _______,
100                                                  _______, _______,      _______, _______,
101                                                           _______,      _______,
102                                         _______, _______, _______,      _______, _______, _______
103   ),
104
105   // ,------------------------------------.          ,------------------------------------.
106   // |      |        NUMBERS_L       |    |          |    |        NUMBERS_R       |      |
107   // |------+----+----+----+----+---------|          |----+----+----+----+----+----+------|
108   // |      |                        |    |          |    |                        |      |
109   // |------+                        |    |          |    |                        +------|
110   // |      |        CARPALX_L       |----|          |----|        CARPALX_R       |      |
111   // |------+                        |    |          |    |                        +------|
112   // |      |                        |    |          |    |                        |      |
113   // `------+----+----+----+----+---------'          `---------+----+----+----+----+------'
114   //   |    |    |    |    |    |                              |    |    |    |    |    |
115   //   `------------------------'                              `------------------------'
116   //                              ,---------.      ,---------.
117   //                              |    |    |      |    |    |
118   //                         ,----+----+----|      |----+----+----.
119   //                         |    |    |    |      |    |    |    |
120   //                         |    |    |----|      |----|    |    |
121   //                         |    |    |    |      |    |    |    |
122   //                         `--------------'      `--------------'
123   // See `users/pvinis/pvinis.h`
124   [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
125     _______, ________________NUMBERS_L__________________, _______,      _______, ________________NUMBERS_R__________________, _______,
126     _______, ________________CARPALX_L1_________________, _______,      _______, ________________CARPALX_R1_________________, _______,
127     _______, ________________CARPALX_L2_________________,                        ________________CARPALX_R2_________________, _______,
128     _______, ________________CARPALX_L3_________________, _______,      _______, ________________CARPALX_R3_________________, _______,
129     _______, _______, _______, _______, _______,                                          _______, _______, _______, _______, _______,
130                                                  _______, _______,      _______, _______,
131                                                           _______,      _______,
132                                         _______, _______, _______,      _______, _______, _______
133   ),
134
135   // See `users/pvinis/pvinis.h`
136   [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
137     _______, ______________________F_L__________________, KC_F11 ,      KC_F12 , ______________________F_R__________________, _______,
138     _______, _________________SYMBOL_L1_________________, _______,      _______, _________________SYMBOL_R1_________________, _______,
139     _______, _________________SYMBOL_L2_________________,                        _________________SYMBOL_R2_________________, _______,
140     _______, _________________SYMBOL_L3_________________, _______,      _______, _________________SYMBOL_R3_________________, _______,
141     _______, _______, _______, _______, _______,                                          _______, _______, _______, _______, _______,
142                                                  _______, _______,      _______, _______,
143                                                           _______,      _______,
144                                         _______, _______, _______,      _______, _______, _______
145   ),
146
147   // See `users/pvinis/pvinis.h`
148   [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
149     _______, _______, _______, _______, _______, _______, _______,      _______, _______, _______, _______, _______, _______, _______,
150     _______, _______, _______, _______, _______, _______, _______,      _______, _________________SYSCTL_R1_________________, _______,
151     _______, _______, _______, _______, _______, _______,                        _________________SYSCTL_R2_________________, _______,
152     _______, _______, _______, _______, _______, _______, _______,      _______, _________________SYSCTL_R3_________________, _______,
153     _______, _______, _______, _______, _______,                                          _______, _______, _______, _______, _______,
154
155                                                  _______, _______,      _______, _______,
156                                                           _______,      _______,
157                                         _______, _______, _______,      _______, _______, _______
158   ),
159
160   // See `users/pvinis/pvinis.h`
161   [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
162     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
163     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
164     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                        __________________KBCTL_R2_________________, XXXXXXX,
165     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
166     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,                                          _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
167
168                                                  XXXXXXX, XXXXXXX,      XXXXXXX, XXXXXXX,
169                                                           XXXXXXX,      XXXXXXX,
170                                         XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX, XXXXXXX, XXXXXXX
171   ),
172
173 /* MOUSE
174  * a keymap to control my system.
175  *
176  * ,--------------------------------------------------.           ,--------------------------------------------------.
177  * |   ^    |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
178  * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
179  * |        |      |      |      |      |      |      |           |      |      |      | MsUp |      |      |        |
180  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
181  * |        |      |      |      |      |      |------|           |------|      |MsLeft| MsDn |MsRght|      |        |
182  * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
183  * |        |      |      |      |      |      |      |           |      |      |      |      |      |      |        |
184  * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------'
185  *   |      |      |      |      |      |                                       |      |      |      |      |      |
186  *   `----------------------------------'                                       `----------------------------------'
187  *                                        ,-------------.       ,-------------.
188  *                                        |      |      |       |      |MidClk|
189  *                                 ,------|------|------|       |------+------+------.
190  *                                 |      |      |      |       |      |Left  |Right |
191  *                                 |      |      |------|       |------| Click| Click|
192  *                                 |      |      |  ^   |       |      |      |      |
193  *                                 `--------------------'       `--------------------'
194  */
195   [MOUSE] = LAYOUT_ergodox_pretty(
196    KC_TRNS    ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
197   ,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
198   ,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
199   ,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO    ,KC_NO
200   ,KC_NO      ,KC_NO  ,KC_NO  ,KC_NO  ,KC_NO
201
202                                                         ,KC_NO  ,KC_NO
203                                                                 ,KC_NO
204                                                 ,KC_NO  ,KC_NO  ,KC_TRNS
205
206                     ,KC_NO    ,KC_NO  ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
207                     ,KC_NO    ,KC_NO  ,KC_NO    ,KC_MS_U  ,KC_NO    ,KC_NO    ,KC_NO
208                               ,KC_NO  ,KC_MS_L  ,KC_MS_D  ,KC_MS_R  ,KC_NO    ,KC_NO
209                     ,KC_NO    ,KC_NO  ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
210                                       ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO    ,KC_NO
211
212             ,KC_NO  ,KC_NO
213             ,KC_NO
214             ,KC_NO  ,KC_NO  ,KC_NO
215   ),
216 };
217
218
219 // keyboard initialization
220 void keyboard_post_init_user_local(void) {
221   ergodox_led_all_on();
222   for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
223     ergodox_led_all_set(i);
224     wait_ms(5);
225   }
226   wait_ms(1000);
227   for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
228     ergodox_led_all_set(i);
229     wait_ms(10);
230   }
231   ergodox_led_all_off();
232
233   // restore default brightness for future use
234   ergodox_led_all_set(LED_BRIGHTNESS_HI);
235 }
236
237 // light up leds based on the layer
238 uint32_t layer_state_set_user_local(uint32_t state) {
239   ergodox_right_led_1_off();
240   ergodox_right_led_2_off();
241   ergodox_right_led_3_off();
242   switch (biton32(state)) {
243   case LR_SYSCTL:
244     ergodox_right_led_3_on(); // blue
245     break;
246   case LR_KBCTL:
247     ergodox_right_led_1_on(); // red
248     break;
249   case LR_SYMBOL:
250     ergodox_right_led_2_on(); // green
251     break;
252   default: break;
253   }
254   return state;
255 }
256
257 // extra keys
258 // const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
259   // switch (id) {
260   // }
261   // return MACRO_NONE;
262 // }
263
264 // tap dances
265
266 // flash keyboard on 4x tap, with leds
267 // void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
268 //   switch (state->count) {
269 //   case 1:
270 //     ergodox_right_led_3_on();
271 //     break;
272 //   case 2:
273 //     ergodox_right_led_2_on();
274 //     break;
275 //   case 3:
276 //     ergodox_right_led_1_on();
277 //     break;
278 //   case 4:
279 //     ergodox_right_led_3_off();
280 //     wait_ms(50);
281 //     ergodox_right_led_2_off();
282 //     wait_ms(50);
283 //     ergodox_right_led_1_off();
284 //     break;
285 //   }
286 // }
287
288 // void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
289 //   if (state->count >= 4) {
290 //     reset_keyboard();
291 //     reset_tap_dance(state);
292 //   }
293 // }
294
295 // void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
296 //   ergodox_right_led_1_off();
297 //   wait_ms(50);
298 //   ergodox_right_led_2_off();
299 //   wait_ms(50);
300 //   ergodox_right_led_3_off();
301 // }
302
303 // SYSCTL on first tap, MOUSE ON second tap
304 // void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
305 //   uint8_t layer = biton32(layer_state);
306
307 //   switch(state->count) {
308 //   case 1:
309 //     switch(layer) {
310 //     case LR_SYSCTL:
311 //       layer_off(LR_SYSCTL);
312 //       break;
313 //     case MOUSE:
314 //       layer_off(MOUSE);
315 //       break;
316 //     default:
317 //       layer_on(LR_SYSCTL);
318 //       break;
319 //     }
320 //     break;
321 //   case 2:
322 //     layer_on(MOUSE);
323 //     break;
324 //   }
325 // }
326
327 // qk_tap_dance_action_t tap_dance_actions[] = {
328   // [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
329   // [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
330 // };