diff options
Diffstat (limited to 'keyboards/alicia_cook/keymaps/rick/keymap.c')
| -rw-r--r-- | keyboards/alicia_cook/keymaps/rick/keymap.c | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/keyboards/alicia_cook/keymaps/rick/keymap.c b/keyboards/alicia_cook/keymaps/rick/keymap.c new file mode 100644 index 000000000..35e0e1db9 --- /dev/null +++ b/keyboards/alicia_cook/keymaps/rick/keymap.c | |||
| @@ -0,0 +1,246 @@ | |||
| 1 | /* Copyright 2021 Ibnu D. Aji | ||
| 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 | #include QMK_KEYBOARD_H | ||
| 17 | #ifdef CONSOLE_ENABLE | ||
| 18 | #include "print.h" | ||
| 19 | #endif | ||
| 20 | |||
| 21 | // enum for combos. | ||
| 22 | enum combos { | ||
| 23 | // left hand combinations. | ||
| 24 | L_U_PINKY_RING, | ||
| 25 | L_U_RING_MIDDLE, | ||
| 26 | L_U_RING_INDEX, | ||
| 27 | L_U_MIDDLE_INDEX, | ||
| 28 | L_U_MIDDLE_INNER_INDEX, | ||
| 29 | L_U_INDEX_INNER_INDEX, | ||
| 30 | L_L_PINKY_RING, | ||
| 31 | L_L_RING_MIDDLE, | ||
| 32 | L_L_RING_INDEX, | ||
| 33 | L_L_MIDDLE_INDEX, | ||
| 34 | L_L_INDEX_INNER_INDEX, | ||
| 35 | |||
| 36 | L_U_RING_MIDDLE_INDEX, | ||
| 37 | L_L_RING_MIDDLE_INDEX, | ||
| 38 | |||
| 39 | // right hand combinations. | ||
| 40 | R_U_PINKY_RING, | ||
| 41 | R_U_RING_MIDDLE, | ||
| 42 | R_U_RING_INDEX, | ||
| 43 | R_U_MIDDLE_INDEX, | ||
| 44 | R_U_MIDDLE_INNER_INDEX, | ||
| 45 | R_U_INNER_INNER_INDEX, | ||
| 46 | R_L_PINKY_RING, | ||
| 47 | R_L_RING_MIDDLE, | ||
| 48 | R_L_MIDDLE_INDEX, | ||
| 49 | R_L_RING_INDEX, | ||
| 50 | R_L_INDEX_INNER_INDEX, | ||
| 51 | |||
| 52 | R_U_RING_MIDDLE_INDEX, | ||
| 53 | R_L_RING_MIDDLE_INDEX, | ||
| 54 | |||
| 55 | // both hands combinations. | ||
| 56 | B_L_MIDDLE_MIDDLE, | ||
| 57 | }; | ||
| 58 | |||
| 59 | enum { | ||
| 60 | _BASE, | ||
| 61 | _LOWER, | ||
| 62 | _RAISE, | ||
| 63 | _ADJUST, | ||
| 64 | }; | ||
| 65 | |||
| 66 | enum custom_keycodes { | ||
| 67 | BASE = SAFE_RANGE, | ||
| 68 | LOWER, | ||
| 69 | RAISE, | ||
| 70 | ADJUST, | ||
| 71 | }; | ||
| 72 | |||
| 73 | // keycode abstraction | ||
| 74 | #define LUP KC_Q | ||
| 75 | #define LUR KC_V | ||
| 76 | #define LUM KC_C | ||
| 77 | #define LUI KC_P | ||
| 78 | #define LUII KC_B | ||
| 79 | #define LMP KC_R | ||
| 80 | #define LMR KC_S | ||
| 81 | #define LMM KC_T | ||
| 82 | #define LMI KC_H | ||
| 83 | #define LMII KC_D | ||
| 84 | #define LLP KC_QUOT | ||
| 85 | #define LLR KC_J | ||
| 86 | #define LLM KC_G | ||
| 87 | #define LLI KC_K | ||
| 88 | #define LLII KC_X | ||
| 89 | |||
| 90 | #define RUP KC_Z | ||
| 91 | #define RUR KC_Y | ||
| 92 | #define RUM KC_U | ||
| 93 | #define RUI KC_L | ||
| 94 | #define RUII KC_DOT | ||
| 95 | #define RMP KC_O | ||
| 96 | #define RMR KC_I | ||
| 97 | #define RMM KC_A | ||
| 98 | #define RMI KC_N | ||
| 99 | #define RMII KC_F | ||
| 100 | #define RLP KC_SLSH | ||
| 101 | #define RLR KC_COMM | ||
| 102 | #define RLM KC_W | ||
| 103 | #define RLI KC_M | ||
| 104 | #define RLII KC_SCLN | ||
| 105 | |||
| 106 | // thumb keys. | ||
| 107 | #define TRAISE TG(_RAISE) | ||
| 108 | #define AL_ENT ALT_T(KC_ENT) | ||
| 109 | #define SF_BSPC SFT_T(KC_BSPC) | ||
| 110 | #define CT_ESC CTL_T(KC_ESC) | ||
| 111 | |||
| 112 | // home row mods. | ||
| 113 | #define CTLR LCTL_T(LMR) | ||
| 114 | #define CTRR RCTL_T(RMR) | ||
| 115 | #define CT_LEFT LCTL_T(KC_LEFT) | ||
| 116 | #define CT_SIX RCTL_T(KC_6) | ||
| 117 | |||
| 118 | #define SHLP LSFT_T(LMP) | ||
| 119 | #define SHRP RSFT_T(RMP) | ||
| 120 | #define SH_HASH LSFT_T(KC_HASH) | ||
| 121 | #define SH_ZERO RSFT_T(KC_0) | ||
| 122 | |||
| 123 | #define ALLM LALT_T(LMM) | ||
| 124 | #define ALRM RALT_T(RMM) | ||
| 125 | #define AL_DOWN LALT_T(KC_DOWN) | ||
| 126 | #define AL_FIVE RALT_T(KC_5) | ||
| 127 | |||
| 128 | #define GULII RGUI_T(LMII) | ||
| 129 | #define GURII LGUI_T(RMII) | ||
| 130 | #define GU_DLR RGUI_T(KC_DLR) | ||
| 131 | #define GU_EQL LGUI_T(KC_EQL) | ||
| 132 | |||
| 133 | // layer toggle. | ||
| 134 | #define LW_E LT(_LOWER, KC_E) | ||
| 135 | #define RS_SPC LT(_RAISE, KC_SPC) | ||
| 136 | #define LW_RMI LT(_LOWER, RMI) | ||
| 137 | #define RS_LMI LT(_RAISE, LMI) | ||
| 138 | |||
| 139 | // idk, man. not used, i guess. | ||
| 140 | #define ADDDD MO(_ADJUST) | ||
| 141 | |||
| 142 | // common shortcuts for windows and linux that i use. | ||
| 143 | #define NXTTAB LCTL(KC_PGDN) | ||
| 144 | #define PRVTAB LCTL(KC_PGUP) | ||
| 145 | #define UPTAB LCTL(LSFT(KC_PGUP)) | ||
| 146 | #define DNTAB LCTL(LSFT(KC_PGDN)) | ||
| 147 | #define NXTWIN LALT(KC_TAB) | ||
| 148 | #define PRVWIN LALT(LSFT(KC_TAB)) | ||
| 149 | #define CALDL LCTL(LALT(KC_DELT)) | ||
| 150 | #define TSKMGR LCTL(LSFT(KC_ESC)) | ||
| 151 | #define EXPLR LGUI(KC_E) | ||
| 152 | #define LCKGUI LGUI(KC_L) | ||
| 153 | #define CONPST LSFT(KC_INS) | ||
| 154 | #define CLSGUI LALT(KC_F4) | ||
| 155 | |||
| 156 | // left hand combinations. | ||
| 157 | const uint16_t PROGMEM lu_p_r_combo[] = {LUP, LUR, COMBO_END}; | ||
| 158 | const uint16_t PROGMEM lu_r_m_combo[] = {LUR, LUM, COMBO_END}; | ||
| 159 | const uint16_t PROGMEM lu_r_i_combo[] = {LUR, LUI, COMBO_END}; | ||
| 160 | const uint16_t PROGMEM lu_m_i_combo[] = {LUM, LUI, COMBO_END}; | ||
| 161 | const uint16_t PROGMEM lu_m_ii_combo[] = {LUM, LUII, COMBO_END}; | ||
| 162 | const uint16_t PROGMEM lu_i_ii_combo[] = {LUI, LUII, COMBO_END}; | ||
| 163 | const uint16_t PROGMEM ll_p_r_combo[] = {LLP, LLR, COMBO_END}; | ||
| 164 | const uint16_t PROGMEM ll_r_m_combo[] = {LLR, LLM, COMBO_END}; | ||
| 165 | const uint16_t PROGMEM ll_r_i_combo[] = {LLR, LLI, COMBO_END}; | ||
| 166 | const uint16_t PROGMEM ll_m_i_combo[] = {LLM, LLI, COMBO_END}; | ||
| 167 | const uint16_t PROGMEM ll_i_ii_combo[] = {LLI, LLII, COMBO_END}; | ||
| 168 | |||
| 169 | const uint16_t PROGMEM lu_r_m_i_combo[] = {LUR, LUM, LUI, COMBO_END}; | ||
| 170 | const uint16_t PROGMEM ll_r_m_i_combo[] = {LLR, LLM, LLI, COMBO_END}; | ||
| 171 | |||
| 172 | // right hand combinations. | ||
| 173 | const uint16_t PROGMEM ru_p_r_combo[] = {RUP, RUR, COMBO_END}; | ||
| 174 | const uint16_t PROGMEM ru_r_m_combo[] = {RUR, RUM, COMBO_END}; | ||
| 175 | const uint16_t PROGMEM ru_r_i_combo[] = {RUR, RUI, COMBO_END}; | ||
| 176 | const uint16_t PROGMEM ru_m_i_combo[] = {RUM, RUI, COMBO_END}; | ||
| 177 | const uint16_t PROGMEM ru_m_ii_combo[] = {RUM, RUII, COMBO_END}; | ||
| 178 | const uint16_t PROGMEM ru_i_ii_combo[] = {RUI, RUII, COMBO_END}; | ||
| 179 | const uint16_t PROGMEM rl_p_r_combo[] = {RLP, RLR, COMBO_END}; | ||
| 180 | const uint16_t PROGMEM rl_r_m_combo[] = {RLR, RLM, COMBO_END}; | ||
| 181 | const uint16_t PROGMEM rl_r_i_combo[] = {RLR, RLI, COMBO_END}; | ||
| 182 | const uint16_t PROGMEM rl_m_i_combo[] = {RLM, RLI, COMBO_END}; | ||
| 183 | const uint16_t PROGMEM rl_i_ii_combo[] = {RLI, RLII, COMBO_END}; | ||
| 184 | |||
| 185 | const uint16_t PROGMEM ru_r_m_i_combo[] = {RUR, RUM, RUI, COMBO_END}; | ||
| 186 | const uint16_t PROGMEM rl_r_m_i_combo[] = {RLR, RLM, RLI, COMBO_END}; | ||
| 187 | |||
| 188 | // both hand combinations. | ||
| 189 | const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END}; | ||
| 190 | |||
| 191 | combo_t key_combos[COMBO_COUNT] = { | ||
| 192 | // left hand combinations. | ||
| 193 | [L_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB), | ||
| 194 | [L_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES), | ||
| 195 | [L_U_RING_INDEX] = COMBO(lu_r_i_combo, PRVTAB), | ||
| 196 | [L_U_MIDDLE_INDEX] = COMBO(lu_m_i_combo, KC_UNDS), | ||
| 197 | [L_U_MIDDLE_INNER_INDEX] = COMBO(lu_m_ii_combo, KC_ENT), | ||
| 198 | [L_U_INDEX_INNER_INDEX] = COMBO(lu_i_ii_combo, KC_PIPE), | ||
| 199 | [L_L_PINKY_RING] = COMBO(ll_p_r_combo, KC_ENT), | ||
| 200 | [L_L_RING_MIDDLE] = COMBO(ll_r_m_combo, LCTL(KC_W)), | ||
| 201 | [L_L_RING_INDEX] = COMBO(ll_r_i_combo, KC_TAB), | ||
| 202 | [L_L_MIDDLE_INDEX] = COMBO(ll_m_i_combo, KC_DELT), | ||
| 203 | [L_L_INDEX_INNER_INDEX] = COMBO(ll_i_ii_combo, KC_TILD), | ||
| 204 | |||
| 205 | [L_U_RING_MIDDLE_INDEX] = COMBO(lu_r_m_i_combo, KC_PIPE), | ||
| 206 | [L_L_RING_MIDDLE_INDEX] = COMBO(ll_r_m_i_combo, KC_TILD), | ||
| 207 | |||
| 208 | // right hand combinations. | ||
| 209 | [R_U_PINKY_RING] = COMBO(ru_p_r_combo, KC_BSPC), | ||
| 210 | [R_U_RING_MIDDLE] = COMBO(ru_r_m_combo, KC_SLSH), | ||
| 211 | [R_U_RING_INDEX] = COMBO(ru_r_i_combo, NXTTAB), | ||
| 212 | [R_U_MIDDLE_INDEX] = COMBO(ru_m_i_combo, KC_MINS), | ||
| 213 | [R_U_MIDDLE_INNER_INDEX] = COMBO(ru_m_ii_combo, KC_ENT), | ||
| 214 | [R_U_INNER_INNER_INDEX] = COMBO(ru_i_ii_combo, KC_BSLS), | ||
| 215 | [R_L_PINKY_RING] = COMBO(rl_p_r_combo, KC_BSLS), | ||
| 216 | [R_L_RING_MIDDLE] = COMBO(rl_r_m_combo, KC_APP), | ||
| 217 | [R_L_RING_INDEX] = COMBO(rl_r_i_combo, LSFT(KC_TAB)), | ||
| 218 | [R_L_MIDDLE_INDEX] = COMBO(rl_m_i_combo, KC_DELT), | ||
| 219 | [R_L_INDEX_INNER_INDEX] = COMBO(rl_i_ii_combo, KC_GRV), | ||
| 220 | |||
| 221 | [R_U_RING_MIDDLE_INDEX] = COMBO(ru_r_m_i_combo, KC_BSLS), | ||
| 222 | [R_L_RING_MIDDLE_INDEX] = COMBO(rl_r_m_i_combo, KC_GRV), | ||
| 223 | |||
| 224 | // both hand combinations. | ||
| 225 | [B_L_MIDDLE_MIDDLE] = COMBO(bl_m_m_combo, KC_ENT), | ||
| 226 | }; | ||
| 227 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 228 | [0] = LAYOUT_all( | ||
| 229 | KC_ESC, LUP, LUR, LUM, LUI, LUII, RUII, RUI, RUM, RUR, RUP, KC_BSPC, KC_BSPC, | ||
| 230 | KC_LCTL,SHLP, CTLR, ALLM, RS_LMI, GULII, GURII, LW_RMI, ALRM, CTRR, SHRP, KC_ENT, | ||
| 231 | KC_LSFT,LLP, LLR, LLM, LLI, LLII, RLII, RLI, RLM, RLR, RLP, KC_RSFT,MO(1), | ||
| 232 | KC_LGUI,KC_LALT, KC_LGUI,LW_E, SF_BSPC, AL_ENT, RS_SPC, KC_LALT, KC_RGUI,KC_RCTL | ||
| 233 | ), | ||
| 234 | [1] = LAYOUT_all( | ||
| 235 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC, | ||
| 236 | KC_LCTL,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_SCLN, | ||
| 237 | KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(2), | ||
| 238 | KC_LGUI,KC_LALT, KC_LGUI,LW_E, SF_BSPC, AL_ENT, RS_SPC, KC_LALT, KC_RGUI,KC_RCTL | ||
| 239 | ), | ||
| 240 | [2] = LAYOUT_all( | ||
| 241 | 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_F13, | ||
| 242 | KC_LCTL,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_SCLN, | ||
| 243 | KC_LSFT,KC_Z, KC_X, KC_C, KC_V, RESET, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,MO(1), | ||
| 244 | KC_LGUI,KC_LALT, KC_LGUI,LW_E, SF_BSPC, AL_ENT, RS_SPC, KC_LALT, KC_RGUI,KC_RCTL | ||
| 245 | ), | ||
| 246 | }; | ||
