keymap.c (7438B)
1 // Copyright 2022 Ethan (@rocketstrong) 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #include QMK_KEYBOARD_H 5 6 /* 7 * ┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐ 8 *┌────┐┌──┐│ ││ ││ ││ ││ │ │ ││ ││ ││ ││ │┌──┐┌────┐ 9 *│ ││ │└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘│ ││ │ 10 *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ 11 *┌────┐┌──┐│ ││ ││ ││ ││ │ │ ││ ││ ││ ││ │┌──┐┌────┐ 12 *│ ││ │└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘│ ││ │ 13 *└────┘└──┘┌──┐┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐┌──┐└──┘└────┘ 14 *┌────┐┌──┐│ ││ ││ ││ ││ │ │ ││ ││ ││ ││ │┌──┐┌────┐ 15 *│ ││ │└──┘└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘└──┘│ ││ │ 16 *└────┘└──┘┌──┐┌──┐┌──┐┌──┐ ┌──┐┌──┐┌──┐┌──┐└──┘└────┘ 17 *┌────┐┌──┐│ ││ ││ ││ │ │ ││ ││ ││ │┌──┐┌────┐ 18 *│ ││ │└──┘└──┘└──┘└──┘ └──┘└──┘└──┘└──┘│ ││ │ 19 *└────┘└──┘┌──┐┌──┐ ┌──┐┌──┐└──┘└────┘ 20 * ┌──┐┌──┐│ ││ │ ┌──┐ ┌──┐ ┌──┐ ┌──┐ │ ││ │┌──┐┌──┐ 21 * │ ││ │└──┘└──┘ │ │ │ │ │ │ │ │ └──┘└──┘│ ││ │ 22 * └──┘└──┘ │ │ │ │ │ │ │ │ └──┘└──┘ 23 * │ │ └──┘ └──┘ │ │ 24 * └──┘ ┌──┐ ┌──┐ ┌──┐ ┌──┐ └──┘ 25 * │ │ │ │ │ │ │ │ 26 * └──┘ └──┘ └──┘ └──┘ 27 * ┌──┐┌──┐ ┌──┐┌──┐ 28 * │ ││ │ │ ││ │ 29 * └──┘└──┘ └──┘└──┘ 30 */ 31 32 enum Colemaklayers { 33 _ARSTG, 34 _NUMPAD, 35 _SYMBOLS 36 }; 37 38 enum custom_keycodes { 39 AD_DDS = SAFE_RANGE, 40 AD_SCOPE 41 }; 42 43 #define TT_NUM TT(_NUMPAD) 44 #define TT_SYM TT(_SYMBOLS) 45 46 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 47 switch (keycode) { 48 case AD_DDS: 49 if (!record->event.pressed) { 50 // when keycode AD_DDS is pressed 51 SEND_STRING("../"); 52 } else { 53 // when keycode AD_DDS is released 54 } 55 break; 56 case AD_SCOPE: 57 if (!record->event.pressed) { 58 // when keycode AD_DDS is pressed 59 SEND_STRING("::"); 60 } else { 61 // when keycode AD_DDS is released 62 } 63 break; 64 } 65 return true; 66 } 67 68 69 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 70 [_ARSTG] = LAYOUT( 71 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS , KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESC , 72 KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B , KC_LBRC , KC_RBRC , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSLS , 73 KC_ESC , KC_A , KC_R , KC_S , KC_T , KC_G , KC_PSCR , KC_PAUS , KC_M , KC_N , KC_E , KC_I , KC_O , KC_QUOT , 74 KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V , KC_K , KC_H , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT , 75 KC_LCTL , KC_LGUI , KC_LALT , KC_DEL , KC_LEFT , KC_UP , KC_DOWN , KC_RIGHT, 76 KC_SPC , KC_BSPC , KC_TAB , KC_ENT , 77 TT_NUM , KC_LSFT , KC_RSFT , TT_SYM , 78 KC_LCTL , KC_LALT , KC_RALT , KC_RCTL 79 ), 80 [_NUMPAD] = LAYOUT( 81 KC_NO , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NO , 82 KC_TRNS , KC_PGUP , KC_HOME , KC_UP , KC_END , KC_NO , KC_NO , KC_NO , KC_NUM , KC_P7 , KC_P8 , KC_P9 , KC_PMNS , KC_NO , 83 KC_TRNS , KC_PGDN , KC_LEFT , KC_DOWN , KC_RIGHT, KC_NO , KC_TRNS , KC_TRNS , KC_PSLS , KC_P4 , KC_P5 , KC_P6 , KC_PPLS , KC_NO , 84 KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_PAST , KC_P1 , KC_P2 , KC_P3 , KC_PEQL , KC_NO , 85 KC_TRNS , KC_NO , KC_NO , KC_NO , KC_P0 , KC_PDOT , KC_PCMM , KC_NO , 86 KC_TRNS , KC_TRNS , KC_TRNS , KC_PENT , 87 KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 88 KC_TRNS , QK_BOOT , KC_TRNS , KC_TRNS 89 ), 90 [_SYMBOLS] = LAYOUT( 91 KC_NO , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NO , 92 KC_TRNS , KC_QUOT , KC_LT , KC_GT , KC_DQT , KC_DOT , KC_NO , KC_NO , KC_AMPR , AD_SCOPE, KC_LBRC , KC_RBRC , KC_PERC , KC_NO , 93 KC_TRNS , KC_EXLM , KC_MINS , KC_PLUS , KC_EQL , KC_HASH , KC_NO , KC_NO , KC_PIPE , KC_COLN , KC_LPRN , KC_RPRN , KC_QUES , KC_NO , 94 KC_TRNS , KC_CIRC , KC_SLSH , KC_ASTR , KC_BSLS , AD_DDS , KC_TILD , KC_DLR , KC_LCBR , KC_RCBR , KC_AT , KC_NO , 95 KC_TRNS , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , 96 KC_TRNS , KC_TRNS , KC_TRNS , KC_PENT , 97 KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 98 KC_TRNS , KC_TRNS , QK_BOOT , KC_TRNS 99 ) 100 };