keymap.c (6054B)
1 /* Copyright 2022 Sandipratama 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 layers { 21 _FIRST = 0, 22 _SECOND, 23 _THIRD, 24 _FOURTH 25 }; 26 27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28 29 /* FIRST 30 * ,---------------------------------------------------------------------. 31 * | Q (ESC) W | E | R | T | Y | U | I | O(DEL) P | 32 * |------+------+------+------+------+------+------+------+------+------| 33 * | A (TAB) S | D | F | G(TO 1)H | J | K | L(CAPS);: | 34 * |------+------+------+------+------+------+------+------+------+------| 35 * | Z | X | C | V | B(TO 2)N | M | ,< | .>(TO3)/? | 36 * |------+------+------+------+------+------+------+------+------+------| 37 * | CTRL | ALT | SHIFT| L2 |ENTER | SPACE| L1 | MUTE | PLAY | BSPC | 38 * `---------------------------------------------------------------------' 39 */ 40 [_FIRST] = LAYOUT_ortho_4x10( 41 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 42 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 43 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 44 KC_LCTL, KC_LALT, KC_LSFT, MO(1), KC_ENT, KC_SPC, MO(2), KC_MUTE, KC_MPLY, KC_BSPC 45 ), 46 /* SECOND 47 * ,---------------------------------------------------------------------. 48 * | ! | @ | { | } | ' | " | - | 7 | 8 | 9 | 49 * |------+------+------+------+------+-------------+------+------+------| 50 * | # | $ | ( | ) | ^ | _ | + | 4 | 5 | 6 | 51 * |------+------+------+------+------+------+------+------+------+------| 52 * | % | & | [ | ] | * | | | 1 | 2 | 3 | 53 * |------+------+------+------+------+------+------+------+------+------| 54 * | BASE | | \ | | | | | | = | 0 | BSPC | 55 * `---------------------------------------------------------------------' 56 */ 57 58 [_SECOND] = LAYOUT_ortho_4x10( 59 KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQT, KC_PLUS, KC_7, KC_8, KC_9, 60 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, 61 KC_PERC, KC_AMPR, KC_LBRC, KC_RBRC, KC_ASTR, _______, _______, KC_1, KC_2, KC_3, 62 TO(0), _______, KC_BSLS, KC_PIPE, _______, _______, _______, KC_EQL, KC_0, KC_BSPC 63 ), 64 65 /* THIRD 66 * ,---------------------------------------------------------------------. 67 * | INS | HOME | PGUP | | CAPT |SELECT| | | UP | | 68 * |------+------+------+------+------+-------------+------+------+------| 69 * | DEL | END | PGDN | | SAVE | COPY | | LEFT | DOWN | RGHT | 70 * |------+------+------+------+------+------+------+------+------+------| 71 * | | | | | MYCMP| PASTE| | | | | 72 * |------+------+------+------+------+------+------+------+------+------| 73 * | BASE | | | | | | | VOLD | | VOLU | 74 * `---------------------------------------------------------------------' 75 */ 76 [_THIRD] = LAYOUT_ortho_4x10( 77 KC_INS, KC_HOME, KC_PGUP, KC_NO, LSG(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO, 78 KC_DEL, KC_END, KC_PGDN, KC_NO, LCTL(KC_S), LCTL(KC_C), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, 79 KC_NO, KC_NO, KC_NO, KC_NO, LWIN(KC_E), LCTL(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, 80 TO(0), _______, _______, _______, _______, _______, _______, KC_VOLD, _______, KC_VOLU 81 ), 82 /* FOURTH 83 * ,---------------------------------------------------------------------. 84 * |RGB M+| HUD | HUI | | F1 | F2 | F3 | F4 | F5 | F6 | 85 * |------+------+------+------+------+-------------+------+------+------| 86 * |RGB M-| SAD | SAI | | F7 | F8 | F9 | F10 | F11 | F12 | 87 * |------+------+------+------+------+------+------+------+------+------| 88 * |RGB TG| VAD | VAI | | | | | | | | 89 * |------+------+------+------+------+------+------+------+------+------| 90 * | BASE | | | | | | | | | | 91 * `---------------------------------------------------------------------' 92 */ 93 [_FOURTH] = LAYOUT_ortho_4x10( 94 UG_NEXT, UG_HUED, UG_HUEU, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 95 UG_PREV, UG_SATD, UG_SATU, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 96 UG_TOGG, UG_VALD, UG_VALU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, 97 TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______ 98 ) 99 }; 100 101 // Combo key 102 const uint16_t PROGMEM test_combo1[] = {KC_Q, KC_W, COMBO_END}; 103 const uint16_t PROGMEM test_combo2[] = {KC_MPLY, KC_BSPC, COMBO_END}; 104 const uint16_t PROGMEM test_combo3[] = {KC_L, KC_SCLN, COMBO_END}; 105 const uint16_t PROGMEM test_combo4[] = {KC_A, KC_S, COMBO_END}; 106 const uint16_t PROGMEM test_combo5[] = {KC_G, KC_H, COMBO_END}; 107 const uint16_t PROGMEM test_combo6[] = {KC_B, KC_N, COMBO_END}; 108 const uint16_t PROGMEM test_combo7[] = {KC_O, KC_P, COMBO_END}; 109 combo_t key_combos[] = { 110 COMBO(test_combo1, KC_ESC), 111 COMBO(test_combo2, TO(3)), 112 COMBO(test_combo3, KC_CAPS), 113 COMBO(test_combo4, KC_TAB), 114 COMBO(test_combo5, TO(1)), 115 COMBO(test_combo6, TO(2)), 116 COMBO(test_combo7, KC_DEL), 117 };