diff options
Diffstat (limited to 'layouts/community/ergodox/bocaj')
| -rw-r--r-- | layouts/community/ergodox/bocaj/config.h | 2 | ||||
| -rw-r--r-- | layouts/community/ergodox/bocaj/keymap.c | 307 | ||||
| -rw-r--r-- | layouts/community/ergodox/bocaj/readme.md | 47 | ||||
| -rw-r--r-- | layouts/community/ergodox/bocaj/rules.mk | 23 |
4 files changed, 175 insertions, 204 deletions
diff --git a/layouts/community/ergodox/bocaj/config.h b/layouts/community/ergodox/bocaj/config.h index bc1d20a62..621ae784c 100644 --- a/layouts/community/ergodox/bocaj/config.h +++ b/layouts/community/ergodox/bocaj/config.h | |||
| @@ -1,6 +1,4 @@ | |||
| 1 | #pragma once | 1 | #pragma once |
| 2 | 2 | ||
| 3 | #include QMK_KEYBOARD_CONFIG_H | ||
| 4 | |||
| 5 | #define LEADER_TIMEOUT 250 | 3 | #define LEADER_TIMEOUT 250 |
| 6 | #define LEADER_PER_KEY_TIMING | 4 | #define LEADER_PER_KEY_TIMING |
diff --git a/layouts/community/ergodox/bocaj/keymap.c b/layouts/community/ergodox/bocaj/keymap.c index cb78e7aae..ba105a8f1 100644 --- a/layouts/community/ergodox/bocaj/keymap.c +++ b/layouts/community/ergodox/bocaj/keymap.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | Copyright 2018 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell | 2 | Copyright 2020 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell |
| 3 | 3 | ||
| 4 | This program is free software: you can redistribute it and/or modify | 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 | 5 | it under the terms of the GNU General Public License as published by |
| @@ -15,182 +15,161 @@ 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/>. | 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 16 | */ | 16 | */ |
| 17 | 17 | ||
| 18 | #include QMK_KEYBOARD_H | ||
| 19 | #include "bocaj.h" | 18 | #include "bocaj.h" |
| 20 | 19 | ||
| 21 | #define LAYOUT_ergodox_pretty_base( \ | 20 | /* |
| 22 | K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ | 21 | * The `LAYOUT_ergodox_pretty_base` macro is a template to allow the use of |
| 23 | K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ | 22 | * identical modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, |
| 24 | K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ | 23 | * etc), so that there is no need to set them up for each layout, and modify |
| 25 | ) \ | 24 | * all of them if I want to change them. This helps to keep consistency and |
| 26 | LAYOUT_ergodox_pretty_wrapper( \ | 25 | * ease of use. K## is a placeholder to pass through the individual keycodes |
| 27 | KC_ESC, __________________NUMBER_LEFT_______________, JJ_ARRW, KC_MINS, __________________NUMBER_RIGHT______________, KC_EQUAL, \ | 26 | */ |
| 28 | KC_DEL, K01, K02, K03, K04, K05, KC_LPRN, KC_RPRN, K06, K07, K08, K09, K0A, KC_BSLASH, \ | 27 | #define LAYOUT_ergodox_bocaj(...) WRAPPER_ergodox_bocaj(__VA_ARGS__) |
| 29 | KC_NUMS, K11, SFT_T(K12), K13, ALT_T(K14), K15, K16, ALT_T(K17), K18, SFT_T(K19), K1A, KC_QUOT, \ | 28 | #define LAYOUT_ergodox_bocaj_WIN(...) WRAPPER_ergodox_bocaj_WIN(__VA_ARGS__) |
| 30 | OS_LSFT, CTL_T(K21), K22, K23, K24, K25, HYP_LBK, MEH_RBK, K26, K27, K28, K29, CTL_T(K2A), KC_RSFT, \ | ||
| 31 | KC_GAME,KC_NUMS, TT(_LOWER), KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, UC_DISA,KC_GAME, KC_ADJS, \ | ||
| 32 | KC_APP,KC_HOME, KC_END,KC_ESC, \ | ||
| 33 | UC_FLIP, UC_TABL, \ | ||
| 34 | KC_SPACE,KC_BSPACE,KC_LEAD, UC_SHRG,KC_TAB,KC_LWEN \ | ||
| 35 | ) | ||
| 36 | |||
| 37 | #define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__) | ||
| 38 | 29 | ||
| 39 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 30 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 40 | /* Workman - http://www.keyboard-layout-editor.com/#/gists/7a07cb982ec3597ba3e3d947554225f1 | 31 | |
| 41 | .---------------------------------------------. .---------------------------------------------. | 32 | [_WORKMAN] = LAYOUT_ergodox_bocaj( |
| 42 | | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = | | 33 | KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW, KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL, |
| 43 | !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! | 34 | KC_DEL, _________________WORKMAN_L1________________, KC_LPRN, KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS, |
| 44 | | DEL | Q | D | R | W | B | ( | ! ) | J | F | U | P | ; | \ | | 35 | _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, |
| 45 | !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! | 36 | KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC, KC_RBRC, _________________WORKMAN_R3________________, _______, |
| 46 | | NUMS | A | S | H | T | G |-------! !-------! Y | N | E | O | I | ' | | 37 | MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN, |
| 47 | !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------! | 38 | KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, |
| 48 | | SHIFT | Z | X | M | C | V | [ | ! ] | K | L | , | . | / | SHIFT | | 39 | KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, |
| 49 | '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' | 40 | KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER |
| 50 | | | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | |GAME | ADJ | | 41 | ), |
| 51 | '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------' | 42 | |
| 52 | .-------+-------+-------! !-------+-------+-------. | 43 | [_WWORKMAN] = LAYOUT_ergodox_bocaj_WIN( |
| 53 | ! ! | END | ! PGDN | ! ENTER ! | 44 | KC_ESC, ________________NUMBER_LEFT________________, KC_ARRW, KC_MINS, ________________NUMBER_RIGHT_______________, KC_EQUAL, |
| 54 | ! SPACE ! BSPCE !-------! !-------! TAB ! / ! | 45 | KC_DEL, _________________WORKMAN_L1________________, KC_LPRN, KC_RPRN, _________________WORKMAN_R1________________, KC_BSLS, |
| 55 | | | | COPY | ! PASTE | | LOWER | | 46 | _______, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, |
| 56 | '-----------------------' '-----------------------' | 47 | KC_LSFT, _________________WORKMAN_L3________________, KC_LBRC, KC_RBRC, _________________WORKMAN_R3________________, _______, |
| 57 | */ | 48 | MO_MOD, KC_PGUP, KC_HOME, KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, KC_END, KC_PGDN, WORKMAN, |
| 58 | [_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper( | 49 | KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, |
| 59 | _________________WORKMAN_L1_________________, _________________WORKMAN_R1_________________, | 50 | KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, |
| 60 | _________________WORKMAN_L2_________________, _________________WORKMAN_R2_________________, | 51 | KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER |
| 61 | _________________WORKMAN_L3_________________, _________________WORKMAN_R3_________________ | 52 | ), |
| 62 | ), | 53 | |
| 63 | [_WINWORKMAN] = LAYOUT_ergodox_pretty_base_wrapper( | 54 | [_LOWER] = LAYOUT_ergodox_bocaj( |
| 64 | _________________WORKMAN_L1_________________, _________________WORKMAN_R1_________________, | 55 | KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 65 | ________________WWORKMAN_L2_________________, ________________WWORKMAN_R2_________________, | 56 | _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_BSLS, _______, |
| 66 | _________________WORKMAN_L3_________________, _________________WORKMAN_R3_________________ | 57 | _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, KC_ASTR, _______, |
| 67 | ), | 58 | _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_PLUS, _______, |
| 68 | /* QWERTY - http://www.keyboard-layout-editor.com/#/gists/b6c016a22a9d31381a276a603a42fe5f | 59 | _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, KC_MINS, _______, |
| 69 | .---------------------------------------------. .---------------------------------------------. | 60 | KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, |
| 70 | | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = | | 61 | KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, |
| 71 | !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! | 62 | KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER |
| 72 | | DEL | Q | W | E | R | T | ( | ! ) | Y | U | I | O | P | \ | | 63 | ), |
| 73 | !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! | 64 | |
| 74 | | NUMS | A | S | D | F | G |-------! !-------! H | J | K | L | ; | ' | | 65 | [_RAISE] = LAYOUT_ergodox_bocaj( |
| 75 | !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------! | 66 | KC_TILD, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, _______, |
| 76 | | SHIFT | Z | X | C | V | B | [ | ! ] | N | M | , | . | / | SHIFT | | 67 | KC_F11, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_F12, |
| 77 | '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' | 68 | _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______, |
| 78 | | GAME | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | | | ADJ | | 69 | _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, ___________________BLANK___________________, _______, |
| 79 | '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------' | 70 | ___________________BLANK___________________, ___________________BLANK___________________, |
| 80 | .-------+-------+-------! !-------+-------+-------. | 71 | KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, |
| 81 | ! ! | END | ! PGDN | ! ENTER ! | 72 | KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, |
| 82 | ! SPACE ! BSPCE !-------! !-------! TAB ! / ! | 73 | KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER |
| 83 | | | | COPY | ! PASTE | | LOWER | | 74 | ), |
| 84 | '-----------------------' '-----------------------' | 75 | |
| 85 | */ | 76 | [_ADJUST] = LAYOUT_ergodox_pretty( |
| 86 | [_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper( | 77 | KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, |
| 87 | _________________QWERTY_L1__________________, _________________QWERTY_R1__________________, | 78 | VRSN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, |
| 88 | _________________QWERTY_L2__________________, _________________QWERTY_R2__________________, | 79 | _______, KC__MUTE, KC__VOLDOWN, KC__VOLUP, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, |
| 89 | _________________QWERTY_L3__________________, _________________QWERTY_R3__________________ | 80 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 90 | ), | 81 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 91 | [_LOWER] = LAYOUT_ergodox_pretty_wrapper( | 82 | KC_APP,KC_HOME, /* <- LHS/RHS -> */ KC_END,KC_ESC, |
| 92 | KC_F11 ,__________________FUNCTION_LEFT_____________, _______, _______, __________________FUNCTION_RIGHT____________, KC_F12, | 83 | KC_PGUP, /* <- LHS/RHS -> */ KC_PGDN, |
| 93 | _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_PAST, _______, | 84 | KC_SPACE,KC_BSPACE,KC_LEAD, /* <- LHS/RHS -> */ KC_LOCK,KC_TAB,KC_ENTER |
| 94 | LM_GRAVE, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, | 85 | ), |
| 95 | OS_LSFT,____________________BLANK___________________, _______, _______, _______, KC_1, KC_2, KC_3, KC_PMNS, _______, | 86 | |
| 96 | ____________________BLANK___________________, KC_0, KC_PDOT, KC_COMM,KC_PEQL, _______, | 87 | // Wrapping Mouse-Wheel Keys with `X_T()` style functions seems |
| 97 | _______, _______, _______, _______, | 88 | // to break the mouse button. So we can't use the wrapper here. |
| 98 | _______, _______, | 89 | [_MOD] = LAYOUT_ergodox_pretty( |
| 99 | _______, _______, _______, _______, _______, _______ | 90 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 100 | ), | 91 | _______, _______, _______, KC_WH_D, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, _______, _______, |
| 101 | /* Adjust - http://www.keyboard-layout-editor.com/#/gists/dedeae17b35a5d5f745a42aaea78f007 | 92 | _______, _______, KC_WH_L, KC_WH_U, KC_WH_R, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, |
| 102 | .---------------------------------------------. .---------------------------------------------. | 93 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, |
| 103 | | MAKE | | | | | | RESET | ! EPRM | | | | | | | | 94 | _______, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, |
| 104 | !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! | 95 | _______,_______, /* <- LHS/RHS -> */ _______,_______, |
| 105 | | | | | | | | | ! | | | | | | | | 96 | _______, /* <- LHS/RHS -> */ _______, |
| 106 | !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! | 97 | KC_BTN1,KC_BTN2,_______, /* <- LHS/RHS -> */ _______,KC_BTN3,KC_BTN4 |
| 107 | | | 🔇 | 🔉 | 🔊 | LCK | |-------! !-------! | | | | | QWRTY | | 98 | ) |
| 108 | !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! | 99 | |
| 109 | | | | | | | | | ! | | | | | WIN | WRKMN | | ||
| 110 | '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' | ||
| 111 | | | | | | | .---------------. .---------------. ! | | | | | | ||
| 112 | '------------------------------' | | | ! | | '------------------------------' | ||
| 113 | .-------+-------+-------! !-------+-------+-------. | ||
| 114 | ! ! | | ! | ! ! | ||
| 115 | ! ! !-------! !-------! ! ! | ||
| 116 | | | | | ! | | | | ||
| 117 | '-----------------------' '-----------------------' | ||
| 118 | */ | ||
| 119 | [_ADJUST] = LAYOUT_ergodox_pretty_wrapper( | ||
| 120 | KC_MAKE, ____________________BLANK___________________, KC_RST, KC_EPRM, ____________________BLANK___________________, XXXXXXX, | ||
| 121 | _______, ____________________BLANK___________________, _______, _______, ____________________BLANK___________________, XXXXXXX, | ||
| 122 | _______,KC__MUTE,KC__VOLDOWN,KC__VOLUP,MC_LOCK,_______, ____________________BLANK___________________, KC_MQWR, | ||
| 123 | _______, ____________________BLANK___________________, _______, _______, _______, _______, _______, _______, KC_WWRK, KC_MWRK, | ||
| 124 | ____________________BLANK___________________, ____________________BLANK___________________, | ||
| 125 | _______, _______, _______, _______, | ||
| 126 | _______, _______, | ||
| 127 | _______, _______, _______, _______, _______, _______ | ||
| 128 | ), | ||
| 129 | [_DIABLO] = LAYOUT_ergodox_pretty_wrapper( | ||
| 130 | KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, | ||
| 131 | KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 132 | KC_Q, KC_1, KC_2, KC_3, KC_4, KC_P, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 133 | KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_LOCK, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 134 | _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, | ||
| 135 | KC_L, KC_J, KC_NO, KC_NO, | ||
| 136 | KC_F, KC_NO, | ||
| 137 | SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DCLR, KC_PGDN, KC_DEL, KC_ENT | ||
| 138 | ) | ||
| 139 | }; | 100 | }; |
| 101 | // clang-format on | ||
| 140 | 102 | ||
| 141 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | 103 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { |
| 142 | return true; | 104 | return true; |
| 143 | } | 105 | } |
| 144 | 106 | ||
| 145 | void matrix_init_keymap(void) {}; | 107 | void matrix_init_keymap(void) {}; |
| 146 | 108 | ||
| 109 | // Runs whenever there is a layer state change. | ||
| 110 | layer_state_t layer_state_set_keymap(layer_state_t state) { | ||
| 111 | ergodox_board_led_off(); | ||
| 112 | ergodox_right_led_1_off(); | ||
| 113 | ergodox_right_led_2_off(); | ||
| 114 | ergodox_right_led_3_off(); | ||
| 115 | |||
| 116 | uint8_t layer = get_highest_layer(state); | ||
| 117 | switch (layer) { | ||
| 118 | case _LOWER: | ||
| 119 | ergodox_right_led_3_on(); | ||
| 120 | break; | ||
| 121 | case _MOD: | ||
| 122 | ergodox_right_led_2_on(); | ||
| 123 | break; | ||
| 124 | case _RAISE: | ||
| 125 | ergodox_right_led_1_on(); | ||
| 126 | break; | ||
| 127 | case _ADJUST: | ||
| 128 | ergodox_right_led_1_on(); | ||
| 129 | ergodox_right_led_2_on(); | ||
| 130 | break; | ||
| 131 | default: | ||
| 132 | break; | ||
| 133 | } | ||
| 134 | |||
| 135 | ergodox_right_led_1_set(25); | ||
| 136 | ergodox_right_led_2_set(25); | ||
| 137 | ergodox_right_led_3_set(25); | ||
| 138 | |||
| 139 | return state; | ||
| 140 | }; | ||
| 141 | |||
| 147 | void matrix_scan_keymap(void) { | 142 | void matrix_scan_keymap(void) { |
| 148 | uint8_t modifiers = get_mods(); | 143 | uint8_t modifiers = get_mods(); |
| 149 | uint8_t led_usb_state = host_keyboard_leds(); | 144 | uint8_t led_usb_state = host_keyboard_leds(); |
| 150 | uint8_t one_shot = get_oneshot_mods(); | 145 | uint8_t one_shot = get_oneshot_mods(); |
| 151 | uint8_t layer = biton32(layer_state); | 146 | uint8_t layer_is_workman = layer_state_is(_WORKMAN); |
| 152 | 147 | ||
| 153 | ergodox_board_led_off(); | 148 | if ((modifiers) && (layer_is_workman)) { |
| 154 | ergodox_right_led_1_off(); | 149 | if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) { |
| 155 | ergodox_right_led_2_off(); | 150 | ergodox_right_led_1_on(); |
| 156 | ergodox_right_led_3_off(); | 151 | ergodox_right_led_1_set( 25 ); |
| 157 | 152 | } else { | |
| 158 | switch (layer) { | 153 | ergodox_right_led_1_off(); |
| 159 | case _WORKMAN: | 154 | } |
| 160 | case _QWERTY: | ||
| 161 | case _WINWORKMAN: | ||
| 162 | if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) { | ||
| 163 | ergodox_right_led_1_on(); | ||
| 164 | ergodox_right_led_1_set( 25 ); | ||
| 165 | } | ||
| 166 | if (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK || modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK) { | ||
| 167 | if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) && (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) { | 155 | if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) && (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) { |
| 168 | ergodox_right_led_2_on(); | 156 | ergodox_right_led_2_on(); |
| 169 | ergodox_right_led_2_set( 50 ); | 157 | ergodox_right_led_2_set( 50 ); |
| 158 | } else if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) || (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) { | ||
| 159 | ergodox_right_led_2_on(); | ||
| 160 | ergodox_right_led_2_set( 10 ); | ||
| 161 | } else { | ||
| 162 | ergodox_right_led_2_off(); | ||
| 163 | } | ||
| 164 | if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) { | ||
| 165 | ergodox_right_led_3_on(); | ||
| 166 | ergodox_right_led_3_set( 10 ); | ||
| 170 | } else { | 167 | } else { |
| 171 | ergodox_right_led_2_on(); | 168 | ergodox_right_led_3_off(); |
| 172 | ergodox_right_led_2_set( 10 ); | ||
| 173 | } | 169 | } |
| 174 | } | 170 | } else if (!(modifiers) && (layer_is_workman)) { |
| 175 | if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) { | 171 | ergodox_right_led_1_off(); |
| 176 | ergodox_right_led_3_on(); | 172 | ergodox_right_led_2_off(); |
| 177 | ergodox_right_led_3_set( 10 ); | 173 | ergodox_right_led_3_off(); |
| 178 | } | 174 | } |
| 179 | break; | ||
| 180 | case _LOWER: | ||
| 181 | ergodox_right_led_3_on(); | ||
| 182 | ergodox_right_led_3_set(10); // Default brightness is deadly in a dark room | ||
| 183 | break; | ||
| 184 | case _ADJUST: | ||
| 185 | ergodox_right_led_2_on(); | ||
| 186 | ergodox_right_led_2_set(10); | ||
| 187 | break; | ||
| 188 | case _DIABLO: | ||
| 189 | ergodox_right_led_1_on(); | ||
| 190 | ergodox_right_led_1_set(10); | ||
| 191 | break; | ||
| 192 | default: | ||
| 193 | // none | ||
| 194 | break; | ||
| 195 | } | ||
| 196 | }; | 175 | }; |
diff --git a/layouts/community/ergodox/bocaj/readme.md b/layouts/community/ergodox/bocaj/readme.md index 901822722..f8bce4e57 100644 --- a/layouts/community/ergodox/bocaj/readme.md +++ b/layouts/community/ergodox/bocaj/readme.md | |||
| @@ -1,37 +1,28 @@ | |||
| 1 | # Bocaj Layout | 1 | # Overview |
| 2 | 2 | ||
| 3 | While I've put my own spin on most things, much of the credit for these ideas belongs to Drashna and/or the people he derived things from. Please see his [layout](../drashna/) and [userspace](../../../../users/drashna/) for lots of ideas and inspiration. | 3 | This is my personal Ergodox EZ configuration, and my daily driver. |
| 4 | 4 | ||
| 5 | ## Layers Overview | 5 | Most of the code resides in my userspace and is heavily based upon [Drashna's work](https://github.com/qmk/qmk_firmware/tree/master/users/drashna)... although considerably slimmed down. |
| 6 | 6 | ||
| 7 | * Default | 7 | ## How to build |
| 8 | * Workman | ||
| 9 | * Qwerty | ||
| 10 | * Windows Workman (swaps GUI and CTRL buttons) | ||
| 11 | * Lower | ||
| 12 | * F1-12 Top Row | ||
| 13 | * Grave / Layer Switch macro at Caps Lock position | ||
| 14 | * Navigation at QWERTY 'ESDF' position | ||
| 15 | * Numpad under right hand | ||
| 16 | * Adjust | ||
| 17 | * Volume Control | ||
| 18 | * Mac Lock Macro | ||
| 19 | * Make / Reset/ EEPROM keys | ||
| 20 | * Default Layer changing keys | ||
| 21 | * Diablo Layer | ||
| 22 | * Moved shortcuts within left hands reach | ||
| 23 | * Macros to spam 1-4 every ~1 second | ||
| 24 | * Shift in thumb cluster to prevent pinky fatique | ||
| 25 | 8 | ||
| 26 | ## LEDs Overview | 9 | Put simply: |
| 10 | `make ergodox_ez:bocaj` | ||
| 27 | 11 | ||
| 28 | * Used for _LOWER, _ADJUST, and _DIABLO layer indication | 12 | On that note, I use a separate workspace when making changes to my layouts or userspace. In that repo, there is a tool that does this for me. See [JacobJerrell/qmk_layouts/tools/](https://github.com/JacobJerrell/qmk_layouts/tree/master/tools) |
| 29 | * Used for Ctrl/GUI, Shift, and Alt indication when on a default layer | ||
| 30 | 13 | ||
| 31 | ## Wrappers Overview | 14 | ## Layers |
| 32 | 15 | ||
| 33 | While it isn't a novel idea, I feel the need to mention it because it really appeals to me as a person that doesn't like repetitive code. | 16 | * WORKMAN: No one uses this board but me and I've never had a reason to switch to QWERTY |
| 17 | * LOWER: | ||
| 18 | * Left: Grave and navigation arrows | ||
| 19 | * Right: Numpad | ||
| 20 | * RAISE: | ||
| 21 | * Symbols across the top, F-Keys on the second row | ||
| 22 | * ADJUST | ||
| 23 | * Audio control, make/reset/version macros | ||
| 24 | * MOD: mouse navigation | ||
| 34 | 25 | ||
| 35 | We've all come to know and love the pretty wrapper for Ergodox because it makes for such a beautiful, self-documenting keymap. In this keymap, we are building ontop of the pretty wrapper to wrap our default layers with our keys that aren't unique to the layer. | 26 | ## Ergodox Specifics |
| 36 | 27 | ||
| 37 | Now you can wrap your keymap with `LAYOUT_ergodox_pretty_base_wrapper()` and only feed it the alpha keys, having the top, side, bottom, and thumb clusters automatically filled in. If you make a key to any of the top, side, bottom, or thumb cluster keys, it will propegate to all layers that have this wrapper, or have KC_TRNS keycodes in the same location | 28 | I don't have the underglow or backlit versions so the 3 LEDs on the right board are used for layer indication if not on the base layer. If you're on the base layer, they're used for mod-key indicators. |
diff --git a/layouts/community/ergodox/bocaj/rules.mk b/layouts/community/ergodox/bocaj/rules.mk index aa67ad9e2..88eaf39f8 100644 --- a/layouts/community/ergodox/bocaj/rules.mk +++ b/layouts/community/ergodox/bocaj/rules.mk | |||
| @@ -1,11 +1,14 @@ | |||
| 1 | AUTO_SHIFT_ENABLE = no | 1 | BOOTMAGIC_ENABLE = yes |
| 2 | COMMAND_ENABLE = no | 2 | TAP_DANCE_ENABLE = no |
| 3 | SWAP_HANDS_ENABLE = no | 3 | COMMAND_ENABLE = no # Commands for debug and configuration |
| 4 | TAP_DANCE_ENABLE = yes | 4 | CONSOLE_ENABLE = yes |
| 5 | EXTRAKEY_ENABLE = no | 5 | SPACE_CADET_ENABLE = no |
| 6 | KEY_LOCK_ENABLE = yes | 6 | KEY_LOCK_ENABLE = yes |
| 7 | LEADER_ENABLE = yes | 7 | MOUSEKEY_ENABLE = yes |
| 8 | EXTRAKEY_ENABLE = yes | ||
| 9 | LEADER_ENABLE = yes | ||
| 8 | 10 | ||
| 9 | UNICODE_ENABLE = yes | 11 | UNICODE_ENABLE = no |
| 10 | UNICODEMAP_ENABLE = no | 12 | UNICODEMAP_ENABLE = no |
| 11 | UCIS_ENABLE = no | 13 | RGB_MATRIX_ENABLE = no |
| 14 | RGBLIGHT_ENABLE = no | ||
