]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/planck/keymaps/spacebarracecar/keymap.c
705f78f8eaa6f3d9d67143f4adfd513f838ce390
[qmk_firmware.git] / keyboards / planck / keymaps / spacebarracecar / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "spacebarracecar.h"
3
4 #define LOWER MO(_LOWER)
5 #define RAISE MO(_RAISE)
6
7 enum layers {
8   _BASE,
9   _LOWER,
10   _RAISE,
11   _MUSICMODE
12 };
13
14 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
15
16 /* Base Layer
17 ,-----------------------------------------------------------------------------------------------------------------------.
18 |Tab      |Q        |W        |E        |R        |T        |Z        |U        |I        |O        |P        |Backspace|
19 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
20 |Esc/Nav  |A        |S        |D        |F        |G        |H        |J        |K        |L        |;        |'        |
21 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
22 |Shift    |Y        |X        |C        |V        |B        |N        |M        |,        |.        |/        |Shift    |
23 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
24 |LCtrl    |         |Win      |Alt      |Lower    |Space    |Enter    |Raise    |AltGr    |Win      |Menu     |RCtrl    |
25 `-----------------------------------------------------------------------------------------------------------------------'
26 */
27
28 [_BASE] = LAYOUT_ortho_4x12(
29   KC_TAB,   DE_Q,     DE_W,     DE_E,     DE_R,     DE_T,     CU_Z,     DE_U,     DE_I,     DE_O,     DE_P,     KC_BSPC,
30   CU_NAV,   DE_A,     DE_S,     DE_D,     DE_F,     DE_G,     DE_H,     DE_J,     DE_K,     DE_L,     CU_SCLN,  CU_QUOT,
31   CU_LSFT,  CU_Y,     DE_X,     DE_C,     DE_V,     DE_B,     DE_N,     DE_M,     CU_COMM,  CU_DOT,   CU_SLSH,  CU_RSFT,
32   KC_LCTL,  XXXXXXX,  KC_LGUI,  KC_LALT,  LOWER,    KC_SPC,   KC_ENT,   RAISE,    KC_RALT,  KC_RGUI,  KC_APP,   KC_RCTL
33 ),
34
35 /* Lower
36 ,-----------------------------------------------------------------------------------------------------------------------.
37 |~        |!        |"        |#        |$        |%        |^        |&        |*        |(        |)        |         |
38 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
39 |         |@        |Strg+X   |Strg+C   |Strg+V   |         |         |_        |+        |{        |}        ||        |
40 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
41 |         |?        |         |         |         |         |         |         |         |         |         |         |
42 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
43 |         |         |         |         |         |         |         |         |         |         |         |         |
44 `-----------------------------------------------------------------------------------------------------------------------'
45 */
46 [_LOWER] = LAYOUT_ortho_4x12(
47   DE_TILD,  DE_EXLM,  DE_DQOT,  DE_HASH,  DE_DLR,   DE_PERC,  CU_CIRC,  DE_AMPR,  DE_ASTR,  DE_LPRN,  DE_RPRN,  _______,
48   _______,  DE_AT,    CTRLX,    CTRLC,    CTRLV,    XXXXXXX,  XXXXXXX,  DE_UNDS,  DE_PLUS,  DE_LCBR,  DE_RCBR,  DE_PIPE,
49   _______,  DE_EURO,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,  _______,  _______,  _______,
50   _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______
51 ),
52
53 /* Raise
54 ,-----------------------------------------------------------------------------------------------------------------------.
55 |`        |1        |2        |3        |4        |5        |6        |7        |8        |9        |0        |         |
56 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
57 |         |F1       |F2       |F3       |F4       |F5       |F6       |-        |=        |[        |]        |\        |
58 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
59 |         |F7       |F8       |F9       |F10      |F11      |F12      |         |         |         |         |         |
60 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
61 |         |         |         |         |         |         |         |         |         |         |         |         |
62 `-----------------------------------------------------------------------------------------------------------------------'
63 */
64
65 [_RAISE] = LAYOUT_ortho_4x12(
66   CU_GRV,   DE_1,     DE_2,     CU_3,     DE_4,     DE_5,     CU_6,     CU_7,     CU_8,     CU_9,     CU_0,     _______,
67   _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    DE_MINS,  CU_EQL,   CU_LBRC,  CU_RBRC,  CU_BSLS,
68   _______,  KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   _______,  _______,  _______,  _______,  _______,
69   _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______
70 ),
71
72 [_MUSICMODE] = LAYOUT_ortho_4x12(
73   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,
74   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,
75   XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,
76   KC_LCTL,  KC_LALT,  KC_LGUI,  KC_DOWN,  KC_UP,    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  MU_MOD,   MU_OFF
77 ),
78
79 /* Dead-Key
80 ,-----------------------------------------------------------------------------------------------------------------------.
81 |         |         |         |         |         |         |         |Ü        |         |Ö        |         |         |
82 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
83 |         |Ä        |ß        |         |         |         |         |         |         |         |         |         |
84 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
85 |         |         |         |         |         |         |         |         |         |         |         |         |
86 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
87 |         |         |         |         |         |"        |"        |         |         |         |         |         |
88 `-----------------------------------------------------------------------------------------------------------------------'
89 */
90
91 [_DEADKEY] = LAYOUT_ortho_4x12(
92   KC_TAB,   CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_UE,    CU_ED,    CU_OE,    CU_ED,    KC_BSPC,
93   CU_NAV,   CU_AE,    CU_SS,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_DDQ,
94   CU_LSFT,  CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_ED,    CU_RSFT,
95   KC_LCTL,  XXXXXXX,  KC_LGUI,  KC_LALT,  LOWER,    KC_SPC,   KC_ENT,   RAISE,    KC_RALT,  KC_RGUI,  KC_APP,   KC_RCTL
96 ),
97
98 /* Nav
99 ,-----------------------------------------------------------------------------------------------------------------------.
100 |Caps Lock|PageDown |Up       |PageUp   |Home     |         |         |         |Win+Up   |         |         |Del      |
101 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
102 |         |Left     |Down     |Right    |End      |         |         |Win+Left |Win+Down |Win+Right|         |Enter    |
103 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
104 |         |Prev     |Pause    |Next     |LowerVol |RaiseVol |Mute     |         |         |         |         |         |
105 |---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
106 |         |         |         |         |         |         |         |         |         |         |RESET    |         |
107 `-----------------------------------------------------------------------------------------------------------------------'
108 */
109
110 [_NAV] = LAYOUT_ortho_4x12(
111   CU_ESCT,  KC_PGDN,  KC_UP,    KC_PGUP,  KC_HOME,  XXXXXXX,  XXXXXXX,  XXXXXXX,  GUIU,     XXXXXXX,  XXXXXXX,  KC_DEL,
112   _______,  KC_LEFT,  KC_DOWN,  KC_RGHT,  KC_END,   XXXXXXX,  XXXXXXX,  GUIL,     GUID,     GUIR,     XXXXXXX,  KC_ENT,
113   _______,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_VOLD,  KC_VOLU,  KC_MUTE,  MU_ON,    XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,
114   RESET,    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  CU_GAME
115 )
116
117 };
118
119 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
120 switch (keycode) {
121   case MO(_LOWER):
122     if (game){
123       if(record->event.pressed) {
124         register_code(KC_SPC);
125       } else {
126         unregister_code(KC_SPC);
127       }
128       return false;
129     } else {
130       return true;
131     }
132   case MU_ON:
133     if(record->event.pressed) {
134       layer_off(_LOWER);
135       layer_off(_RAISE);
136       layer_off(_NAV);
137       layer_off(_DEADKEY);
138       layer_on(_MUSICMODE);
139     }
140     return true;
141   case MU_OFF:
142     if(record->event.pressed) {
143       layer_off(_MUSICMODE);
144     }
145     return true;
146   }
147   return process_record_userspace(keycode, record);
148 }