|
|
@ -19,92 +19,106 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
|
|
#include QMK_KEYBOARD_H |
|
|
|
#include <stdio.h> |
|
|
|
|
|
|
|
enum layer_names { |
|
|
|
_COL, |
|
|
|
_GAM, |
|
|
|
_COD, |
|
|
|
_NUM, |
|
|
|
_RGB |
|
|
|
}; |
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
[0] = LAYOUT_split_3x6_3( |
|
|
|
[_COL] = LAYOUT_split_3x6_3( |
|
|
|
//,-----------------------------------------------------. ,-----------------------------------------------------. |
|
|
|
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
XXXXXXX, KC_LCTL, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
TO(_GAM), KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
TO(1), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| |
|
|
|
KC_LGUI, KC_LALT, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
KC_LALT, KC_LCTL, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
//`--------------------------' `--------------------------' |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
[1] = LAYOUT_split_3x6_3( |
|
|
|
[_GAM] = LAYOUT_split_3x6_3( |
|
|
|
//,-----------------------------------------------------. ,-----------------------------------------------------. |
|
|
|
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
XXXXXXX, KC_LCTL, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
TO(_COD), KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
TO(2), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| |
|
|
|
KC_LGUI, KC_C, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
MO(_NUM), KC_LCTL, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
//`--------------------------' `--------------------------' |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
[2] = LAYOUT_split_3x6_3( |
|
|
|
[_COD] = LAYOUT_split_3x6_3( |
|
|
|
//,-----------------------------------------------------. ,-----------------------------------------------------. |
|
|
|
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
XXXXXXX, KC_LCTL, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
TO(_RGB), XXXXXXX, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
XXXXXXX, KC_LSFT, KC_Z, KC_X, KC_LCTL, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| |
|
|
|
MO(_NUM), KC_C, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
//`--------------------------' `--------------------------' |
|
|
|
), |
|
|
|
|
|
|
|
[_NUM] = LAYOUT_split_3x6_3( |
|
|
|
//,-----------------------------------------------------. ,-----------------------------------------------------. |
|
|
|
XXXXXXX, XXXXXXX, KC_1 , KC_2 , KC_3 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
XXXXXXX, XXXXXXX, KC_4 , KC_5 , KC_6 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
TO(3), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
XXXXXXX, XXXXXXX, KC_7 , KC_8 , KC_9 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| |
|
|
|
KC_LGUI, KC_LALT, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
//`--------------------------' `--------------------------' |
|
|
|
), |
|
|
|
|
|
|
|
[3] = LAYOUT_split_3x6_3( |
|
|
|
[_RGB] = LAYOUT_split_3x6_3( |
|
|
|
//,-----------------------------------------------------. ,-----------------------------------------------------. |
|
|
|
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
TO(_COL), RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| |
|
|
|
TO(0), RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
|
|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| |
|
|
|
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT |
|
|
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX |
|
|
|
//`--------------------------' `--------------------------' |
|
|
|
) |
|
|
|
}; |
|
|
|
|
|
|
|
#ifdef OLED_ENABLE |
|
|
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) { |
|
|
|
if (!is_keyboard_master()) { |
|
|
|
return OLED_ROTATION_180; // flips the display 180 degrees if offhand |
|
|
|
} |
|
|
|
return rotation; |
|
|
|
} |
|
|
|
|
|
|
|
#define L_BASE 0 |
|
|
|
#define L_LOWER 2 |
|
|
|
#define L_RAISE 4 |
|
|
|
#define L_ADJUST 8 |
|
|
|
|
|
|
|
void oled_render_layer_state(void) { |
|
|
|
bool oled_render_layer_state(void) { |
|
|
|
// Host Keyboard Layer Status |
|
|
|
oled_write_P(PSTR("Layer: "), false); |
|
|
|
switch (layer_state) { |
|
|
|
case L_BASE: |
|
|
|
oled_write_ln_P(PSTR("Default"), false); |
|
|
|
|
|
|
|
switch (get_highest_layer(layer_state)) { |
|
|
|
case _COL: |
|
|
|
oled_write_P(PSTR("Colemak\n"), false); |
|
|
|
break; |
|
|
|
case _GAM: |
|
|
|
oled_write_P(PSTR("Gaming\n"), false); |
|
|
|
break; |
|
|
|
case L_LOWER: |
|
|
|
oled_write_ln_P(PSTR("Cold War"), false); |
|
|
|
case _COD: |
|
|
|
oled_write_P(PSTR("Call of Duty\n"), false); |
|
|
|
break; |
|
|
|
case L_RAISE: |
|
|
|
oled_write_ln_P(PSTR("Catan"), false); |
|
|
|
case _NUM: |
|
|
|
oled_write_P(PSTR("Numbers\n"), false); |
|
|
|
break; |
|
|
|
case L_ADJUST: |
|
|
|
case L_ADJUST|L_LOWER: |
|
|
|
case L_ADJUST|L_RAISE: |
|
|
|
case L_ADJUST|L_LOWER|L_RAISE: |
|
|
|
oled_write_ln_P(PSTR("Adjust"), false); |
|
|
|
case _RGB: |
|
|
|
oled_write_P(PSTR("RGB\n"), false); |
|
|
|
break; |
|
|
|
default: |
|
|
|
// Or use the write_ln shortcut over adding '\n' to the end of your string |
|
|
|
oled_write_ln_P(PSTR("Undefined"), false); |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
char keylog_str[24] = {}; |
|
|
|
|
|
|
|
const char code_to_name[60] = { |
|
|
|