diff options
Diffstat (limited to 'keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c')
| -rw-r--r-- | keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c new file mode 100644 index 000000000..10ef88b4d --- /dev/null +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c | |||
| @@ -0,0 +1,243 @@ | |||
| 1 | /* | ||
| 2 | * License (GPL): | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | |||
| 17 | * Author: © 2020 by Jos Boersema | ||
| 18 | * | ||
| 19 | */ | ||
| 20 | |||
| 21 | // --------------------------------------v--------------------------------------- | ||
| 22 | // Configuration: | ||
| 23 | // --------------------------------------v--------------------------------------- | ||
| 24 | |||
| 25 | // --------------------------------------^--------------------------------------- | ||
| 26 | // Below here no more comfortable configuration options..... | ||
| 27 | // --------------------------------------^--------------------------------------- | ||
| 28 | |||
| 29 | |||
| 30 | /* Redefine a layer in this file | ||
| 31 | * | ||
| 32 | * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer | ||
| 33 | * in this file. The version in ./keymap.c will be ignored. Keep in mind to use | ||
| 34 | * transparent keys (_______) for “hold” layer switch keys on the BASE map, for | ||
| 35 | * your new layer. | ||
| 36 | */ | ||
| 37 | // #define BASESFILE_LAYER_ACC | ||
| 38 | // #define BASESFILE_LAYER_DRA | ||
| 39 | // #define BASESFILE_LAYER_BON | ||
| 40 | // #define BASESFILE_LAYER_PAD | ||
| 41 | // #define BASESFILE_LAYER_MOV | ||
| 42 | // #define BASESFILE_LAYER_RAR | ||
| 43 | // #define BASESFILE_LAYER_FUN | ||
| 44 | |||
| 45 | /* ⬇ */ | ||
| 46 | |||
| 47 | /* Layer _..._BASE: Qwerty with arrows on Base, normal BASE layer and 'default' layer | ||
| 48 | * | ||
| 49 | * - This version of Qwerty puts arrows on Base, and assumes the 'arrow' hardware key. | ||
| 50 | * When not compiled with 'arrow' hardware key, Base will not contain ‛down arrow’. | ||
| 51 | * | ||
| 52 | * This does not mean that this is the recommended version of Qwerty in general for | ||
| 53 | * the 'arrow' hardware key with Qwerty. Regular Qwerty works with the additional | ||
| 54 | * hardware key 'arrow'. The regular Qwerty compile option just works differently | ||
| 55 | * than this version with arrows on Base. Regular qwerty has the additional hardware | ||
| 56 | * key on the right be a toggle to _MOV layer, where you then have arrows in the same | ||
| 57 | * area. Notice further that in all cases, you have a hold key to the _MOV layer under | ||
| 58 | * what is colloqually known as the ‛left space bar’, which leads to convenient arrow | ||
| 59 | * keys in the home row. | ||
| 60 | * | ||
| 61 | * Putting directional arrow keys on the Base layer will cost you several keys on | ||
| 62 | * the Base layer: hold _RAR, GUI, and ‛/?’. | ||
| 63 | * • The ‛/?’ key is displaced to the _NSY layer. | ||
| 64 | * • The GUI key is lost. You could decide to also use the ‛south paw’/‛command’ | ||
| 65 | * hardware key, which is a GUI by default. | ||
| 66 | * • Hold key to _RAR layer is lost. You can only reach _RAR layer, using the right | ||
| 67 | * shift toggle, which is on a short timer. | ||
| 68 | * | ||
| 69 | * My recommendation would be: see if you can make things work with regular Qwerty | ||
| 70 | * if you are a 10 fingers typist, first. Moving your hand to this arrow cluster | ||
| 71 | * seems to be a high cost to pay. You will also loose the default location for ‛/?’. | ||
| 72 | * | ||
| 73 | * For special need situations regarding this right hand row1/2 arrow cluster, a | ||
| 74 | * tap to _MOV layer on the ‛arrow’ hardware key, should be a reasonable cost to | ||
| 75 | * pay, if a situation is already important enough to decide to move your hand there. | ||
| 76 | * For short uses of arrow keys, holding to the _MOV layer is the most efficient. | ||
| 77 | * | ||
| 78 | * If you are not a 10 finger typist though, holding a key to _MOV layer seems to be | ||
| 79 | * inconvenient, and thus arrows on Base could be better for you. | ||
| 80 | * | ||
| 81 | * Hence my conclusion: only compile ‛Qwerty with arrows on Base’ if the regular | ||
| 82 | * Qwerty isn't working for you. | ||
| 83 | * | ||
| 84 | */ | ||
| 85 | |||
| 86 | // Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout. | ||
| 87 | # if defined(BASE_QWERTY_BASEARROW__DEF_BASE) | ||
| 88 | [ _DEF_BASE ] = LAYOUT_redefined ( | ||
| 89 | # elif defined(BASE_QWERTY_BASEARROW__ALT_BASE) | ||
| 90 | [ _ALT_BASE ] = LAYOUT_redefined ( | ||
| 91 | # endif | ||
| 92 | |||
| 93 | /* | ||
| 94 | Layer _..._BASE (Letters). This is Qwerty with arrows on Base | ||
| 95 | | Right hand | ||
| 96 | <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger | ||
| 97 | -o- <|> ... //-o- BASE access | ||
| 98 | Esc qQ wW eE rR tT | yY uU iI oO pP Bksp | ||
| 99 | Tab+LCtl aA sS dD fF gG | hH jJ kK lL ;: '" | ||
| 100 | LSht+_PAD zZ xX cC vV bB | nN mM ,< .> Up RSht+_FUN | ||
| 101 | +_MOV⁵ | +_RAR⁶ | ||
| 102 | --------------------------------------------------------------------------------------- | ||
| 103 | Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) Left Right | ||
| 104 | hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ // switch type | ||
| 105 | hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA | ||
| 106 | ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON | ||
| 107 | <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number | ||
| 108 | ^³ ^⁴ // Optional more keys | ||
| 109 | (RGUI) (Down) | ||
| 110 | |||
| 111 | ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^ | ||
| 112 | ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛ | ||
| 113 | ₃) 'South paw' hardware configuration. Configurable, default shown. | ||
| 114 | ₄) 'Arrow' hardware configuration. Set to Down Arrow. | ||
| 115 | ₃ ₄) There are two more optional hardware keys, to make it easier to compile for | ||
| 116 | a 12x12x12x11 or 12x12x12x12 layouts. | ||
| 117 | ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV. | ||
| 118 | ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR. | ||
| 119 | */ | ||
| 120 | // | ||
| 121 | // <pink2 , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd> , ring> , pink> , pink2> , | ||
| 122 | // -*!- , , , , , <|,> , , , , , , | ||
| 123 | KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC , | ||
| 124 | LCTL_T ( KC_TAB ) , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , | ||
| 125 | CHOLTAP_LSHFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_UP , CHOLTAP_RSHFT , | ||
| 126 | // KC_SLSH | ||
| 127 | // ----------------------------------------------------------------------------------------------------------------- | ||
| 128 | LALT_T ( KC_LEFT ) | ||
| 129 | |||
| 130 | # ifdef TRANSMINIVAN_LEFTSIDE | ||
| 131 | , MO ( _PAD ) | ||
| 132 | # endif | ||
| 133 | |||
| 134 | # ifdef MORE_KEY__COMMAND | ||
| 135 | , MORE_key1_BASE | ||
| 136 | # endif | ||
| 137 | |||
| 138 | # ifdef SWITCH_HOLD_ACC_NSY | ||
| 139 | , DUO_HOLD , CHOLTAP_ACCE | ||
| 140 | # else | ||
| 141 | , CHOLTAP_ACCE , DUO_HOLD | ||
| 142 | # endif | ||
| 143 | |||
| 144 | , LT__MOV__KC_ENT | ||
| 145 | |||
| 146 | # ifdef TRANSMINIVAN_MIDLEFT | ||
| 147 | , TRANS_MIDLEFT | ||
| 148 | # endif | ||
| 149 | |||
| 150 | , KC_SPC , DUO_HOLD | ||
| 151 | |||
| 152 | # ifdef TRANSMINIVAN_RIGHTSIDE | ||
| 153 | , MO ( _FUN ) | ||
| 154 | # endif | ||
| 155 | |||
| 156 | , KC_LEFT | ||
| 157 | // , KC__YGUI | ||
| 158 | |||
| 159 | # ifdef MORE_KEY__ARROW | ||
| 160 | , KC_DOWN | ||
| 161 | // , MORE_key2 | ||
| 162 | # endif | ||
| 163 | |||
| 164 | , KC_RIGHT | ||
| 165 | // , CHOLTAP_LAYR | ||
| 166 | // , , , <|,> , , , | ||
| 167 | // <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> | ||
| 168 | |||
| 169 | ), | ||
| 170 | |||
| 171 | /* ⬆⬇ */ | ||
| 172 | |||
| 173 | /* Layer _..._NSY: Numbers and symbols, to work with the Qwerty base layer above. | ||
| 174 | * Off hand Number input (-.Bksp ent (shft)tab). | ||
| 175 | */ | ||
| 176 | // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019). | ||
| 177 | |||
| 178 | // Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout. | ||
| 179 | # if defined(BASE_QWERTY_BASEARROW__DEF_BASE) | ||
| 180 | [ _DEF_NSY ] = LAYOUT_redefined ( | ||
| 181 | # elif defined(BASE_QWERTY_BASEARROW__ALT_BASE) | ||
| 182 | [ _ALT_NSY ] = LAYOUT_redefined ( | ||
| 183 | # endif | ||
| 184 | |||
| 185 | /* | ||
| 186 | Layer _..._NSY (Numbers and SYmbols). This fits the above Qwerty layer _..._BASE | ||
| 187 | |||
| 188 | <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2> | ||
| 189 | -*- <|> //(toggle) Access on _FUN | ||
| 190 | BASE ! @ # $ % | ^ & * ( ) Del | ||
| 191 | Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) /? | ||
| 192 | -+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht | ||
| 193 | ^^ ^ // Only differences with normal version _..._NSY | ||
| 194 | --------------------------------------------------------------------------- | ||
| 195 | Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt | ||
| 196 | -*- <|> -*- //(hold) Access on _..._BASE | ||
| 197 | <1 ± <2 <3 <4 | 4> 3> 2> ± 1> | ||
| 198 | ^ ^ | ||
| 199 | (RGUI) (_MOV) | ||
| 200 | */ | ||
| 201 | // | ||
| 202 | // | ||
| 203 | // <pink2 , <pinky , <ring , <middl , <index , <indx2 |, indx2> , index> , middl> , ring> , pinky> , pink2> , | ||
| 204 | // , -*- , , , , <|,> , , , , , , | ||
| 205 | CTO_BASE , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL , | ||
| 206 | LCTL_T ( KC_TAB ) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_SLSH , // Sacrificing RCTL, because these are major symbols, which seem to warrant being uncluttered. | ||
| 207 | // RCTL_T ( KC_GRV ) , | ||
| 208 | LSFT_T ( KC_MINS ) , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_T ( KC_GRV ) , // ` and ~ are often on a diminutive key on mini keyboards, therefore not sacrificing this Shift key. | ||
| 209 | // RSFT_T ( KC_TILD ) , | ||
| 210 | // --------------------------------------------------------------------------------------------------------------------------------------------- | ||
| 211 | LALT_T ( KC_LEFT ) | ||
| 212 | |||
| 213 | # ifdef TRANSMINIVAN_LEFTSIDE | ||
| 214 | , XXXXXXX | ||
| 215 | # endif | ||
| 216 | |||
| 217 | # ifdef MORE_KEY__COMMAND | ||
| 218 | , MORE_key1 | ||
| 219 | # endif | ||
| 220 | |||
| 221 | , _______ , _______ , KC_ENT | ||
| 222 | |||
| 223 | # ifdef TRANSMINIVAN_MIDLEFT | ||
| 224 | , TRANS_MIDLEFT | ||
| 225 | # endif | ||
| 226 | |||
| 227 | , KC_DOT , DUO_HOLD , KC__YGUI | ||
| 228 | |||
| 229 | # ifdef TRANSMINIVAN_RIGHTSIDE | ||
| 230 | , XXXXXXX | ||
| 231 | # endif | ||
| 232 | |||
| 233 | # ifdef MORE_KEY__ARROW | ||
| 234 | , MORE_key2 | ||
| 235 | # endif | ||
| 236 | |||
| 237 | , RALT_T ( KC_RGHT ) | ||
| 238 | // , , -*- , <|,> , -*- , , | ||
| 239 | // <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> | ||
| 240 | |||
| 241 | ), | ||
| 242 | |||
| 243 | /* ⬆⬇ */ | ||
