diff options
| -rw-r--r-- | keyboards/3w6/keymaps/helltm/keymap.c | 160 | 
1 files changed, 160 insertions, 0 deletions
| diff --git a/keyboards/3w6/keymaps/helltm/keymap.c b/keyboards/3w6/keymaps/helltm/keymap.c new file mode 100644 index 0000000000..507085081f --- /dev/null +++ b/keyboards/3w6/keymaps/helltm/keymap.c @@ -0,0 +1,160 @@ +/* Copyright 2021 HellSingCoder + * + * 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 <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +enum layers +{ +    _ALPHA_QWERTY = 0, +    _SYM, +    _NAV, +    _NUM, +}; + +enum custom_keycodes { +    KC_THUMB_SWAP, +}; + +/* Space Enter swap */ +bool swap_space_enter = false; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +    /* +    * QWERTY +    *              _____                                                   _____ +    *       .-----|  E  |-----._____                           _____.-----|  I  |-----. +    * .-----|  W  |_____|  R  |  T  |                         |  Y  |  U  |_____|  O  |-----. +    * |  Q  |-----|  D  |-----|_____|                         |_____|-----|  K  |-----|  P  | +    * |-----|  S  |_____|  F  |  G  |                         |  H  |  J  |_____|  L  |-----| +    * |  A  |-----|  C  |-----|_____|                         |_____|-----| , < |-----| ; : | +    * |-----|  X  |_____|  V  |  B  |                         |  N  |  M  |_____| . > |-----| +    * |  Z  |-----'     '-----|_____|                         |_____|-----'     '-----| / ? | +    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----' +    *  SHIFT           | WIN ||CTRL | /     /         \     \ | BSp || Del |           SHIFT +    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----' +    *                    NUM        '--.._/             \_..--' NAV    SYM +    */ +    [_ALPHA_QWERTY] = LAYOUT( +        KC_Q,         KC_W   , KC_E   , KC_R   , KC_T   ,                                    KC_Y   , KC_U   , KC_I   , KC_O   , KC_P           , +        KC_A,         KC_S   , KC_D   , KC_F   , KC_G   ,                                    KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN        , +        LSFT_T(KC_Z), KC_X   , KC_C   , KC_V   , KC_B   ,                                    KC_N   , KC_M   , KC_COMM, KC_DOT , RSFT_T(KC_SLSH), +                                LT(_NUM, KC_LGUI), KC_LCTRL, KC_ENT,       KC_SPC, LT(_NAV, KC_BSPC), LT(_SYM, KC_DEL) +    ), + +    /* +    * Symbols +    *              _____                                                   _____ +    *       .-----|  #  |-----._____                           _____.-----|  *  |-----. +    * .-----|  @  |_____|  $  |  %  |                         |  ^  |  &  |_____|  (  |-----. +    * |  !  |-----|     |-----|_____|                         |_____|-----| [ { |-----|  )  | +    * |-----|     |_____|     |     |                         |  {  |  }  |_____| ] } |-----| +    * | ` ~ |-----|     |-----|_____|                         |_____|-----|     |-----| ' " | +    * |-----|     |_____|     |     |                         | - _ | = + |_____|  |  |-----| +    * |  ~  |-----'     '-----|_____|                         |_____|-----'     '-----| \ | | +    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----' +    *  SHIFT           |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT +    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----' +    *                               '--.._/             \_..--' +    */ +    [_SYM] = LAYOUT( +        KC_EXLM,         KC_AT  , KC_HASH, KC_DLR , KC_PERC,                                KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN        , +        KC_GRV ,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_QUOT        , +        LSFT_T(KC_TILD), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                                KC_MINS, KC_EQL , XXXXXXX, KC_PIPE, RSFT_T(KC_BSLS), +                                        XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX +    ), + +    /* +    * Navigation +    *              _____                                                   _____ +    *       .-----|Mute |-----._____                           _____.-----| Up  |-----. +    * .-----|VDown|_____| VUp |     |                         |     |PDown|_____| PUp |-----. +    * | Esc |-----|Play |-----|_____|                         |_____|-----|Down |-----| BSp | +    * |-----|Prev |_____|Next |     |                         |Home |Left |_____|Right|-----| +    * | Tab |-----|Stop |-----|_____|                         |_____|-----|     |-----| ' " | +    * |-----|     |_____|     |Swap |                         |     |     |_____| End |-----| +    * | CPS |-----'     '-----|_____|                         |_____|-----'     '-----| Del | +    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----' +    *  SHIFT           |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT +    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----' +    *                               '--.._/             \_..--' +    */ +    [_NAV] = LAYOUT( +        KC_ESC         , KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX      ,                                XXXXXXX, KC_PGDN, KC_UP  , KC_PGUP, KC_BSPC, +        KC_TAB         , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX      ,                                KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_QUOT, +        LSFT_T(KC_CAPS), XXXXXXX, KC_MSTP, XXXXXXX, KC_THUMB_SWAP,                                XXXXXXX, XXXXXXX, XXXXXXX, KC_END , RSFT_T(KC_DEL) , +                                              XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX +    ), + +    /* +    * Numbers +    *              _____                                                   _____ +    *       .-----|  3  |-----._____                           _____.-----|  8  |-----. +    * .-----|  2  |_____|  4  |  5  |                         |  6  |  7  |_____|  9  |-----. +    * |  1  |-----| F3  |-----|_____|                         |_____|-----| F8  |-----|  0  | +    * |-----| F2  |_____| F4  | F5  |                         | F6  | F7  |_____| F9  |-----| +    * | F1  |-----| Scr |-----|_____|                         |_____|-----|     |-----| F10 | +    * |-----| TMg |_____|     |     |                         |     |     |_____| F11 |-----| +    * |Shift|-----'     '-----|_____|                         |_____|-----'     '-----| F12 | +    * '-----'          .-----. _____   .-.._           _..-.   _____ .-----.          '-----' +    *                  |     ||CTRL | /     /         \     \ | BSp ||     |           SHIFT +    *                  '-----':_____|/ ENT /           \ SPC \|_____:'-----' +    *                               '--.._/             \_..--' +    */ +    [_NUM] = LAYOUT( +        KC_1   , KC_2       , KC_3      , KC_4   , KC_5   ,                                KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , +        KC_F1  , KC_F2      , KC_F3     , KC_F4  , KC_F5  ,                                KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , +        KC_LSFT, LCA(KC_DEL), SWIN(KC_S), XXXXXXX, XXXXXXX,                                XXXXXXX, XXXXXXX, XXXXXXX, KC_F11 , RSFT_T(KC_F12) , +                                       XXXXXXX, _______, _______,                    _______, KC_BSPC, XXXXXXX +    ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    switch (keycode) { + +        /* Space Enter swap */ +        case KC_THUMB_SWAP: +            if (record->event.pressed) { +                unregister_code(KC_SPC); +                unregister_code(KC_ENT); +                swap_space_enter = !swap_space_enter; +            } +            return false; +            break; + +        case KC_ENT: +            if (swap_space_enter) { +                if (record->event.pressed) { +                    register_code(KC_SPC); +                } else { +                    unregister_code(KC_SPC); +                } +                return false; +            } +            break; +        case KC_SPC: +            if (swap_space_enter) { +                if (record->event.pressed) { +                    register_code(KC_ENT); +                } else { +                    unregister_code(KC_ENT); +                } +                return false; +            } +            break; +    } +    return true; +} | 
