]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/crkbd/keymaps/vxid/keymap.c
[Keymap] Add crkbd/vxid keymap (#6281)
[qmk_firmware.git] / keyboards / crkbd / keymaps / vxid / keymap.c
1 #include QMK_KEYBOARD_H
2 #include "bootloader.h"
3 #ifdef PROTOCOL_LUFA
4   #include "lufa.h"
5   #include "split_util.h"
6 #endif
7
8 extern keymap_config_t keymap_config;
9
10 extern uint8_t is_master;
11
12 #define _QWERTY 0
13 #define _LOWER 1
14 #define _RAISE 2
15
16 enum custom_keycodes {
17   QWERTY = SAFE_RANGE,
18   LOWER,
19   RAISE
20 };
21
22 #define KC______ KC_TRNS
23 #define KC_XXXXX KC_NO
24 #define KC_LOWER LOWER
25 #define KC_RAISE RAISE
26
27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28   [_QWERTY] = LAYOUT_kc( \
29   //,-----------------------------------------.                ,-----------------------------------------.
30           Q,     W,     E,     R,     T,   ESC,                    DEL,     Y,     U,     I,     O,     P,\
31   //|------+------+------+------+------+------|                |------+------+------+------+------+------|
32           A,     S,     D,     F,     G,   SPC,                   BSPC,     H,     J,     K,     L,  SCLN,\
33   //|------+------+------+------+------+------|                |------+------+------+------+------+------|
34           Z,     X,     C,     V,     B,   TAB,                    ENT,     N,     M,  COMM,   DOT,  SLSH,\
35   //|------+------+------+------+------+------+------|  |------+------+------+------+------+------+------|
36                                    LALT,  LGUI,  LCTL,     LSFT, RAISE, LOWER \
37                               //`--------------------'  `--------------------'
38   ),
39
40   [_LOWER] = LAYOUT_kc( \
41   //,-----------------------------------------.                ,------------------------------------------.
42           1,     2,     3,     4,     5, XXXXX,                   XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
43   //|------+------+------+------+------+------|                |-------+------+------+------+------+------|
44           6,     7,     8,     9,     0, XXXXX,                   XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
45   //|------+------+------+------+------+------|                |-------+------+------+------+------+------|
46         EQL,  PLUS,  MINS,  SLSH,  ASTR, XXXXX,                   XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
47   //|------+------+------+------+------+------+------|  |------+-------+------+------+------+------+------|
48                                    LALT,  LGUI,  LCTL,     LSFT, RAISE, LOWER \
49                               //`--------------------'  `--------------------'
50   ),
51
52   [_RAISE] = LAYOUT_kc( \
53   //,-----------------------------------------.                ,------------------------------------------.
54        EXLM,    AT,  HASH,   DLR,  PERC,  LPRN,                    RPRN, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
55   //|------+------+------+------+------+------|                |-------+------+------+------+------+------|
56        CIRC,  AMPR,  ASTR,  QUOT,  DQUO,  LCBR,                    RCBR,  LEFT,  DOWN,    UP, RIGHT, XXXXX,\
57   //|------+------+------+------+------+------|                |-------+------+------+------+------+------|
58        BSLS,  TILD,   GRV,  UNDS,  PIPE,  LBRC,                    RBRC, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,\
59   //|------+------+------+------+------+------+------|  |------+-------+------+------+------+------+------|
60                                    LALT,  LGUI,  LCTL,     LSFT, RAISE, LOWER \
61                               //`--------------------'  `--------------------'
62   )
63 };
64
65 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
66   switch (keycode) {
67     case LOWER:
68       if (record->event.pressed) {
69         layer_on(_LOWER);
70       } else {
71         layer_off(_LOWER);
72       }
73       return false;
74       break;
75     case RAISE:
76       if (record->event.pressed) {
77         layer_on(_RAISE);
78       } else {
79         layer_off(_RAISE);
80       }
81       return false;
82       break;
83   }
84   return true;
85 }