/* Copyright 2019 @foostan Copyright 2020 Drashna Jaelre <@drashna> Copyright 2024 Kamen Mladenov <@syndamia> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H enum layers { _QWERTY, _LOWER, _RAISE, _ADJUST, _ARROWS, _FN, }; // Layer navigaton #define L_LOWER MO(_LOWER) #define L_RAISE MO(_RAISE) #define L_ADJST MO(_ADJUST) #define ENT_ARR LT(_ARROWS, KC_ENT) #define META_FN LT(_FN, KC_RGUI) // Homerow mods #define HR1(key) LSFT_T(key) #define HR2(key) LCTL_T(key) #define HR3(key) LALT_T(key) #define HR4(key) key #define HR5(key) key #define HR6(key) RALT_T(key) #define HR7(key) LCTL_T(key) #define HR8(key) RSFT_T(key) #define HR_A HR1(KC_A) #define HR_S HR2(KC_S) #define HR_D HR3(KC_D) #define HR_F HR4(KC_F) #define HR_J HR5(KC_J) #define HR_K HR6(KC_K) #define HR_L HR7(KC_L) #define HR_SCLN HR8(KC_SCLN) #define HR_1 HR1(KC_1) #define HR_2 HR2(KC_2) #define HR_3 HR3(KC_3) #define HR_4 HR4(KC_4) #define HR_7 HR5(KC_7) #define HR_8 HR6(KC_8) #define HR_9 HR7(KC_9) #define HR_0 HR8(KC_0) #define HR_F1 HR1(KC_F1) #define HR_F2 HR2(KC_F2) #define HR_F3 HR3(KC_F3) #define HR_F4 HR4(KC_F4) #define HR_F7 HR5(KC_F7) #define HR_F8 HR6(KC_F8) #define HR_F9 HR7(KC_F9) #define HR_F10 HR8(KC_F10) const key_override_t shift_super_system_sleep = ko_make_basic(MOD_MASK_SHIFT, KC_LGUI, KC_SLEP) ; const key_override_t **key_overrides = (const key_override_t *[]){ &shift_super_system_sleep, NULL // Null terminate the array of overrides! }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Concatenated characters/keys means first is acessed with Shift, second without //Second line of key is for button when held down [_QWERTY] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| Tab | Q | W | E | R | T | | Y | U | I | O | P | ↩ | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| Esc | A | S | D | F | G | | H | J | K | L | :; | "' | //| |L_Shift |L_Cntrol| L_Alt | | | | | | R_Alt |L_Cntrol|R_Shift | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| -_ | Z | X | C | V | B | | N | M | <, | >. | ?/ | += | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | ☾L_Meta| LOWER | Space | | ↲ | RAISE | R_Meta | // | FN | | | | ARROWS | | | // `--------------------------' `--------------------------' KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_ESC, HR_A, HR_S, HR_D, HR_F, KC_G, KC_H, HR_J, HR_K, HR_L, HR_SCLN, KC_QUOT, KC_MINS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL, KC_LGUI, L_LOWER, KC_SPC, ENT_ARR, L_RAISE, META_FN ), [_LOWER] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| ~ | ! | @ | # | $ | % | | & | * | * | | | | {[ | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| !` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | }] | //| |L_Shift |L_Cntrol| L_Alt | | | | | | R_Alt |L_Cntrol|R_Shift | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | |\ | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | | ______ | Space | | ↲ | ADJUST | | // `--------------------------' `--------------------------' KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, XXXXXXX, KC_LBRC, KC_GRV, HR_1, HR_2, HR_3, HR_4, KC_5, KC_6, HR_7, HR_8, HR_9, HR_0, KC_RBRC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, XXXXXXX, _______, KC_SPC, KC_ENT, L_ADJST, XXXXXXX ), [_RAISE] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| | | | | | | | | | | | | PrtScr | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | < | { | [ | ( | \ | | / | ) | ] | } | > | Home | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | End | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | | ADJUST | Space | | ↲ | ______ | | // `--------------------------' `--------------------------' XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, KC_LT, KC_LCBR, KC_LBRC, KC_LPRN, KC_BSLS, KC_SLSH, KC_RPRN, KC_RBRC, KC_RCBR, KC_GT, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, XXXXXXX, KC_END, XXXXXXX, L_ADJST, KC_SPC, KC_ENT, _______, XXXXXXX ), [_ADJUST] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. QK_BOOT, 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, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ), [_ARROWS] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | ← | ↓ | ↑ | → | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | | | | | ______ | | | // `--------------------------' `--------------------------' XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX ), [_FN] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | | //| |L_Shift |L_Cntrol| L_Alt | | | | | | R_Alt |L_Cntrol|R_Shift | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | F11 | F12 | F13 | F14 | F15 | | F16 | F17 | F18 | F19 | F20 | | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | ______ | | | | | | | // `--------------------------' `--------------------------' XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, HR_F1, HR_F2, HR_F3, HR_F4, KC_F5, KC_F6, HR_F7, HR_F8, HR_F9, HR_F10, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ ) }; // Template // [] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | | | | | | | | // `--------------------------' `--------------------------' // XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX //),