diff options
| author | Maxr1998 <max.rumpf1998@gmail.com> | 2019-01-28 01:59:48 +0100 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2019-01-27 17:44:54 -0800 |
| commit | 795f743c04f6a62056aac9d637f7a5a896d030b8 (patch) | |
| tree | d48cd9aef76011633025bf1ac3951731d2e453e6 /keyboards/contra | |
| parent | 17d3750f13b720b5f57c0c8127b177fe41fafe26 (diff) | |
| download | qmk_firmware-795f743c04f6a62056aac9d637f7a5a896d030b8.tar.gz qmk_firmware-795f743c04f6a62056aac9d637f7a5a896d030b8.zip | |
[Keymap] Support FX keys on Maxr1998's Contra
Using update_tri_layer() and more manual layer switching,
also rename some layers & keycodes
Diffstat (limited to 'keyboards/contra')
| -rw-r--r-- | keyboards/contra/keymaps/maxr1998/keymap.c | 79 |
1 files changed, 58 insertions, 21 deletions
diff --git a/keyboards/contra/keymaps/maxr1998/keymap.c b/keyboards/contra/keymaps/maxr1998/keymap.c index 48bde833d..326d5876d 100644 --- a/keyboards/contra/keymaps/maxr1998/keymap.c +++ b/keyboards/contra/keymaps/maxr1998/keymap.c | |||
| @@ -19,16 +19,17 @@ | |||
| 19 | 19 | ||
| 20 | enum contra_layers { | 20 | enum contra_layers { |
| 21 | _QWERTZ, | 21 | _QWERTZ, |
| 22 | _FUNC, | 22 | _FN, |
| 23 | _NUMROW, | 23 | _NR, |
| 24 | _NUMROW_L3, | 24 | _NR_L3, |
| 25 | _FX, | ||
| 25 | _GAMING | 26 | _GAMING |
| 26 | }; | 27 | }; |
| 27 | 28 | ||
| 28 | #define KC_I3 LM(_NUMROW, MOD_LALT) | 29 | #define KC_I3 LM(_NR, MOD_LALT) |
| 29 | #define KC_NR MO(_NUMROW) | 30 | #define KC_NR SAFE_RANGE |
| 30 | #define NR_L3 SAFE_RANGE | 31 | #define KC_N3 (SAFE_RANGE + 1) |
| 31 | #define FUN MO(_FUNC) | 32 | #define KC_FN MO(_FN) |
| 32 | #define G_1 TO(_GAMING) | 33 | #define G_1 TO(_GAMING) |
| 33 | #define G_0 TG(_GAMING) | 34 | #define G_0 TG(_GAMING) |
| 34 | 35 | ||
| @@ -49,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 49 | {KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | 50 | {KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, |
| 50 | {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT }, | 51 | {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_PLUS, KC_ENT }, |
| 51 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT}, | 52 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT}, |
| 52 | {KC_LCTL, KC_LGUI, KC_LALT, KC_I3, KC_NR, KC_SPC, KC_SPC, NR_L3, FUN, KC_LEFT, KC_DOWN, KC_RGHT} | 53 | {KC_LCTL, KC_LGUI, KC_LALT, KC_I3, KC_NR, KC_SPC, KC_SPC, KC_N3, KC_FN, KC_LEFT, KC_DOWN, KC_RGHT} |
| 53 | }, | 54 | }, |
| 54 | 55 | ||
| 55 | /* Function layer | 56 | /* Function layer |
| @@ -60,10 +61,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 60 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 61 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 61 | * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | | | 62 | * | | | | | | | | RGBH-| RGBT | RGBH+| PgUp | | |
| 62 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 63 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 63 | * | | | | ---- | ---- | | | ---- | ---- | Home | PgDn | End | | 64 | * | | | | ---- | ---- | | ---- | ---- | Home | PgDn | End | |
| 64 | * `-----------------------------------------------------------------------------------' | 65 | * `-----------------------------------------------------------------------------------' |
| 65 | */ | 66 | */ |
| 66 | [_FUNC] = { | 67 | [_FN] = { |
| 67 | {_______, _______, _______, _______, _______, _______, _______, DE_UE, _______, DE_OE, _______, KC_DEL }, | 68 | {_______, _______, _______, _______, _______, _______, _______, DE_UE, _______, DE_OE, _______, KC_DEL }, |
| 68 | {KC_LOCK, DE_AE, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______}, | 69 | {KC_LOCK, DE_AE, DE_SS, _______, _______, G_1, _______, RGB_M_P, RGB_M_B, RGB_M_SW,_______, _______}, |
| 69 | {_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______}, | 70 | {_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_TOG, RGB_HUI, KC_PGUP, _______}, |
| @@ -78,20 +79,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 78 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 79 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 79 | * | | <> | | | | | | | | | | -_ | | | 80 | * | | <> | | | | | | | | | | -_ | | |
| 80 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 81 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 81 | * | | | | ---- | ---- | | | ---- | ---- | | | | | 82 | * | | | | ---- | ---- | | ---- | ---- | | | | |
| 82 | * `-----------------------------------------------------------------------------------' | 83 | * `-----------------------------------------------------------------------------------' |
| 83 | */ | 84 | */ |
| 84 | [_NUMROW] = { | 85 | [_NR] = { |
| 85 | {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, _______}, | 86 | {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, _______}, |
| 86 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DE_HASH, _______}, | 87 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DE_HASH, _______}, |
| 87 | {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, | 88 | {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, |
| 88 | {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______} | 89 | {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______} |
| 89 | }, | 90 | }, |
| 90 | [_NUMROW_L3] = { | 91 | [_NR_L3] = { |
| 91 | {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS }, | 92 | {_______, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS }, |
| 92 | {_______, DE_Q, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | 93 | {_______, DE_Q, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |
| 93 | {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, | 94 | {_______, DE_LESS, _______, _______, _______, _______, _______, _______, _______, _______, DE_MINS, _______}, |
| 94 | {_______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______} | 95 | {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______} |
| 96 | }, | ||
| 97 | |||
| 98 | /* Function keys | ||
| 99 | * ,-----------------------------------------------------------------------------------. | ||
| 100 | * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 101 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 102 | * | | | | | | | | | | | | | | ||
| 103 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 104 | * | | | | | | | | | | | | | | ||
| 105 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 106 | * | | | | | | | | | | | | | ||
| 107 | * `-----------------------------------------------------------------------------------' | ||
| 108 | */ | ||
| 109 | [_FX] = { | ||
| 110 | {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, | ||
| 111 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 112 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 113 | {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______} | ||
| 95 | }, | 114 | }, |
| 96 | 115 | ||
| 97 | /* Gaming | 116 | /* Gaming |
| @@ -102,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 102 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 121 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 103 | * | | | | | | | | | | | | | | 122 | * | | | | | | | | | | | | | |
| 104 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 123 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 105 | * | Space| | | | | | | | Reset| | | | | 124 | * | Space| | | | | | | Leave| | | | |
| 106 | * `-----------------------------------------------------------------------------------' | 125 | * `-----------------------------------------------------------------------------------' |
| 107 | */ | 126 | */ |
| 108 | [_GAMING] = { | 127 | [_GAMING] = { |
| @@ -113,6 +132,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 113 | } | 132 | } |
| 114 | }; | 133 | }; |
| 115 | 134 | ||
| 135 | void update_tri_layer_user(void); | ||
| 136 | |||
| 116 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 137 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 117 | switch(keycode) { | 138 | switch(keycode) { |
| 118 | case KC_BSPC: | 139 | case KC_BSPC: |
| @@ -125,20 +146,36 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 125 | unregister_code(DE_SS); | 146 | unregister_code(DE_SS); |
| 126 | } | 147 | } |
| 127 | return true; | 148 | return true; |
| 128 | case NR_L3: | 149 | case KC_NR: |
| 129 | if (record->event.pressed) { | 150 | if (record->event.pressed) { |
| 130 | register_code(KC_ALGR); | 151 | layer_on(_NR); |
| 131 | layer_on(_NUMROW_L3); | ||
| 132 | } else { | 152 | } else { |
| 133 | layer_off(_NUMROW_L3); | 153 | layer_off(_NR); |
| 134 | unregister_code(KC_ALGR); | ||
| 135 | } | 154 | } |
| 155 | update_tri_layer_user(); | ||
| 156 | return false; | ||
| 157 | case KC_N3: | ||
| 158 | if (record->event.pressed) { | ||
| 159 | layer_on(_NR_L3); | ||
| 160 | } else { | ||
| 161 | layer_off(_NR_L3); | ||
| 162 | } | ||
| 163 | update_tri_layer_user(); | ||
| 136 | return false; | 164 | return false; |
| 137 | default: | 165 | default: |
| 138 | return true; | 166 | return true; |
| 139 | } | 167 | } |
| 140 | } | 168 | } |
| 141 | 169 | ||
| 170 | void update_tri_layer_user(void) { | ||
| 171 | update_tri_layer(_NR, _NR_L3, _FX); | ||
| 172 | if (layer_state_is(_NR_L3) && !layer_state_is(_FX)) { | ||
| 173 | register_code(KC_ALGR); | ||
| 174 | } else { | ||
| 175 | unregister_code(KC_ALGR); | ||
| 176 | } | ||
| 177 | } | ||
| 178 | |||
| 142 | void led_set_user(uint8_t usb_led) { | 179 | void led_set_user(uint8_t usb_led) { |
| 143 | // Force-enable Numlock | 180 | // Force-enable Numlock |
| 144 | if (!(usb_led & (1<<USB_LED_NUM_LOCK))) { | 181 | if (!(usb_led & (1<<USB_LED_NUM_LOCK))) { |
