[Keymap] Introduced New layer & Improvements (#16921)

Co-authored-by: Ryan <fauxpark@gmail.com>
master
E.Iosifidis 2022-05-04 18:08:47 +03:00 committed by GitHub
parent c03e18f728
commit 5e6f9dfc4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 133 additions and 9 deletions

View File

@ -18,39 +18,72 @@
enum layers { enum layers {
_BASIC, _BASIC,
_BRACKETS,
_SELECTORS,
_FN, _FN,
}; };
#define KC_X0 LT(_FN, KC_ESC) #define KC_X0 LT(_FN, KC_ESC)
static char current_alpha_oled [12] = "None";
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* _BASIC Layer /* _BASIC Layer
* ,-------------------------------------. * ,-------------------------------------.
* | Toggle | Toggle | | | * | Toggle | Toggle | | |
* | Block | Line | Undo | Redo | * | Block | Line | Undo | Search |
* | Comment | Comment | | | * | Comment | Comment | | |
* |---------+---------+--------+---------+ * |---------+---------+--------+---------+
* | | | | TO | * | | | | TO |
* | Cut | Copy | Paste | _FN | * | Cut | Copy | Paste | _BASIC |
* | | | | | * | | | | |
* `-------------------------------------' * `-------------------------------------'
*/ */
[_BASIC] = LAYOUT_ortho_2x4( [_BASIC] = LAYOUT_ortho_2x4(
RCS(KC_A), C(KC_SLASH), C(KC_Z), C(KC_Y), RCS(KC_A), LCTL(KC_SLASH), LCTL(KC_Z), LCTL(KC_F),
C(KC_X), C(KC_C), C(KC_V), TO(_FN) LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), TO(_BRACKETS)
),
/* _BRACKETS Layer
* ,-----------------------------------------.
* | | | | |
* | ( | [ | { | Bksp |
* | | | | |
* |---------+---------+--------+------------+
* | | | | TO |
* | Del | Copy | Paste | _SELECTORS |
* | | | | |
* `----------------------------------------'
*/
[_BRACKETS] = LAYOUT_ortho_2x4(
S(KC_9), KC_LBRC, S(KC_LBRC), KC_BACKSPACE,
KC_DEL, C(KC_C), C(KC_V), TO(_SELECTORS)
),
/* _SELECTORS Layer
* ,-------------------------------------.
* | | | | |
* | Select | Save | Undo | Bksp |
* | All | | | |
* |---------+---------+--------+---------+
* | | | | TO |
* | Cut | Copy | Paste | _FN |
* | | | | |
* `-------------------------------------'
*/
[_SELECTORS] = LAYOUT_ortho_2x4(
C(KC_A), C(KC_S), C(KC_Z), KC_BACKSPACE,
C(KC_X), C(KC_C), C(KC_V), TO(_FN)
), ),
/* _FN Layer /* _FN Layer
* ,--------------------------------------------. * ,--------------------------------------------.
* | RGB | RGB | RGB | RGB | * | RGB | RGB | RGB | RGB |
* | Toggle | Mode | Mode | Snake | * | Toggle | Mode | Mode | Snake |
* | | Forward | Reverse | Mode | * | | Forward | Reverse | Mode |
* |-----------+-----------+-----------+---------+ * |-----------+-----------+-----------+---------+
* | | Cycle | Toggle | TO | * | | Cycle | Toggle | TO |
* | BackLight | BackLight | BackLight | _BASIC | * | BackLight | BackLight | BackLight | _BASIC |
* | Toggle | Levels | | | * | Toggle | Levels | Breathing | |
* `--------------------------------------------' * `--------------------------------------------'
*/ */
[_FN] = LAYOUT_ortho_2x4( [_FN] = LAYOUT_ortho_2x4(
RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN, RGB_TOG, RGB_MOD, RGB_M_R, RGB_M_SN,
@ -63,6 +96,89 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
return OLED_ROTATION_180; // flips the display 180 degrees if offhand return OLED_ROTATION_180; // flips the display 180 degrees if offhand
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
char string [33];
switch(keycode)
{
//First Layer with Basic Keys
case LCTL(KC_X):
strncpy(current_alpha_oled, "Cut", sizeof(current_alpha_oled));
break;
case LCTL(KC_F):
strncpy(current_alpha_oled, "Search", sizeof(current_alpha_oled));
break;
case LCTL(KC_Z):
strncpy(current_alpha_oled, "Undo", sizeof(current_alpha_oled));
break;
case LCTL(KC_C):
strncpy(current_alpha_oled, "Copy", sizeof(current_alpha_oled));
break;
case LCTL(KC_V):
strncpy(current_alpha_oled, "Paste", sizeof(current_alpha_oled));
break;
case RCS(KC_A):
strncpy(current_alpha_oled, "Block cmt.", sizeof(current_alpha_oled));
break;
case LCTL(KC_SLASH):
strncpy(current_alpha_oled, "Line cmt.", sizeof(current_alpha_oled));
break;
//Second Layer with Brackets
case S(KC_9):
strncpy(current_alpha_oled, "()", sizeof(current_alpha_oled));
break;
case KC_LBRC:
strncpy(current_alpha_oled, "[]", sizeof(current_alpha_oled));
break;
case S(KC_LBRC):
strncpy(current_alpha_oled, "{}", sizeof(current_alpha_oled));
break;
case KC_BACKSPACE:
strncpy(current_alpha_oled, "Backspace", sizeof(current_alpha_oled));
break;
case KC_DEL:
strncpy(current_alpha_oled, "Del", sizeof(current_alpha_oled));
break;
// Selector Layer keys
case C(KC_A):
strncpy(current_alpha_oled, "Select All", sizeof(current_alpha_oled));
break;
case C(KC_S):
strncpy(current_alpha_oled, "Save", sizeof(current_alpha_oled));
break;
// FN Layer keys
case RGB_TOG:
strncpy(current_alpha_oled, "RGB Toggle", sizeof(current_alpha_oled));
break;
case RGB_MOD:
strncpy(current_alpha_oled, "RGB Fwd", sizeof(current_alpha_oled));
break;
case RGB_M_R:
strncpy(current_alpha_oled, "RGB Rev", sizeof(current_alpha_oled));
break;
case RGB_MODE_SNAKE:
strncpy(current_alpha_oled, "RGB Snk", sizeof(current_alpha_oled));
break;
case BL_TOGG:
strncpy(current_alpha_oled, "BkLgt Tog", sizeof(current_alpha_oled));
break;
case BL_STEP:
strncpy(current_alpha_oled, "BkLgt Lvl", sizeof(current_alpha_oled));
break;
case BL_BRTG:
strncpy(current_alpha_oled, "BkLgt Brth", sizeof(current_alpha_oled));
break;
//FN Key keycodes
case TO(_BASIC) ... TO(_FN):
strncpy(current_alpha_oled, "Switcher", sizeof(current_alpha_oled));
break;
default:
strncpy(current_alpha_oled, itoa(keycode, string, 10), sizeof(current_alpha_oled));
break;
}
}
return true;
}
bool oled_task_user(void) { bool oled_task_user(void) {
// Host Keyboard Layer Status // Host Keyboard Layer Status
@ -73,6 +189,12 @@ bool oled_task_user(void) {
case _BASIC: case _BASIC:
oled_write_ln_P(PSTR("Basic"), false); oled_write_ln_P(PSTR("Basic"), false);
break; break;
case _BRACKETS:
oled_write_ln_P(PSTR("Brkts"), false);
break;
case _SELECTORS:
oled_write_ln_P(PSTR("Selct"), false);
break;
case _FN: case _FN:
oled_write_ln_P(PSTR("FN"), false); oled_write_ln_P(PSTR("FN"), false);
break; break;
@ -90,6 +212,8 @@ bool oled_task_user(void) {
oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false); oled_write_ln_P(led_state.caps_lock ? PSTR("On") : PSTR("Off"), false);
oled_write_P(PSTR("Backlit: "), false); oled_write_P(PSTR("Backlit: "), false);
oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false); oled_write_ln_P(is_backlight_enabled() ? PSTR("On") : PSTR("Off"), false);
oled_write_P(PSTR("Last Key: "), false);
oled_write_ln(current_alpha_oled, false);
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
static char rgbStatusLine1[26] = {0}; static char rgbStatusLine1[26] = {0};
snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode()); snprintf(rgbStatusLine1, sizeof(rgbStatusLine1), "RGB Mode: %d", rgblight_get_mode());