]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/atreus/keymaps/jeremy/keymap.c
Merge branch 'master' into coderkun_neo2
[qmk_firmware.git] / keyboards / atreus / keymaps / jeremy / keymap.c
1 // This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
2
3 #include "atreus.h"
4 #include "action_layer.h"
5 #include "keymap_colemak.h"
6
7 #define PREVENT_STUCK_MODIFIERS
8
9 // Each layer gets a name for readability, which is then used in the keymap matrix below.
10 #define ALPH 0
11 #define NUMS 1
12 #define CURS 2
13 #define SYMB 3
14 #define FKEY 4
15
16 // Some handy macros to keep the keymaps clean and easier to maintain
17 #define KM_SAVE LGUI(CM_S)
18 #define KM_CLSE LGUI(CM_W)
19 #define KM_OPEN LGUI(CM_O)
20
21 #define KM_COPY LGUI(KC_C)
22 #define KM_CUT  LGUI(KC_X)
23 #define KM_PAST LGUI(KC_V)
24 #define KM_UNDO LGUI(KC_Z)
25 #define KM_REDO LGUI(LSFT(KC_Z))
26
27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [ALPH] = {
29   {KC_Q,    KC_W,           KC_E,           KC_R,    KC_T,    KC_TRNS, KC_Y,    KC_U,    KC_I,           KC_O,           KC_P},
30   {KC_A,    LT(NUMS, KC_S), LT(FKEY, KC_D), KC_F,    KC_G,    KC_TRNS, KC_H,    KC_J,    LT(CURS, KC_K), LT(SYMB, KC_L), KC_SCLN},
31   {KC_Z,    KC_X,           KC_C,           KC_V,    KC_B,    KC_LALT, KC_N,    KC_M,    KC_COMM,        KC_DOT,         KC_SLSH},
32   {KC_LCTL, KC_ESC,         KC_NO,          KC_LSFT, KC_SPC,  KC_LGUI, KC_ENT,  KC_RSFT, KC_NO,          KC_ESC,         KC_RCTL}
33 },
34 [NUMS] = {
35   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_ASTR, KC_SLSH, KC_TRNS, KC_TRNS, KC_7,    KC_8,           KC_9,           KC_SLSH},
36   {KC_TRNS, KC_TRNS,        KC_EQL,         KC_PLUS, KC_MINS, KC_TRNS, KC_LPRN, KC_4,    KC_5,           KC_6,           KC_ASTR},
37   {KC_TRNS, KC_TRNS,        KC_DOT,         KC_COMM, CM_SCLN, KC_TRNS, KC_RPRN, KC_1,    KC_2,           KC_3,           KC_MINS},
38   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0,    KC_DOT,         KC_EQL,         KC_PLUS}
39 },
40 [CURS] = {
41   {KC_TRNS, KC_BSPC,        KC_UP,          KC_DELT, KC_PGUP, KC_TRNS, KC_TRNS, KM_SAVE, KC_TRNS,        KM_OPEN,        KC_TRNS},
42   {KC_TRNS, KC_LEFT,        KC_DOWN,        KC_RGHT, KC_PGDN, KC_TRNS, KM_UNDO, KC_LALT, KC_TRNS,        KC_LGUI,        KC_TRNS},
43   {KC_TRNS, KC_VOLD,        KC_MUTE,        KC_VOLU, KC_MPLY, KM_COPY, KM_REDO, KM_CLSE, KC_TRNS,        KC_TRNS,        KC_TRNS},
44   {KC_TRNS, KC_TRNS,        RESET,          KC_TRNS, KC_TAB,  KM_CUT,  KM_PAST, KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS}
45 },
46 [SYMB] = {
47   {KC_BSLS, KC_EXLM,        KC_LABK,        KC_RABK, CM_COLN, KC_TRNS, KC_UNDS, KC_DLR,  KC_QUES,       KC_TRNS,         KC_PERC},
48   {KC_AT,   KC_AMPR,        KC_LPRN,        KC_RPRN, CM_SCLN, KC_TRNS, KC_COMM, KC_DOT,  KC_QUOT,       KC_TRNS,         KC_TILD},
49   {KC_HASH, KC_PIPE,        KC_LCBR,        KC_RCBR, KC_SLSH, KC_TRNS, KC_TRNS, KC_GRV,  KC_DQT,        KC_TRNS,         KC_CIRC},
50   {KC_TRNS, KC_TRNS,        KC_LBRC,        KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,         KC_TRNS}
51 },
52 [FKEY] = {
53   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F9,   KC_F10,        KC_F11,          KC_F12},
54   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F5,   KC_F6,         KC_F7,           KC_F8},
55   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1,   KC_F2,         KC_F3,           KC_F4},
56   {KC_TRNS, KC_TRNS,        KC_TRNS,        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,       KC_TRNS,         KC_TRNS}
57 }};
58
59 const uint16_t PROGMEM fn_actions[] = {};
60
61 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
62 {
63   switch(id) {}
64
65   return MACRO_NONE;
66 };