aboutsummaryrefslogtreecommitdiff
path: root/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c')
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c243
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
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along 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 /* ⬆⬇ */