aboutsummaryrefslogtreecommitdiff
path: root/keyboards/contra
diff options
context:
space:
mode:
authorMaxr1998 <max.rumpf1998@gmail.com>2019-01-28 01:59:48 +0100
committerDrashna Jaelre <drashna@live.com>2019-01-27 17:44:54 -0800
commit795f743c04f6a62056aac9d637f7a5a896d030b8 (patch)
treed48cd9aef76011633025bf1ac3951731d2e453e6 /keyboards/contra
parent17d3750f13b720b5f57c0c8127b177fe41fafe26 (diff)
downloadqmk_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.c79
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
20enum contra_layers { 20enum 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
135void update_tri_layer_user(void);
136
116bool process_record_user(uint16_t keycode, keyrecord_t *record) { 137bool 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
170void 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
142void led_set_user(uint8_t usb_led) { 179void 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))) {