keymap.c (12595B)
1 /* Copyright 2022 bojiguard (@bojiguard) 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 2 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17 #include QMK_KEYBOARD_H 18 19 20 enum layer_names { 21 SAM1, 22 SAM2, 23 SAM3, 24 SAM4, 25 BASE, 26 F3LAY, 27 F4LAY, 28 }; 29 30 31 32 33 34 #define SFCTLNO MT(MOD_LCTL|MOD_LSFT,KC_NO) 35 36 #define SFCT_S MT(MOD_LCTL|MOD_LSFT,KC_S) 37 #define CT_D MT(MOD_LCTL,KC_D) 38 #define SF_F MT(MOD_LSFT,KC_F) 39 40 #define SF_J MT(MOD_RSFT,KC_J) 41 #define CT_K MT(MOD_RCTL,KC_K) 42 43 #define MTC_F7 MT(MOD_LCTL|MOD_LSFT, KC_F7) 44 #define MTC_F8 MT(MOD_LCTL, KC_F8) 45 #define MTC_F9 MT(MOD_LSFT, KC_F9) 46 47 #define MTC_K MT(MOD_RCTL, KC_K) 48 #define MTC_J MT(MOD_RSFT, KC_J) 49 50 #define MTC_8 MT(MOD_RCTL, KC_8) 51 #define MTC_7 MT(MOD_RSFT, KC_7) 52 53 //#define MTLC_8 MT(MOD_LCTL, KC_8) 54 #define MTLC_9 MT(MOD_LSFT, KC_9) 55 56 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 57 58 /* BASE 59 * ,------------------------------------------------. ,------------------------------------------------. 60 * | ~ | 1 | 2 | 3 | 4 | 5 | ESC | | BS | 6 | 7 | 8 | 9 | [ | \ | 61 * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| 62 * | Tab | Q | W | E | R | T | ` | | \ | Y | U | I | O | P | Tab | 63 * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| 64 * | ctrl | A | S | D | F | G | [ | | ] | H | J | K | L | ; | ctrl | 65 * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| 66 * | shift| Z | X | C | V | B | 3 | - | 7 || 1 | 2 | = | 4 | N | M | , | . |shift | 67 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 68 * | 1 | 2 | 3 | 4 | alt | spc | MO(1) |enter ||enter | MO(0) | spc | alt | 1 | 2 | 3 | 4 | 69 * `------------------------------------------------' ------------------------------------------------' 70 */ 71 72 [BASE] = LAYOUT( 73 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, 74 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, 75 KC_NO, KC_A, SFCT_S, CT_D, SF_F, KC_G, KC_LBRC, KC_RBRC, KC_H, MTC_J, MTC_K, KC_L, KC_SCLN, KC_NO, 76 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSLS, LM(F3LAY, MOD_LSFT), KC_NO, KC_NO, LM(F3LAY, MOD_RSFT), KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, 77 KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_LSFT, KC_SPC, MO(F3LAY), KC_ENT, KC_ENT, TT(F3LAY), KC_SPC, KC_RSFT, KC_RALT, KC_NO, TT(SAM1),TG(F4LAY) 78 ), 79 80 /* BASE 81 * ,------------------------------------------------. ,------------------------------------------------. 82 * | ~ | 1 | 2 | 3 | 4 | 5 | ESC | | BS | 6 | 7 | 8 | 9 | [ | \ | 83 * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| 84 * | Tab | Q | W | E | R | T | ` | | DEL | HOME | UP | END | O | P | Tab | 85 * |------+------+------+------+------+------+------| |-------------+------+------+------+------+------| 86 * | ctrl | A | S | D | F | G | [ | | INS | LEFT | DOWN | RIGHT| L | ; | ctrl | 87 * |------+------+------+------+------+------+------| |------|------+------+------+------+------+------| 88 * | shift| Z | X | ctr+C|ctr+V | B | 3 | - | 7 || 1 | 2 | NO | PGUP | NO | PGDN | , | . |shift | 89 * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| 90 * | 1 | 2 | 3 | 4 | alt | spc | MO(1) |enter ||enter | MO(0) | spc | alt | 1 | 2 | 3 | 4 | 91 * `------------------------------------------------' ------------------------------------------------' 92 */ 93 94 [F3LAY] = LAYOUT( 95 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_ESC, KC_BSPC, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, 96 KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_CAPS, KC_CAPS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TAB, 97 KC_NO, KC_NO, SFCTLNO, KC_LCTL, KC_LSFT, KC_PAUS, KC_PSCR, KC_BSPC, KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, 98 KC_LCTL, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, LM(F3LAY, MOD_LSFT), KC_NO, KC_NO, LM(F3LAY, MOD_RSFT), KC_NO, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_RCTL, 99 KC_NO, KC_NO, KC_NO, KC_LALT, KC_LSFT, KC_SPC, MO(F3LAY), KC_ENT, KC_ENT, TT(F3LAY), KC_SPC, KC_RSFT, KC_RALT, KC_NO, KC_NO, TG(F4LAY) 100 ), 101 102 103 [F4LAY] = LAYOUT( 104 KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_ESC, KC_BSPC, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, 105 KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CAPS, KC_CAPS, KC_DEL, KC_HOME, KC_UP, KC_END, KC_NO, KC_TAB, 106 KC_NO, KC_NO, SFCTLNO, KC_LCTL, KC_LSFT, KC_PAUS, KC_PSCR, KC_BSPC, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO, 107 KC_LCTL, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, LM(F3LAY, MOD_LSFT), KC_NO, KC_NO, LM(F3LAY, MOD_RSFT), KC_NO, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_RCTL, 108 KC_NO, KC_NO, KC_NO, KC_LALT, KC_LSFT, KC_SPC, MO(F3LAY), KC_ENT, KC_ENT, TT(F3LAY), KC_SPC, KC_RSFT, KC_RALT, KC_NO, KC_NO, TG(F4LAY) 109 ), 110 111 /* 112 [TEST] = LAYOUT( 113 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, 114 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB, 115 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT, 116 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSLS, KC_LCTL, KC_NO, KC_NO, TG(F4LAY), KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, 117 KC_NO, KC_NO, KC_NO, KC_LALT, KC_LSFT, KC_SPC, MO(F3LAY), KC_ENT, KC_ENT, TT(F3LAY), KC_SPC, KC_RSFT, KC_RALT, KC_NO, KC_NO, KC_NO 118 ), 119 */ 120 121 //--------------------------------------------------------NEW----------------------------------------------- 122 //SAM1을 기반으로 새로운 모드 123 [SAM1] = LAYOUT( 124 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, 125 KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, 126 KC_TAB, KC_A, SFCT_S, CT_D, SF_F, KC_G, KC_CAPS, KC_CAPS, KC_H, MTC_J, MTC_K, KC_L, KC_SCLN, KC_TAB, 127 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL, 128 KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO 129 ), 130 131 [SAM3] = LAYOUT( 132 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 133 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, 134 KC_TAB, KC_6, KC_7, KC_8, MTLC_9, KC_0, KC_CAPS, KC_CAPS, KC_6, MTC_7, MTC_8, KC_9, KC_0, KC_TAB, 135 KC_LCTL, KC_PSLS, KC_PAST, KC_MINS, KC_PPLS, KC_EQL, KC_DOT, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_DOT, KC_EQL, KC_PPLS, KC_PMNS, KC_PAST, KC_PSLS, KC_RCTL, 136 KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO 137 ), 138 139 [SAM2] = LAYOUT( 140 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 141 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, 142 KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TAB, 143 KC_LCTL, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, KC_BSLS, KC_QUOT, KC_LBRC, KC_RBRC, KC_GRV, KC_RCTL, 144 KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO 145 ), 146 [SAM4] = LAYOUT( 147 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ESC, KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 148 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_BSPC, MS_ACL0, MS_BTN1, MS_UP, MS_BTN2, KC_NO, KC_NO, 149 KC_TAB, KC_F6, MTC_F7, MTC_F8, MTC_F9, KC_F10, KC_F12, KC_CAPS, MS_ACL1, MS_LEFT, MS_DOWN, MS_RGHT, KC_NO, KC_TAB, 150 KC_NO, KC_NO, MS_ACL0, MS_ACL1, MS_ACL2, KC_NO, KC_NO, TT(SAM3), KC_NO, KC_NO, TT(SAM2), KC_NO, MS_ACL2, MS_WHLL, MS_WHLU, MS_WHLD, MS_WHLR, KC_RCTL, 151 KC_NO, TT(SAM1), KC_NO, KC_LALT, KC_SPC, TT(SAM2), KC_ENT, MO(SAM4), KC_NO, KC_ENT, TT(SAM3), KC_SPC, KC_RALT, KC_NO, TT(SAM1), KC_NO 152 ), 153 }; 154 155 156