]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/atreus/keymaps/dvorak_42_key/keymap.c
Update KBD67 readme so that it mentions the KBD65 PCB (#5143)
[qmk_firmware.git] / keyboards / atreus / keymaps / dvorak_42_key / keymap.c
1
2 #include QMK_KEYBOARD_H
3
4 // layers
5 #define BASE      0
6 #define KEYNAV    1
7 #define KEYSEL    2
8 #define COMBINED  3
9 #define BROWSER_CONTROL 4
10
11 // aliases
12 // shell
13 #define SHELL_DEL_WORD RCTL(KC_W)
14 // android studio
15
16 #define AS_TABLEFT LALT(KC_LEFT)
17 #define AS_TABRIGHT LALT(KC_RIGHT)
18 #define AS_SYMBOL LCTL(LALT(KC_N))
19 #define AS_CLASS LCTL(KC_N)
20 #define AS_FINDUSAGE LALT(KC_F7)
21 #define AS_BACK LCTL(LALT(KC_LEFT))
22 #define AS_GO_DECLARATION LCTL(KC_B)
23 #define AS_GO_IMPLEMENTATION LCTL(LALT(KC_B))
24 #define AS_CLOSETAB LCTL(KC_F4)
25 #define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4))
26
27 enum custom_keycodes {
28   PLACEHOLDER = SAFE_RANGE, // can always be here
29
30   // Cloud9 macros
31   CLOUD9_TAB_LEFT,
32   CLOUD9_TAB_RIGHT,
33   CLOUD9_TAB_CLOSE,
34   CLOUD9_GOTO_SYMBOL,
35   CLOUD9_GOTO_LINE,
36   CLOUD9_NAVIGATE,
37
38 };
39
40 // building instructions:
41 // make atreus:dvorak_42_key
42
43 // flashing instructions:
44 // avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex  -P COM7
45
46 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47   [BASE] = LAYOUT(
48     KC_QUOTE,      KC_COMMA,      KC_DOT,     KC_P,                KC_Y,                                 KC_F,       KC_G,      KC_C,    KC_R,          KC_L,
49     KC_A,          KC_O,          KC_E,       KC_U,                KC_I,                                 KC_D,       KC_H,      KC_T,    KC_N,          KC_S,
50     KC_SCOLON,     KC_Q,          KC_J,       KC_K,                KC_X,                                 KC_B,       KC_M,      KC_W,    KC_V,          KC_Z,
51     OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER,   KC_SPACE,  KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT)
52   ),
53
54   [KEYNAV] = LAYOUT(
55     KC_ESC,             AS_GO_IMPLEMENTATION,  RCTL(KC_Z),      RCTL(KC_S),       MEH(KC_A),                           MEH(KC_B),     KC_HOME,    KC_UP,           KC_END,     KC_PGUP,
56     AS_BACK,            AS_SYMBOL,             RSFT(KC_TAB),    KC_TAB,           SHELL_DEL_WORD,                      LCTL(KC_LEFT), KC_LEFT,    KC_DOWN,         KC_RIGHT,   LCTL(KC_RIGHT),
57     AS_FINDUSAGE,       AS_CLASS,              AS_TABLEFT,      AS_TABRIGHT,      AS_CLOSETAB,                         KC_TRNS,       RCTL(KC_C), RCTL(KC_X),      RCTL(KC_V), KC_PGDOWN,
58     AS_CLOSETOOLWINDOW, AS_GO_DECLARATION,     KC_TRNS,         KC_TRNS,          KC_TRNS,          KC_TRNS, KC_ENTER, KC_SPACE,      KC_BSPC,    RCTL(KC_BSPC),   KC_DELETE,  LCTL(KC_DELETE)
59   ),
60
61   [KEYSEL] = LAYOUT(
62     MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K),                    KC_TRNS,             RSFT(KC_HOME), RSFT(KC_UP),   RSFT(KC_END),   RSFT(KC_PGUP),
63     MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P),                    RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)),
64     MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U),                    KC_TRNS,             RCTL(KC_C),    RCTL(KC_X),    RCTL(KC_V),     RSFT(KC_PGDN),
65     RESET,     KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_ENTER, KC_SPACE,            KC_BSPC,       RCTL(KC_BSPC), KC_DELETE,      LCTL(KC_DELETE)
66   ),
67
68   [COMBINED] = LAYOUT(
69     KC_EXLM, KC_AT,   KC_HASH,     KC_DLR,      KC_PERC,                   KC_PLUS,  KC_7, KC_8,   KC_9,    KC_ASTR,
70     KC_LPRN, KC_RPRN, KC_LBRACKET, KC_RBRACKET, KC_UNDS,                   KC_MINS,  KC_4, KC_5,   KC_6,    KC_SLSH,
71     KC_COLN, KC_DQUO, KC_LCBR,     KC_RCBR,     KC_AMPR,                   KC_EQUAL, KC_1, KC_2,   KC_3,    KC_QUES,
72     KC_TRNS, KC_TILD, KC_GRAVE,    KC_CIRC,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_0, KC_DOT, KC_PIPE, KC_BSLS
73   ),
74
75   [BROWSER_CONTROL] = LAYOUT(
76     MEH(KC_0), KC_BTN3,   KC_MS_U,   KC_BTN1,   KC_BTN2,                      KC_UP,      KC_PGUP,            KC_PGDN,      KC_MS_WH_UP,   MEH(KC_9),
77     MEH(KC_1), KC_MS_L,   KC_MS_D,   KC_MS_R,   MEH(KC_6),                    KC_DOWN,    RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT),
78     MEH(KC_2), MEH(KC_3), MEH(KC_4), MEH(KC_5), MEH(KC_7),                    MEH(KC_8),  RCTL(KC_1),         RCTL(KC_9),   KC_F6,         KC_F5,
79     KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), RSFT(RCTL(KC_TAB)), KC_TRNS,      KC_TRNS,       KC_TRNS
80   ),
81 };
82
83 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
84   if(record->event.pressed) {
85     switch (keycode) {
86                 // Cloud9 macros
87                 case CLOUD9_TAB_LEFT:
88             SEND_STRING(SS_LCTRL("["));
89             return true;
90                         break;
91                 case CLOUD9_TAB_RIGHT:
92             SEND_STRING(SS_LCTRL("]"));
93             return true;
94                         break;
95                 case CLOUD9_TAB_CLOSE:
96             SEND_STRING(SS_LALT("w"));
97             return true;
98                         break;
99                 case CLOUD9_GOTO_SYMBOL:
100             SEND_STRING(SS_LSFT(SS_LCTRL("e")));
101             return true;
102                         break;
103                 case CLOUD9_GOTO_LINE:
104             SEND_STRING(SS_LCTRL("g"));
105             return true;
106                         break;
107                 case CLOUD9_NAVIGATE:
108             SEND_STRING(SS_LCTRL("e"));
109             return true;
110                         break;
111         }
112   }
113
114   return true;
115 }
116