]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/chimera_ortho/keymaps/default/keymap.c
[Keyboard] Add QMK configurator JSON for Alice PCB (#6397)
[qmk_firmware.git] / keyboards / chimera_ortho / keymaps / default / keymap.c
1 // this is the style you want to emulate.
2 // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
3
4 #include QMK_KEYBOARD_H
5
6 // Each layer gets a name for readability, which is then used in the keymap matrix below.
7 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
8 // Layer names don't all need to be of the same length, obviously, and you can also skip them
9 // entirely and just use numbers.
10 enum chimera_ortho_layers {
11   _QWERTY,
12   _CAPS,
13   _NUMPAD,
14   _SYMBOLS,
15   _MACROS,
16   _NAV
17 };
18
19 #define KC_NMPD TG(_NUMPAD)
20 #define KC_SYMB TG(_SYMBOLS)
21 #define KC_SPFN LT(_NAV,KC_EQL)
22 #define KC_SCTL MT(MOD_LCTL, KC_LBRC)
23 #define KC_SCTR MT(MOD_LCTL, KC_RBRC)
24 #define KC_SPLT MT(MOD_LALT, KC_MINS)
25 #define KC_SPRT MT(MOD_LALT, KC_1)
26 #define KC_GBRC MT(MOD_RGUI, KC_8)
27 #define KC_GQOT MT(MOD_LGUI, KC_QUOT)
28 #define KC_MESC LT(_MACROS, KC_ESC)
29 #define KC_CAD LALT(LCTL(KC_DEL))
30
31 enum custom_keycodes {
32   KC_INCL = SAFE_RANGE,
33   KC_PULL,
34   KC_PUSH,
35   KC_SCAP,
36   KC_SCOF
37 };
38
39 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40
41   [_QWERTY] = LAYOUT(
42   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
43      KC_MESC, KC_Q  , KC_W  , KC_E  , KC_R  , KC_T  ,KC_SCTL,      KC_SCTR, KC_Y  , KC_U  , KC_I  , KC_O  , KC_P  ,KC_QUOT,
44   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
45      KC_TAB , KC_A  , KC_S  , KC_D  , KC_F  , KC_G  ,KC_SPLT,      KC_SPRT, KC_H  , KC_J  , KC_K  , KC_L  ,KC_SCLN,KC_ENT ,
46   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
47      KC_LSPO, KC_Z  , KC_X  , KC_C  , KC_V  , KC_B  ,KC_SPFN,      KC_GBRC, KC_N  , KC_M  ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSPC,
48   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
49                                      KC_NMPD,KC_BSPC,                      KC_SPC ,KC_SYMB
50   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
51   ),
52
53   [_CAPS] = LAYOUT(
54   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
55      _______,_______,_______,_______,_______,_______,_______,      _______,_______,_______,_______,_______,_______,_______,
56   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
57      _______,_______,_______,_______,_______,_______,KC_UNDS,      _______,_______,_______,_______,_______,KC_COLN,_______,
58   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
59      KC_SCOF,_______,_______,_______,_______,_______,_______,      _______,_______,_______,_______,_______,_______,KC_SCOF,
60   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
61                                      _______,_______,                      _______,_______
62   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
63   ),
64
65   [_NUMPAD] = LAYOUT(
66   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
67      _______,_______,KC_COLN,_______,_______,_______,_______,      _______,_______, KC_7  , KC_8  , KC_9  ,KC_ASTR,KC_MINS,
68   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
69      _______,_______,KC_DOT ,_______,_______,_______,_______,      _______,_______, KC_4  , KC_5  , KC_6  ,KC_PLUS,_______,
70   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
71      _______,_______,_______,_______,_______,_______,_______,      _______,_______, KC_1  , KC_2  , KC_3  ,KC_SLSH,_______,
72   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
73                                      _______,_______,                      _______, KC_0
74   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
75   ),
76
77   [_SYMBOLS] = LAYOUT(
78   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
79      _______,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC,_______,      _______,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSLS,
80   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
81      _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,_______,      _______,KC_TILD,KC_COLN,KC_UNDS,KC_LCBR,KC_RCBR,_______,
82   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
83      _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,_______,      _______,KC_GRV ,KC_SCLN,KC_MINS,KC_LBRC,KC_RBRC,_______,
84   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
85                                      KC_PIPE,_______,                      _______,_______
86   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
87   ),
88
89   [_NAV] = LAYOUT(
90   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
91      _______,_______,_______,_______,_______,_______,_______,      _______,_______,_______, KC_UP ,_______,KC_PSCR,_______,
92   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
93      _______,_______,_______,_______,_______,_______,_______,      _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,
94   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
95      _______,_______,_______,_______,_______,_______,_______,      _______,_______,KC_PGUP,KC_PGDN,_______,_______,_______,
96   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
97                                      _______,KC_DEL ,                      _______,_______
98   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
99   ),
100
101   [_MACROS] = LAYOUT(
102   //,-------+-------+-------+-------+-------+-------+-------.     ,-------+-------+-------+-------+-------+-------+-------.
103      _______,_______,_______,_______,_______,_______,_______,      _______,_______,_______,KC_INCL,_______,_______,_______,
104   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
105      _______,_______,_______,KC_CAD ,_______,_______,_______,      _______,_______,_______,_______,_______,_______,_______,
106   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
107      KC_SCAP,_______,_______,_______,_______,_______,_______,      _______,_______,_______,KC_PULL,KC_PUSH,_______,KC_SCAP,
108   //|-------+-------+-------+-------+-------+-------+-------|     |-------+-------+-------+-------+-------+-------+-------|
109                                      _______,_______,                      _______,_______
110   // \------------------------------+-------+-------+------/       \------+-------+-------+------------------------------/
111   )
112
113 };
114
115
116 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
117   switch(keycode) {
118     /* include some kind of library or header */
119     case KC_INCL:
120       if (record->event.pressed) {
121         SEND_STRING("#include <>" SS_TAP(X_LEFT));
122       }
123       return false;
124     case KC_PULL:
125       if (record->event.pressed) {
126         SEND_STRING("git pull" SS_TAP(X_ENTER));
127       }
128       return false;
129     case KC_PUSH:
130       if (record->event.pressed){
131         SEND_STRING("git push" SS_TAP(X_ENTER));
132       }
133       return false;
134     case KC_SCAP:
135       if (record->event.pressed){
136         layer_on(_CAPS);
137         register_code(KC_CAPSLOCK);
138         unregister_code(KC_CAPSLOCK);
139       }
140       return false;
141     case KC_SCOF:
142       if (record->event.pressed){
143         layer_off(_CAPS);
144         register_code(KC_CAPSLOCK);
145         unregister_code(KC_CAPSLOCK);
146       }
147       return false;
148   }
149   return true;
150 };
151
152
153 void matrix_scan_user(void) {
154     uint8_t layer = biton32(layer_state);
155
156     switch (layer) {
157       case _QWERTY:
158           set_led_green;
159           break;
160         case _CAPS:
161       set_led_white;
162       break;
163         case _NUMPAD:
164             set_led_blue;
165             break;
166         case _SYMBOLS:
167             set_led_red;
168             break;
169         case _NAV:
170       set_led_magenta;
171       break;
172         case _MACROS:
173       set_led_cyan;
174       break;
175        default:
176             set_led_green;
177             break;
178     }
179 };