]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/atom47/keymaps/maartenwut/keymap.c
Remove redundant KC_TRNS and KC_NO fillers in remaining keymaps (#5154)
[qmk_firmware.git] / keyboards / atom47 / keymaps / maartenwut / keymap.c
1 #include QMK_KEYBOARD_H
2
3 // Each layer gets a name for readability, which is then used in the keymap matrix below.
4 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
5 // Layer names don't all need to be of the same length, obviously, and you can also skip them
6 // entirely and just use numbers.
7
8 #define _MA 0 //Main layer
9 #define _LO 1 //FN1
10 #define _RA 2 //FN
11
12 enum custom_keycodes {
13     CTRLZ = SAFE_RANGE,
14     CTRLX,
15     CTRLC,
16     CTRLV
17 };
18
19 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [_MA] = LAYOUT(
21   KC_GESC,              KC_Q,           KC_W,           KC_E,           KC_R,           KC_T,           KC_Y,           KC_U,           KC_I,           KC_O,           KC_P,           KC_DEL,         KC_BSPC,        \
22   KC_TAB,               KC_A,           KC_S,           KC_D,           KC_F,           KC_G,           KC_H,           KC_J,           KC_K,           KC_L,           KC_SCLN,                                KC_ENT,         \
23   KC_LSFT,                                      KC_Z,           KC_X,           KC_C,           KC_V,           KC_B,           KC_N,           KC_M,           KC_COMM,        KC_DOT,         KC_SLSH,        KC_RSFT,        \
24   KC_LCTL,              KC_LGUI,        KC_LALT,        MO(_LO),                                KC_SPC,                                 KC_SPC,                                 MO(_RA),        KC_RALT,        KC_APP,         KC_RCTRL),      \
25
26 [_LO] = LAYOUT(
27   KC_GRV,               KC_F1,          KC_F2,          KC_F3,          KC_F4,          KC_F5,          KC_F6,          KC_F7,          KC_F8,          KC_F9,          KC_F10,         KC_F11,         KC_F12,         \
28   KC_1,                 KC_2,           KC_3,           KC_4,           KC_5,           KC_6,           KC_7,           KC_8,           KC_9,           KC_0,           KC_MINS,                                KC_EQL,         \
29   _______,                                      CTRLZ,          CTRLX,          CTRLC,          CTRLV,          _______,        _______,        KC_QUOT,        KC_LBRC,        KC_RBRC,        KC_BSLS,        _______,        \
30   _______,              _______,        _______,        _______,                                _______,                                _______,                                _______,        _______,        _______,        RESET), \
31
32 [_RA] = LAYOUT(
33   _______,              _______,        _______,        _______,        _______,        _______,        _______,        KC_PGUP,        KC_UP,          KC_PGDN,        _______,        _______,        _______,        \
34   KC_CAPS,              _______,        _______,        _______,        _______,        _______,        _______,        KC_LEFT,        KC_DOWN,        KC_RIGHT,       _______,                                _______,        \
35   _______,                                      _______,        _______,        _______,        _______,        _______,        _______,        _______,        KC_VOLD,        KC_VOLU,        KC_MPLY,        KC_PSCR,        \
36   _______,              _______,        _______,        _______,                                _______,                                _______,                                _______,        _______,        _______,        _______),       \
37
38 };
39
40 void led_set_user(uint8_t usb_led) {
41     if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
42         // Turn capslock on
43                 PORTE &= ~(1 << 6);
44     } else {
45         // Turn capslock off
46         PORTE |= (1 << 6);
47     }
48 }
49
50 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
51     if (record->event.pressed) {
52         switch(keycode) {
53             case CTRLZ:
54                 SEND_STRING(SS_LCTRL("z"));
55                 return false;
56             case CTRLX:
57                 SEND_STRING(SS_LCTRL("x"));
58                 return false;
59             case CTRLC:
60                 SEND_STRING(SS_LCTRL("c"));
61                 return false;
62             case CTRLV:
63                 SEND_STRING(SS_LCTRL("v"));
64                 return false;
65         }
66     }
67     return true;
68 };