]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/handwired/not_so_minidox/keymaps/default/keymap.c
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / handwired / not_so_minidox / keymaps / default / keymap.c
1 #include QMK_KEYBOARD_H
2
3 extern keymap_config_t keymap_config;
4
5 // Each layer gets a name for readability, which is then used in the keymap matrix below.
6 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
7 // Layer names don't all need to be of the same length, obviously, and you can also skip them
8 // entirely and just use numbers.
9 #define _QWERTY 0
10 #define _LOWER 1
11 #define _RAISE 2
12 #define _ADJUST 16
13
14 enum custom_keycodes {
15   QWERTY = SAFE_RANGE,
16   LOWER,
17   RAISE,
18   ADJUST,
19 };
20
21 // Fillers to make layering more clear
22 #define _______ KC_TRNS
23 #define XXXXXXX KC_NO
24
25 #define KC_LOWR LOWER
26 #define KC_RASE RAISE
27 #define KC_RST  RESET
28 #define KC_CAD  LCTL(LALT(KC_DEL))
29
30 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32   [_QWERTY] = LAYOUT(
33 // ,-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------.
34     KC_TAB,    KC_Q,   KC_W,   KC_E,   KC_R,   KC_T,             KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,KC_BSPC,
35 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
36     KC_LCTL,   KC_A,   KC_S,   KC_D,   KC_F,   KC_G,             KC_H,   KC_J,   KC_K,   KC_L,KC_SCLN,KC_QUOT,
37 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
38     KC_LSFT,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,             KC_N,   KC_M,KC_COMM, KC_DOT,KC_SLSH, KC_ENT,
39 // '-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------'
40                               KC_LGUI,KC_LOWR, KC_SPC,       KC_SPC,KC_RASE,KC_RALT
41                           // `-------+-------+-------`     `-------+-------+-------`
42    ),
43
44   [_LOWER] = LAYOUT(
45 // ,-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------.
46      KC_ESC,   KC_1,   KC_2,   KC_3,   KC_4,   KC_5,             KC_6,   KC_7,   KC_8,   KC_9,   KC_0, KC_DEL,
47 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
48     _______,_______,_______,_______,_______,_______,          _______,_______,_______,KC_LCBR,KC_RCBR,KC_BSLS,
49 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
50     _______,_______,_______,_______,_______,_______,          _______,_______,_______,_______,_______,_______,
51 // '-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------'
52                               _______,_______,_______,      _______,_______,_______
53                           // `-------+-------+-------`     `-------+-------+-------`
54   ),
55
56   [_RAISE] = LAYOUT(
57  // ,-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------.
58       KC_GRV,KC_EXLM,  KC_AT,KC_HASH, KC_DLR,KC_PERC,          KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_DEL,
59  // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
60      _______,_______,_______,_______,KC_MINS, KC_EQL,          _______,  KC_UP,_______,KC_LBRC,KC_RBRC,KC_PIPE,
61  // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
62      _______,_______,_______,_______,_______,_______,          KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,
63  // '-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------'
64                                _______,_______,_______,      _______,_______,_______
65                            // `-------+-------+-------`     `-------+-------+-------`
66    ),
67   [_ADJUST] = LAYOUT(
68 // ,-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------.
69     _______,_______,_______,_______, KC_RST,_______,          _______,_______,_______,_______,_______, KC_CAD,
70 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
71     _______,_______,_______,_______,_______,_______,          _______,_______,_______,_______,_______,_______,
72 // |-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------|
73     _______,_______,_______,_______,_______,_______,          _______,_______,_______,_______,_______,_______,
74 // '-------+-------+-------+-------+-------+-------.         ,-------+-------+-------+-------+-------+-------'
75                               _______,_______,_______,      _______,_______,_______
76                           // `-------+-------+-------`     `-------+-------+-------`
77   )
78 };
79
80
81 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
82   switch (keycode) {
83     case QWERTY:
84       if (record->event.pressed) {
85         set_single_persistent_default_layer(_QWERTY);
86       }
87       return false;
88       break;
89     case LOWER:
90       if (record->event.pressed) {
91         layer_on(_LOWER);
92         update_tri_layer(_LOWER, _RAISE, _ADJUST);
93       } else {
94         layer_off(_LOWER);
95         update_tri_layer(_LOWER, _RAISE, _ADJUST);
96       }
97       return false;
98       break;
99     case RAISE:
100       if (record->event.pressed) {
101         layer_on(_RAISE);
102         update_tri_layer(_LOWER, _RAISE, _ADJUST);
103       } else {
104         layer_off(_RAISE);
105         update_tri_layer(_LOWER, _RAISE, _ADJUST);
106       }
107       return false;
108       break;
109     case ADJUST:
110       if (record->event.pressed) {
111         layer_on(_ADJUST);
112         update_tri_layer(_LOWER, _RAISE, _ADJUST);
113       } else {
114         layer_off(_ADJUST);
115         update_tri_layer(_LOWER, _RAISE, _ADJUST);
116       }
117       return false;
118       break;
119   }
120   return true;
121 }