]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/keebio/bfo9000/keymaps/andylikescandy6x18/keymap.c
[Keyboard] Move Keebio boards to own folder (#5109)
[qmk_firmware.git] / keyboards / keebio / bfo9000 / keymaps / andylikescandy6x18 / keymap.c
1 #include QMK_KEYBOARD_H
2
3 #include "action_layer.h"
4
5
6
7 #define _BASE 0
8 #define _QWERTY 1
9 #define _RAISE 2
10 #define _NAVIGATION 3
11
12 //Switch Layouts
13 #define SWBASE M(_BASE)
14 #define SWQWERTY M(_QWERTY)
15
16 // layer access
17 #define RSESPC LT( 2, KC_SPC)
18 #define NAVSPC LT( 3, KC_SPC)
19
20 // Key Combos
21 #define CTRLSFT LCTL(KC_LSFT)
22 #define CTLALTSFT LALT(LCTL(KC_LSFT))
23 #define CTLALTDEL LALT(LCTL(KC_DEL))
24
25 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26
27 [_BASE] = LAYOUT( \
28     CTLALTSFT,  KC_F1,    KC_F2,    KC_F3,   KC_F4,    KC_F5,         KC_F6,          KC_F7,            KC_F8,        KC_F9,          KC_F10,     KC_F11,             KC_F12,  KC_PSCREEN,  KC_PAUSE,   KC_CAPS,    KC_INSERT,      KC_EQL,     \
29     KC_GRV,     KC_1,     KC_2,     KC_3,    KC_4,     KC_5,          KC_HOME,        KC_NUMLOCK,       KC_KP_SLASH,  KC_KP_ASTERISK, KC_LBRC,    KC_RBRC,              KC_6,    KC_7,        KC_8,       KC_9,       KC_0,           KC_MINS,   \
30     KC_TAB,     KC_Q,     KC_W,     KC_F,    KC_P,     KC_G,          KC_END,         KC_P7,            KC_P8,        KC_P9,          KC_PMNS,    KC_PGUP,              KC_J,    KC_L,        KC_U,       KC_Y,       KC_SCLN,        KC_BSPC,         \
31     KC_ESC,     KC_A,     KC_R,     KC_S,    KC_T,     KC_D,          KC_DEL,         KC_P4,            KC_P5,        KC_P6,          KC_PPLS,    KC_PGDN,              KC_H,    KC_N,        KC_E,       KC_I,       KC_O,           KC_QUOT,          \
32     KC_LSFT,    KC_Z,     KC_X,     KC_C,    KC_V,     KC_B,          SFT_T(KC_ENT),  KC_P1,            KC_P2,        KC_P3,          KC_UP,      KC_BSLASH,            KC_K,    KC_M,        KC_COMM,    KC_DOT,     KC_SLSH,        SFT_T(KC_ENT),      \
33     KC_LCTL,    CTRLSFT,  KC_LGUI,  KC_LALT, RSESPC,   NAVSPC,        KC_LCTL,        KC_P0,            KC_PDOT,      KC_LEFT,        KC_DOWN,    KC_RGHT,              NAVSPC,  RSESPC,      KC_RALT,    KC_RGUI,    KC_APPLICATION, KC_RCTL       \
34 ),
35 [_QWERTY] = LAYOUT( \
36     CTLALTSFT,  KC_F1,    KC_F2,    KC_F3,   KC_F4,    KC_F5,         KC_F6,          KC_F7,            KC_F8,        KC_F9,          KC_F10,     KC_F11,               KC_F12,  KC_PSCREEN,  KC_PAUSE,   KC_CAPS,    KC_INSERT,      KC_EQL,     \
37     KC_GRV,     KC_1,     KC_2,     KC_3,    KC_4,     KC_5,          KC_HOME,        KC_NUMLOCK,       KC_KP_SLASH,  KC_KP_ASTERISK, KC_LBRC,    KC_RBRC,              KC_6,    KC_7,        KC_8,       KC_9,       KC_0,           KC_MINS,   \
38     KC_TAB,     KC_Q,     KC_W,     KC_E,    KC_R,     KC_T,          KC_END,         KC_P7,            KC_P8,        KC_P9,          KC_PMNS,    KC_PGUP,              KC_Y,    KC_U,        KC_I,       KC_O,       KC_P,        KC_BSPC,         \
39     KC_ESC,     KC_A,     KC_S,     KC_D,    KC_F,     KC_G,          KC_DEL,         KC_P4,            KC_P5,        KC_P6,          KC_PPLS,    KC_PGDN,              KC_H,    KC_J,        KC_K,       KC_L,       KC_SCLN,           KC_QUOT,          \
40     KC_LSFT,    KC_Z,     KC_X,     KC_C,    KC_V,     KC_B,          SFT_T(KC_ENT),  KC_P1,            KC_P2,        KC_P3,          KC_UP,      KC_BSLASH,            KC_N,    KC_M,        KC_COMM,    KC_DOT,     KC_SLSH,        SFT_T(KC_ENT),      \
41     KC_LCTL,    CTRLSFT,  KC_LGUI,  KC_LALT, RSESPC,   NAVSPC,        KC_LCTL,        KC_P0,            KC_PDOT,      KC_LEFT,        KC_DOWN,    KC_RGHT,              NAVSPC,  RSESPC,      KC_RALT,    KC_RGUI,    KC_APPLICATION, KC_RCTL       \
42 ),
43 [_RAISE] = LAYOUT( \
44     CTLALTDEL,  SWBASE,     SWQWERTY,   XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,   XXXXXXX,    XXXXXXX,                   XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    \
45     XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,   XXXXXXX,    XXXXXXX,                   XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    _______,    _______,    \
46     _______,    KC_EXLM,    KC_AT,      KC_HASH,    KC_DLR,         KC_PERC,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,   _______,    LCTL(KC_PGUP),             KC_CIRC,    KC_AMPR,    KC_ASTR,    KC_LPRN,    KC_RPRN,    _______,        \
47     KC_DEL,     KC_1,       KC_2,       KC_3,       KC_4,           KC_5,       XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,   _______,    LCTL(KC_PGDN),             KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       _______,      \
48     _______,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,    _______,      XXXXXXX,    XXXXXXX,    XXXXXXX,   _______,    LSFT(KC_BSLASH),           XXXXXXX,    _______,    _______,    _______,    _______,    _______,    \
49     _______,    _______,    _______,    _______,    _______,        _______,    _______,      _______,    _______,    _______,   _______,    _______,                   _______,    _______,    _______,    _______,    _______,    _______    \
50 ),
51 [_NAVIGATION] = LAYOUT( \
52     CTLALTDEL,  SWBASE,     SWQWERTY,   XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,   XXXXXXX,                   XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        \
53     XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,   XXXXXXX,                   XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    _______,        \
54     _______,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,    _______,   LCTL(KC_PGUP),             XXXXXXX,    KC_HOME,    KC_PGDN,    KC_PGUP,    KC_END,     _______,       \
55     KC_DEL,     _______,    XXXXXXX,    KC_LSFT,    KC_LCTL,        XXXXXXX,    XXXXXXX,      XXXXXXX,    XXXXXXX,    XXXXXXX,    _______,   LCTL(KC_PGDN),             XXXXXXX,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RIGHT,   _______,        \
56     _______,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,    _______,      XXXXXXX,    XXXXXXX,    XXXXXXX,    _______,   LSFT(KC_BSLASH),           XXXXXXX,    XXXXXXX,    _______,    _______,    _______,    _______,        \
57     _______,    _______,    _______,    _______,    _______,        _______,    _______,      _______,    _______,    _______,    _______,   _______,                   _______,    _______,    _______,    _______,    _______,    _______      \
58 )
59
60
61 };
62
63 void persistent_default_layer_set(uint16_t default_layer) {
64   eeconfig_update_default_layer(default_layer);
65   default_layer_set(default_layer);
66 }
67 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
68 {
69       switch(id) {
70         case _BASE:
71           if (record->event.pressed) {
72             persistent_default_layer_set(1UL<<_BASE);
73           }
74           break;
75         case _QWERTY:
76           if (record->event.pressed) {
77             persistent_default_layer_set(1UL<<_QWERTY);
78           }
79           break;
80       }
81     return MACRO_NONE;
82 };