/* Copyright 2019 @foostan Copyright 2020 Drashna Jaelre <@drashna> 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, }; #define L_LOWER MO(_LOWER) #define L_RAISE MO(_RAISE) #define L_ADJST MO(_ADJUST) // 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 | | ↲ | UPPER | | // `--------------------------' `--------------------------' 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, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_LGUI, L_LOWER, KC_SPC, KC_ENT, L_RAISE, XXXXXXX ), [_LOWER] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, _______, KC_SPC, KC_ENT, L_ADJST, KC_RALT //`--------------------------' `--------------------------' ), [_RAISE] = LAYOUT_split_3x6_3( //,-----------------------------------------------------. ,-----------------------------------------------------. KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| KC_LGUI, L_ADJST, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ), [_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 //`--------------------------' `--------------------------' ) }; // Temlate //,-----------------------------------------------------. ,-----------------------------------------------------. //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| //| | | | | | | | | | | | | | //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| // | | | | | | | | // `--------------------------' `--------------------------'