]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/ergodox_ez/keymaps/bocaj/bocaj.h
Keymap: Bocaj Ergodox Updates (#3364)
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / bocaj / bocaj.h
1 /*
2 Copyright 2018 Jacob Jerrell <jacob.jerrell@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include "quantum.h"
19
20 // Layers
21 enum layers {
22   _SWRKMN = 0,
23   _HWRKMN,
24   _LOWER,
25   _RAISE,
26   _ADJUST,
27   _DIABLO
28 };
29
30
31
32 enum custom_keycodes {
33   KC_EPRM = SAFE_RANGE,
34   KC_SWRK,
35   KC_HWRK,
36   KC_VRSN,
37   JJ_COPY,
38   JJ_PASTE,
39   JJ_ARRW,
40   MC_LOCK,
41   KC_DIABLO_CLEAR,
42   KC_NMPD
43 //  UC_FLIP
44 };
45
46 // Space Cadet Hyper/Meh and [/]
47 #define HYP_LBK ALL_T(KC_LBRACKET)
48 #define MEH_RBK MEH_T(KC_RBRACKET)
49
50 #define KC_LWSP LT(_LOWER, KC_SPACE)
51 #define KC_RSEN LT(_RAISE, KC_ENTER)
52 #define KC_ADJS TT(_ADJUST)
53
54 #define XXXXXXX KC_NO
55 #define _______ KC_TRNS
56
57 #ifdef TAP_DANCE_ENABLE
58 enum {
59   TD_D3_1 = 0,
60   TD_D3_2,
61   TD_D3_3,
62   TD_D3_4
63 };
64 #endif // TAP_DANCE_ENABLE
65
66 // Custom Keycodes for Diablo 3 layer
67 // But since TD() doesn't work when tap dance is disabled
68 // We use custom codes here, so we can substitute the right stuff
69 #ifdef TAP_DANCE_ENABLE
70 #define KC_D3_1 TD(TD_D3_1)
71 #define KC_D3_2 TD(TD_D3_2)
72 #define KC_D3_3 TD(TD_D3_3)
73 #define KC_D3_4 TD(TD_D3_4)
74 #else // TAP_DANCE_ENABLE
75 #define KC_D3_1 KC_1
76 #define KC_D3_2 KC_2
77 #define KC_D3_3 KC_3
78 #define KC_D3_4 KC_4
79 #endif // TAP_DANCE_ENABLE
80
81 //define diablo macro timer variables
82 extern uint16_t diablo_timer[4];
83 extern uint8_t diablo_times[];
84 extern uint8_t diablo_key_time[4];
85
86
87 void run_diablo_macro_check(void);
88
89
90 #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
91
92 /* Pretty Layout
93 .---------------------------------------------.         .---------------------------------------------.
94 |   1   |  2  |  3  |  4  |  5  |  6  |   7   |         !   8   |  9  |  10 |  11 |  12 |  13 |   14  |
95 !-------+-----+-----+-----+-----+-------------!         !-------+-----+-----+-----+-----+-----+-------!
96 |   15  |  16 |  17 |  18 |  19 |  20 |   21  |         !   22  |  23 |  24 |  25 |  26 |  27 |   28  |
97 !-------+-----+-----+-----x-----x-----!       !         !       !-----x-----x-----+-----+-----+-------!
98 |   29  |  30 |  31 |  32 |  33 |  34 |-------!         !-------!  35 |  36 |  37 |  38 |  39 |   40  |
99 !-------+-----+-----+-----x-----x-----!       !         !       !-----x-----x-----+-----+-----+-------!
100 |   41  |  42 |  43 |  44 |  45 |  46 |   47  |         !   48  |  49 |  50 |  51 |  52 |  53 |   54  |
101 '-------+-----+-----+-----+-----+-------------'         '-------------+-----+-----+-----+-----+-------'
102  |  55  |  56 |  57 |  58 |  59 | .---------------. .---------------. !  60 |  61 |  62 |  63 |   64 |
103  '------------------------------' |   65  |   66  | !   67  |   68  | '------------------------------'
104                           .-------+-------+-------! !-------+-------+-------.
105                           !       !       |   69  | !   70  |       !       !
106                           !       !       !-------! !-------!       !       !
107                           |   71  |   72  |   73  | !   74  |   75  |   76  |
108                           '-----------------------' '-----------------------'
109 */
110
111 #define ______________________NUMBER_LEFT________________________       KC_1,     KC_2,           KC_3,           KC_4,           KC_5
112 #define ______________________NUMBER_RIGHT_______________________       KC_6,     KC_7,           KC_8,           KC_9,           KC_0
113
114 #define ______________________SPECIAL_LEFT_______________________       KC_EXLM,  KC_AT,          KC_HASH,        KC_DLR,         KC_PERC
115 #define ______________________SPECIAL_RIGHT______________________       KC_CIRC,  KC_AMPR,        KC_ASTR,        KC_LPRN,        KC_RPRN
116
117 #define _______________________FUNC_LEFT_________________________       KC_F1,    KC_F2,          KC_F3,          KC_F4,          KC_F5
118 #define _______________________FUNC_RIGHT________________________       KC_F6,    KC_F7,          KC_F8,          KC_F9,          KC_F10
119
120 #define _________________________________________________________       KC_TRNS,  KC_TRNS,        KC_TRNS,        KC_TRNS,        KC_TRNS
121 #define XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       KC_NO,    KC_NO,          KC_NO,          KC_NO,          KC_NO
122
123 #define _______________________SWORKMAN_L1_______________________       KC_Q,     KC_W,           KC_E,           KC_R,           KC_T
124 #define _______________________SWORKMAN_L2_______________________       KC_A,     SFT_T(KC_S),    GUI_T(KC_D),    ALT_T(KC_F),    KC_G
125 #define _______________________SWORKMAN_L3_______________________ CTL_T(KC_Z),    KC_X,           KC_C,           KC_V,           KC_B
126
127 #define _______________________SWORKMAN_R1_______________________       KC_Y,     KC_U,           KC_I,           KC_O,           KC_P
128 #define _______________________SWORKMAN_R2_______________________       KC_H,     ALT_T(KC_J),    GUI_T(KC_K),    SFT_T(KC_L),    KC_SCLN
129 #define _______________________SWORKMAN_R3_______________________       KC_N,     KC_M,           KC_COMM,        KC_DOT,         CTL_T(KC_SLASH)
130
131 // Hardware Driven Workman
132 #define _______________________HWORKMAN_L1_______________________       KC_Q,     KC_D,           KC_R,           KC_W,           KC_B
133 #define _______________________HWORKMAN_L2_______________________       KC_A,     SFT_T(KC_S),    GUI_T(KC_H),    ALT_T(KC_T),    KC_G
134 #define _______________________HWORKMAN_L3_______________________ CTL_T(KC_Z),    KC_X,           KC_M,           KC_C,           KC_V
135
136 #define _______________________HWORKMAN_R1_______________________       KC_J,     KC_F,           KC_U,           KC_P,           KC_SCLN
137 #define _______________________HWORKMAN_R2_______________________       KC_Y,     ALT_T(KC_N),    GUI_T(KC_E),    SFT_T(KC_O),    KC_I
138 #define _______________________HWORKMAN_R3_______________________       KC_K,     KC_L,           KC_COMM,        KC_DOT,         CTL_T(KC_SLASH)
139
140 #define ___________________ERGODOX_BOTTOM_LEFT___________________    TT(_DIABLO), TT(_ADJUST),    XXXXXXX,        KC_UP,          KC_LEFT
141 #define ___________________ERGODOX_BOTTOM_RIGHT__________________    KC_RIGHT,    KC_DOWN,        TT(_RAISE),     TT(_LOWER),     TT(_ADJUST)
142
143 //                                                                    LEFT        |       RIGHT
144 #define ______________________ERGODOX_THUMBS_____________________ KC_APP,KC_HOME,    KC_PGUP,KC_ESC,           \
145                                                                           KC_END,    KC_PGDOWN,                \
146                                                        KC_LWSP,KC_BSPACE,JJ_COPY,    JJ_PASTE,KC_TAB,KC_RSEN