Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		
						commit
						4fcc709f4e
					
				
					 26 changed files with 9357 additions and 0 deletions
				
			
		
							
								
								
									
										201
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,201 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: Qwerty, normal BASE layer and 'default' layer
 | 
			
		||||
     *
 | 
			
		||||
     * - Dual use keys create a delay in the key (tap/hold keys), therefore
 | 
			
		||||
     *   space is not dual use (most ued key), neither is hyphen.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_COLEMAK__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_COLEMAK__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (Letters). This is Colemak, except backspace/tab 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    fF    pP    gG    | jJ    lL    uU    yY    ;:         Bksp
 | 
			
		||||
         Tab+LCtl   aA    rR    sS    tT    dD    | hH    nN    eE    iI    oO           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | kK    mM    ,<    .>    /?    RSht+_FUN 
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd>   , ring>  , pink>   , pink2>        ,
 | 
			
		||||
//      -*!-              ,      ,      ,      ,      ,    <|,>     ,      ,         ,        ,         ,               ,
 | 
			
		||||
        KC_ESC            , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U    , KC_Y   , KC_SCLN , KC_BSPC       ,
 | 
			
		||||
        LCTL_T ( KC_TAB ) , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E    , KC_I   , KC_O    , KC_QUOT       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM , KC_DOT , KC_SLSH , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
                                                     , LT__MOV__KC_ENT
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                      , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols, to work with the Colemak base layer above (unchanged from Qwerty).
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_COLEMAK__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_COLEMAK__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Colemak layer _..._BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with normal version _..._NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        LCTL_T ( KC_TAB )  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , RCTL_T ( KC_GRV )  , 
 | 
			
		||||
        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_TILD ) ,  
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , XXXXXXX
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_DOT , DUO_HOLD , KC__YGUI
 | 
			
		||||
                                                             
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE                               
 | 
			
		||||
                                                                                              , XXXXXXX
 | 
			
		||||
# endif                                                      
 | 
			
		||||
                                                             
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                      
 | 
			
		||||
                                                                                              , MORE_key2  
 | 
			
		||||
# endif                                                      
 | 
			
		||||
                                                             
 | 
			
		||||
                                                                                              , RALT_T ( KC_RGHT )
 | 
			
		||||
//                         ,         , -*-     ,             <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4           |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Colemak
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_COLEMAK__DEF_BASE, BASE_COLEMAK__ALT_BASE`.
 | 
			
		||||
This is a Colemak layout.
 | 
			
		||||
 | 
			
		||||
Control follows Unix logic here (left/center), not Colemak Backspace.
 | 
			
		||||
 | 
			
		||||
Colemak keymaps
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
──────────Colemak──────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…)
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
        ───────────────Colemak────────────────
 | 
			
		||||
     Layer _..._BASE (Letters). This is Colemak, except backspace/tab 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    fF    pP    gG    | jJ    lL    uU    yY    ;:         Bksp
 | 
			
		||||
         Tab+LCtl   aA    rR    sS    tT    dD    | hH    nN    eE    iI    oO           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | kK    mM    ,<    .>    /?    RSht+_FUN 
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) RGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (LGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). (Same as Qwerty numbers layer.)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with Dvorak version _DEF_NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                 u      //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										200
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										200
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,200 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: default BASE layer (Dvorak)
 | 
			
		||||
     *
 | 
			
		||||
     * - Dual use keys create a delay in the key (tap/hold keys), therefore
 | 
			
		||||
     *   space is not dual use (most used key), neither is hyphen.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_DVORAK__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_DVORAK__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (LeTteRs, standard Dvorak)
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL         Bksp
 | 
			
		||||
         Tab+LCtl   aA    oO    eE    uU    iI    | dD    hH    tT    nN    sS           -_
 | 
			
		||||
         LSht+_PAD  ;:    qQ    jJ    kK    xX    | bB    mM    wW    vV    zZ    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
          …                                                                    …
 | 
			
		||||
     
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ³) 'South paw' hardware configuration 
 | 
			
		||||
     ⁴) 'Arrow' hardware configuration 
 | 
			
		||||
     ³ ⁴) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ⁵) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ⁶) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pinky  , <ring   , <middl , <indx, <ind|, indx>, inde>, midd>, ring>, pink>, pink2>        ,
 | 
			
		||||
//      -*!-              ,         ,         ,        ,      ,    <|,>     ,      ,      ,      ,      ,               ,
 | 
			
		||||
        KC_ESC            , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , KC_BSPC       ,
 | 
			
		||||
        LCTL_T ( KC_TAB ) , KC_A    , KC_O    , KC_E   , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_MINS       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_SCLN , KC_Q    , KC_J   , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LT__MOV__KC_ENT 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                      , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols.
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_DVORAK__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_DVORAK__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    /?    \|    =+    | +     |     ?     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            …                                   …
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        LCTL_T ( KC_TAB )  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , RCTL_T ( KC_GRV )  ,
 | 
			
		||||
        LSFT_T ( KC_MINS ) , KC_LBRC , KC_RBRC , KC_SLSH , KC_BSLS , KC_EQL  , KC_PLUS , KC_PIPE , KC_QUES , KC_LCBR , KC_RCBR , RSFT_T ( KC_TILD ) ,
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , TRANS_LEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
                                                        , KC_DOT , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                       , TRANS_RIGHT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                       , MORE_key2  
 | 
			
		||||
# endif                                     
 | 
			
		||||
 | 
			
		||||
                                                                                       , RALT_T ( KC_RIGHT )
 | 
			
		||||
//                         ,         , -*-     ,      <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4    |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,92 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Dvorak
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_DVORAK__DEF_BASE,
 | 
			
		||||
BASE_DVORAK__ALT_BASE`. This is a Dvorak layout.
 | 
			
		||||
 | 
			
		||||
Dvorak keymaps
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
──────────Dvorak───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…) 
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 
 | 
			
		||||
         Layer _..._BASE (LeTteRs, standard Dvorak)
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL         Bksp
 | 
			
		||||
         Tab+LCtl   aA    oO    eE    uU    iI    | dD    hH    tT    nN    sS           -_
 | 
			
		||||
         LSht+_PAD  ;:    qQ    jJ    kK    xX    | bB    mM    wW    vV    zZ    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _DEF_NSY(_DRA)  Enter+_MOV| Space  _DEF_NSY(_DRA) RGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (LGUI)                                                               (_MOV)
 | 
			
		||||
     
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    /?    \|    =+    | +     |     ?     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                        //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
Key associations
 | 
			
		||||
----------------
 | 
			
		||||
Key placement associations between layers for Dvorak.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,242 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         *
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layers _ALT_BASE, _ALT_NSY: Descramble basic layers if the computer itself is
 | 
			
		||||
     *                  applying Dvorak remapping.
 | 
			
		||||
     *
 | 
			
		||||
     *          When a computer is already set to Dvorak, connecting a
 | 
			
		||||
     *          keyboard which is natively Dvorak results in garbage.
 | 
			
		||||
     *          The computer side normal keycodes to Dvorak remapping goes
 | 
			
		||||
     *          on top of the wrong input, resulting in the following being
 | 
			
		||||
     *          effective:
 | 
			
		||||
     *
 | 
			
		||||
     *          _DEF_BASE layer:        |
 | 
			
		||||
     *          Esc  -  w  v  l  f   u  i  j  p  n  Bspc
 | 
			
		||||
     *          Tab  a  r  .  g  c   e  d  y  b  o  [
 | 
			
		||||
     *          Sht  s  '  h  t  q   x  m  ,  k  ;  Sht
 | 
			
		||||
     *                     Enter  Space
 | 
			
		||||
     *          _DEF_NSY layer:        |
 | 
			
		||||
     *          _DEF_BASE !  @  #  $  %   ^  &  *  (  )  Bspc
 | 
			
		||||
     *          [    1  2  3  4  5   \  ]  z  /  =  `
 | 
			
		||||
     *          Sht  0  9  8  7  6   |  }  Z  ?  +  `
 | 
			
		||||
     *                     Enter  Space
 | 
			
		||||
     *
 | 
			
		||||
     *          _ACC layer:        |
 | 
			
		||||
     *          <just semi-random character strings>
 | 
			
		||||
     *
 | 
			
		||||
     *          _DRA, _BON: same as _ACC: garbage.
 | 
			
		||||
     *
 | 
			
		||||
     *          To solve this results in the strange layout given below.
 | 
			
		||||
     *          The result is close to a Qwerty layout. It will not be ideal
 | 
			
		||||
     *          for Qwerty typers because the symbols are not arranged that
 | 
			
		||||
     *          well.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /* Layer _ALT_BASE: Descrambled _DEF_BASE layer for a computer already set to Dvorak (see above).
 | 
			
		||||
     *           It is a copy of _DEF_BASE, with moved around stuff, and points to _ALT_NSY instead
 | 
			
		||||
     *           of _DEF_NSY, because that too has some descrambled symbols. The rest is the same.
 | 
			
		||||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
// This layout is only foreseen on ‛Alternate’.
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _ALT_BASE (Dvorak descramble mode for letters, end result shown)
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL         Bksp
 | 
			
		||||
         Tab+LCtl   aA    oO    eE    uU    iI    | dD    hH    tT    nN    sS           -_
 | 
			
		||||
         LSht+_PAD  ;:    qQ    jJ    kK    xX    | bB    mM    wW    vV    zZ    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _ALT_NSY(_DRA)  Enter+_MOV| Space  _ALT_NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━━━━━━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     _ALT_BASE input results in the same as _DEF_BASE with computer side Dvorak remapping. Only shown what changes:
 | 
			
		||||
 | 
			
		||||
              '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL                 // row 4, result
 | 
			
		||||
                    oO    eE    uU    iI    | dD    hH    tT    nN    sS   -_            // row 3, result
 | 
			
		||||
              ;:    qQ    jJ    kK    xX    | bB          wW    vV    zZ                 // row 2, result
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
                        _ALT_NSY                           _ALT_NSY                              // row 1, result
 | 
			
		||||
 | 
			
		||||
     (Keys for 'aA', '\|' and 'mM' are the same in Dvorak and Qwerty.)
 | 
			
		||||
 | 
			
		||||
 */
 | 
			
		||||
//                                                   
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, middle> , ring>  , pink>   , pink2>        ,
 | 
			
		||||
//      -*-               ,      ,      ,      ,      ,    <|,>     ,      ,         ,        ,         , -!-           ,
 | 
			
		||||
        KC_ESC            , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I    , KC_O   , KC_P    , KC_BSPC       ,
 | 
			
		||||
        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       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT )
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LT__MOV__KC_ENT 
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                      , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /* Layer _ALT_NSY: Descrambled _DEF_NSY layer for a computer already set to Dvorak (see just above).
 | 
			
		||||
     *
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _ALT_NSY (Dvorak descramble mode for numbers/symbols)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   -_    =+    [{    \|    ]}    | }     |     {     _     +  `~+RSht            // row 2, raw
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _DEF_BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
     _ALT_NSY input results in the same as _DEF_NSY with computer side Dvorak remapping. Only shown what changes:
 | 
			
		||||
 | 
			
		||||
              [{    ]}    /?           =+   |   +         ?     {     }                  // row 2, result
 | 
			
		||||
 */
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring  , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,        ,         ,         ,       <|,>        ,         ,         ,         , -*-     ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT  , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        LCTL_T ( KC_TAB )  , KC_1    , KC_2   , KC_3    , KC_4    , KC_5    , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , RCTL_T ( KC_GRV )  , 
 | 
			
		||||
        LSFT_T ( KC_MINS ) , KC_MINS , KC_EQL , KC_LBRC , KC_BSLS , KC_RBRC , KC_RCBR , KC_PIPE , KC_LCBR , KC_UNDS , KC_PLUS , RSFT_T ( KC_TILD ) ,  
 | 
			
		||||
//      --------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , XXXXXXX
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_DOT , DUO_HOLD , KC__YGUI  
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                              , XXXXXXX
 | 
			
		||||
# endif                                                                                   
 | 
			
		||||
                                                                                          
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                                                   
 | 
			
		||||
                                                                                              , MORE_key2  
 | 
			
		||||
# endif                                                                                   
 | 
			
		||||
                                                                                          
 | 
			
		||||
                                                                                              , RALT_T ( KC_RIGHT )
 | 
			
		||||
//                         ,         , -*-     ,             <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4           |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,135 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Dvorak² 
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_DVORAK_DESCRAMBLE__ALT_BASE`
 | 
			
		||||
which has a special version of Dvorak so that you can type Dvorak on a computer
 | 
			
		||||
*already* set to do Dvorak layout re-mapping.
 | 
			
		||||
 | 
			
		||||
This can be useful on for example a laptop, for which the build-in
 | 
			
		||||
keyboard should to be in Dvorak.
 | 
			
		||||
 | 
			
		||||
Dvorak² keymaps
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
──────────Dvorak───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…) 
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 
 | 
			
		||||
          Layer _ALT_BASE (Dvorak descramble mode for letters)
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
          <pink2    <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>    // Keys by finger
 | 
			
		||||
          -o-                                    <|>                                    ... // -o- BASE access
 | 
			
		||||
          Esc       '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL         Bksp
 | 
			
		||||
          Tab+LCtl  aA    oO    eE    uU    iI    | dD    hH    tT    nN    sS           -_
 | 
			
		||||
          LSht+_PAD ;:    qQ    jJ    kK    xX    | bB    mM    wW    vV    zZ    RSht+_FUN
 | 
			
		||||
              +_MOV⁵                              |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _ALT_NSY(_DRA)  Enter+_MOV| Space  _ALT_NSY(_DRA) RGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━━━━━━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (LGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     This layer input results in the same as normal Dvorak if computer side Dvorak remapping is occuring.
 | 
			
		||||
     Only shown what changes:
 | 
			
		||||
 | 
			
		||||
              '"    ,<    .>    pP    yY    | fF    gG    cC    rR    lL                 // row 4, result
 | 
			
		||||
                    oO    eE    uU    iI    | dD    hH    tT    nN    sS   -_            // row 3, result
 | 
			
		||||
              ;:    qQ    jJ    kK    xX    | bB          wW    vV    zZ                 // row 2, result
 | 
			
		||||
     -------------------------------------------------------------------------------
 | 
			
		||||
                        _ALT_NSY                           _ALT_NSY                              // row 1, result
 | 
			
		||||
 | 
			
		||||
     (Keys for 'aA', '\|' and 'mM' are the same in Dvorak and Qwerty.)
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
    
 | 
			
		||||
     Layer _ALT_NSY (Dvorak descramble mode for numbers-symbols)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   -_    =+    [{    \|    ]}    | }     |     {     _     +  `~+RSht            // row 2, raw
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                        //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
     This layer input results in the same as regular Dvorak _..._NSY layer, if computer side Dvorak remapping
 | 
			
		||||
     is occuring. Only shown what changes:
 | 
			
		||||
 | 
			
		||||
              [{    ]}    /?           =+   |   +         ?     {     }                  // row 2, result
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
Special feature: 'Descramble' mode
 | 
			
		||||
==================================
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
  This is an option to take care of typing normally on a computer already
 | 
			
		||||
  set to Dvorak ('descramble' mode.)  
 | 
			
		||||
 | 
			
		||||
  Activation: go to `_RAR` layer, than touch what is space bar on the BASE layer
 | 
			
		||||
  (the key just right from the middle on the first row). This cycles through the modes.
 | 
			
		||||
 | 
			
		||||
      ⮚ When the left led is white: normal mode.
 | 
			
		||||
      ⮚ Right led white: full descramble mode (Linux descrambled Unicode input).
 | 
			
		||||
      ⮚ Middle led white: half descramble mode, with normal Unicode input system.
 | 
			
		||||
 | 
			
		||||
  With the middle led set to white, you can take advantage of a Unicode
 | 
			
		||||
  input mode that works on your system, if it is the same when the
 | 
			
		||||
  computer is set to Dvorak or not (see `_RAR` layer for Unicode input
 | 
			
		||||
  encoding selection). This more or less means there is one more Unicode
 | 
			
		||||
  encoding option than already standard in QMK: 'descrambled' version for 
 | 
			
		||||
  Linux (Shift-Control-U HEX) encoding, for use on a computer *already* set to
 | 
			
		||||
  Dvorak.
 | 
			
		||||
 | 
			
		||||
  To test it, (in Debian/Linux) go to a terminal in X and type (normal user)
 | 
			
		||||
 | 
			
		||||
        > setxkbmap -layout us -variant dvorak
 | 
			
		||||
 | 
			
		||||
  Undo:
 | 
			
		||||
 | 
			
		||||
        > setxkbmap -layout us
 | 
			
		||||
 | 
			
		||||
  Unicode on Windos operating system may require to install something special.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Key associations
 | 
			
		||||
----------------
 | 
			
		||||
Key placement associations between layers for Dvorak.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
							
								
								
									
										409
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										409
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,409 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// See the user configuration file: ./base_numpad.h
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
// This is moved into ./user_config.h, because global #defines are affected.
 | 
			
		||||
//((#include "./base_numpad.h" // Pull in the user configuration))
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: default BASE layer (Dvorak)
 | 
			
		||||
     *
 | 
			
		||||
     * This thing is different from the usual different letters arrangement.
 | 
			
		||||
     * It is a numbers pad, one for the left hand, and one for the right
 | 
			
		||||
     * hand. Both are as identical as possible. The use case is the same as
 | 
			
		||||
     * a number pad keyboard: single handed numbers input.
 | 
			
		||||
     *
 | 
			
		||||
     * The number 5 is under the middle finger home row, as expected for blind
 | 
			
		||||
     * number pad typing.
 | 
			
		||||
     *
 | 
			
		||||
     * The left/upper key, where normally BASE is located, is now OTHER_BASE.
 | 
			
		||||
     * That switches the board to the ‛Default’ layout, which is effectively the
 | 
			
		||||
     * same way as a return to BASE in the sense of BASE being the letters/layer
 | 
			
		||||
     * switch layer. “Other Base” reached from the normal letters/layer-switching 
 | 
			
		||||
     * BASE layout will then turn the keyboard into these number pads layers.
 | 
			
		||||
     *
 | 
			
		||||
     * A modified Numbers&Symbols layer _NSY is still supplied with this Numbers
 | 
			
		||||
     * Pad layout (as with other Base layers).
 | 
			
		||||
     * 
 | 
			
		||||
     * The standard numbers pad layer _PAD also still exists. That one has the
 | 
			
		||||
     * numbers arranged differently. 
 | 
			
		||||
     *
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// When putting this layer on ‛Default’, it produced undesired side effects:
 | 
			
		||||
// • _RAR and _MOV hold keys on the ‛Alternate’ letters layer, failed to switch back.
 | 
			
		||||
// • Parts of the Numbers Pad keys got activated through transparent layer switch keys on letters layer.
 | 
			
		||||
// Since there is no use for Numpad on ‛Default’ Base anyway, this is simply not supported, which seems to solve the problem.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# ifndef NUMPAD_BASE_SINGLE 
 | 
			
		||||
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (Number pad, square layout)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo Bspc  7     8     9     -     | Bspc  7     8     9    -   Bspc  //!AlterGo: to _DEF_BASE
 | 
			
		||||
     =         *    4     5     6     +     | *     4     5     6    +      =
 | 
			
		||||
     _NSY¹     /    1     2     3     ,     | /     1     2     3    ,   _NSY¹ 
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   xxx     0     .     Ent  | NumL  0     .     Ent
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        …                   |          …²
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (Number pad, with NumLock off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring >pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo Bspc  Home  Up    PgUp  -     | Bspc  Home  Up    PgUp  -   Bspc  //!AlterGo: to _DEF_BASE 
 | 
			
		||||
     =         *    Left  5     Right +     | *     Left  5     Right +      =  // modified 5
 | 
			
		||||
     _NSY¹     /    End   Down  PgDn  ,     | /     End   Down  PgDn  ,   _NSY¹
 | 
			
		||||
     -------------------------------------------------------------------------
 | 
			
		||||
                   xxx     Ins   Del   Ent  | NumL  Ins   Del   Ent
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3>  ± 2>    1>  
 | 
			
		||||
                        …                   |           …² 
 | 
			
		||||
 
 | 
			
		||||
     ₁) Toggle to the accompanying Super-Sub-Script (_NSY) layer.
 | 
			
		||||
     ₂) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2        , <pinky         , <ring   , <middl  , <indx   ,        <ind|, indx>          , inde>   , midd>   , ring>   , pink>       , pink2>      ,
 | 
			
		||||
//      -*!-          ,                ,         ,         ,         ,           <|,>               ,         ,         ,         ,             ,             ,
 | 
			
		||||
        OTHER_BASE_GO , KC_BSPC        , KC_KP_7 , KC_KP_8 , KC_KP_9 , KC_KP_MINUS , KC_BSPC        , KC_KP_7 , KC_KP_8 , KC_KP_9 , KC_KP_MINUS , KC_BSPC     ,
 | 
			
		||||
        KC_KP_EQUAL   , KC_KP_ASTERISK , KC_KP_4 , KC_KP_5 , KC_KP_6 , KC_KP_PLUS  , KC_KP_ASTERISK , KC_KP_4 , KC_KP_5 , KC_KP_6 , KC_KP_PLUS  , KC_KP_EQUAL ,
 | 
			
		||||
        CTO_NUMS      , KC_KP_SLASH    , KC_KP_1 , KC_KP_2 , KC_KP_3 , KC_KP_COMMA , KC_KP_SLASH    , KC_KP_1 , KC_KP_2 , KC_KP_3 , KC_KP_COMMA , CTO_NUMS    ,
 | 
			
		||||
//      -------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        XXXXXXX
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                      , TRANS_LEFT  
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef MORE_KEY__COMMAND
 | 
			
		||||
                      , MORE_key1 // Note anomaly, not MORE_key1_BASE: numpad is treated as a common layer here, because that is ± how it functions.
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                      , KC_KP_0    , KC_KP_DOT , KC_KP_ENTER     
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT 
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_NUMLOCK , KC_KP_0
 | 
			
		||||
// ---⬇
 | 
			
		||||
// Note anomaly: the additional 'arrow' hardware key is shifted one to the
 | 
			
		||||
// left, compared to other Base layouts, and so is TRANS_RIGHT This is to
 | 
			
		||||
// maintain 'window/command' key on the same key between layers.
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                      , TRANS_RIGHT  
 | 
			
		||||
#     endif                                                                              
 | 
			
		||||
                                                                                     
 | 
			
		||||
#     ifdef MORE_KEY__ARROW                                                              
 | 
			
		||||
                                    
 | 
			
		||||
                                                                                    //, MORE_key2   
 | 
			
		||||
                                                                                      , KC__YGUI
 | 
			
		||||
 | 
			
		||||
// Note anomaly: not the usual configurable key (MORE_key2), but GUI. This
 | 
			
		||||
// is because position has shifted already, and this GUI allows all the usual
 | 
			
		||||
// keys on a 100% keyboard to be reached with all modifiers, including GUIs,
 | 
			
		||||
// if 'command' hardware key is included. Unfortunately this causes a gap
 | 
			
		||||
// in the numpad layout, but pressing GUI by itself in error will unlikely
 | 
			
		||||
// produce serious mistakes.  Maintaining similar keys between layers seems
 | 
			
		||||
// more important. Since Numpad already is a navigation cluster, it seems
 | 
			
		||||
// more important to allow all keys to be reachable with all modifiers,
 | 
			
		||||
// including GUIs, than to have a quick switch over to the _MOV layer here.
 | 
			
		||||
// Obviously it is fair enough to do this differently, but if someone needs a
 | 
			
		||||
// Numpad + either GUI key combination, that could be a real problem without
 | 
			
		||||
// GUIs here, whereas adding a _MOV switch is a matter of convenience. It
 | 
			
		||||
// seems important to be able to type anything a regular 100% keyboard can,
 | 
			
		||||
// or as near to it as possible.
 | 
			
		||||
//
 | 
			
		||||
// These anomalies are the same for all the Numpad layers here.
 | 
			
		||||
                                                                                  
 | 
			
		||||
#     endif                                                                              
 | 
			
		||||
// ---⬆
 | 
			
		||||
                                                                                      , KC_KP_DOT 
 | 
			
		||||
                                                                                     
 | 
			
		||||
                                                                                                 , KC_KP_ENTER
 | 
			
		||||
//                    ,            ,           ,             <|,>           ,         ,          ,
 | 
			
		||||
//      <1      ±  ±  , <2         , <3        , <4           |, 4>         , 3> ± ±  , 2>       ,      1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _ALT_NSY: super-/sub-script numbers numpad, square layout
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (super-/sub-script numbers, Numlock on/off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     BASE     Bspc  ⁷₇    ⁸₈    ⁹₉    -     | Bspc  ⁷₇    ⁸₈    ⁹₉   -   Bspc
 | 
			
		||||
     =         *    ⁴₄    ⁵₅    ⁶₆    +     | *     ⁴₄    ⁵₅    ⁶₆   +      =
 | 
			
		||||
     LSht      /    ¹₁    ²₂    ³₃    ,     | /     ¹₁    ²₂    ³₃   ,   RSht
 | 
			
		||||
     -*-                                   <|>                            -*- //(toggle) Access on Base
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   xxx    ⁰₀     .DEL  Ent  | xxx   ⁰₀    .DEL  Ent  
 | 
			
		||||
                                           <|>      
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3>  ± 2>    1>  
 | 
			
		||||
                        …                   |           …¹  
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
//High/low numbers guide:
 | 
			
		||||
//¹₁         ²₂         ³₃         ⁴₄         ⁵₅       | ⁶₆         ⁷₇         ⁸₈         ⁹₉         ⁰₀       
 | 
			
		||||
//XP_DRA_BA  XP_DRA_BB  XP_DRA_BC  XP_DRA_BD  XP_DRA_BE  XP_DRA_BF  XP_DRA_BG  XP_DRA_BH  XP_DRA_BI  XP_DRA_BJ
 | 
			
		||||
//
 | 
			
		||||
//      <pink2      , <pinky         , <ring     , <middl    , <indx     ,        <ind|, indx>          , inde>     , midd>     , ring>     , pink>       , pink2>      ,
 | 
			
		||||
//      -*!-        ,                ,           ,           ,           ,           <|,>               ,           ,           ,           ,             ,             ,
 | 
			
		||||
        CTO_BASE    , KC_BSPC        , XP_DRA_BG , XP_DRA_BH , XP_DRA_BI , KC_KP_MINUS , KC_BSPC        , XP_DRA_BG , XP_DRA_BH , XP_DRA_BI , KC_KP_MINUS , KC_BSPC     ,
 | 
			
		||||
        KC_KP_EQUAL , KC_KP_ASTERISK , XP_DRA_BD , XP_DRA_BE , XP_DRA_BF , KC_KP_PLUS  , KC_KP_ASTERISK , XP_DRA_BD , XP_DRA_BE , XP_DRA_BF , KC_KP_PLUS  , KC_KP_EQUAL ,
 | 
			
		||||
        KC_LSFT     , KC_KP_SLASH    , XP_DRA_BA , XP_DRA_BB , XP_DRA_BC , KC_KP_COMMA , KC_KP_SLASH    , XP_DRA_BA , XP_DRA_BB , XP_DRA_BC , KC_KP_COMMA , KC_RSFT     ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        XXXXXXX   
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                    , TRANS_LEFT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef MORE_KEY__COMMAND
 | 
			
		||||
                    , MORE_key1
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                    , XP_DRA_BJ , KC_KP_DOT , KC_KP_ENTER 
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                          , TRANS_MIDLEFT  
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                          , XXXXXXX       , XP_DRA_BJ 
 | 
			
		||||
 | 
			
		||||
// See comment on the first layout in this file (double handed Base layer), about the next few keys:
 | 
			
		||||
// ---⬇
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                      , TRANS_RIGHT
 | 
			
		||||
#     endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
#     ifdef MORE_KEY__ARROW                                                                       
 | 
			
		||||
                                                                                    //, MORE_key2   
 | 
			
		||||
                                                                                      , KC__YGUI
 | 
			
		||||
#     endif                                                                                                   
 | 
			
		||||
// ---⬆
 | 
			
		||||
                                                                                      , KC_KP_DOT   
 | 
			
		||||
                                                                                                          
 | 
			
		||||
                                                                                                  , KC_KP_ENTER
 | 
			
		||||
//                  ,           ,           ,           <|,>              ,           ,           ,
 | 
			
		||||
//      <1    ±  ±  , <2        , <3        , <4         |, 4>            , 3>  ±  ±  , 2>        ,       1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
# else // NUMPAD_BASE_SINGLE is defined ====================================================================
 | 
			
		||||
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     
 | 
			
		||||
     * Layer Numbers Pad on Base:
 | 
			
		||||
     *        « See also documentation in keymap.c at _PAD layer, of which this is almost entirely a copy »
 | 
			
		||||
     *        One difference is the key to go to the _ALT_NSY layer (denoted “NUMS:” just below).
 | 
			
		||||
     *        The other difference is the key to switch to default Base and also immediately goes there
 | 
			
		||||
     *        (denoted “!AlterGo” here).
 | 
			
		||||
     
 | 
			
		||||
     Layer _ALT_BASE (Number pad, with NumLock on)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo NUMS: xxx   xxx   xxx   xxx   | =     7     8     9    -   Bspc  // NUMS: to ¹/₁
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     4     5     6    +   RCtl
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     1     2     3    ,   RSht  
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | NumL  0     .     RAlt      
 | 
			
		||||
                                           <|>           
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        …                   |          …¹
 | 
			
		||||
 | 
			
		||||
     Layer _ALT_BASE (Number pad, with NumLock off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring >pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo NUMS: xxx   xxx   xxx   xxx   | =     Home  Up    PgUp  -   Bspc  // NUMS: to ¹/₁
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     Left  5     Right +   RCtl  // modified 5
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     End   Down  PgDn  ,   RSht  
 | 
			
		||||
     -------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | NumL  Ins   Del   RAlt      
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        …                   |          …¹
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
//High/low numbers guide:
 | 
			
		||||
//¹₁         ²₂         ³₃         ⁴₄         ⁵₅       | ⁶₆         ⁷₇         ⁸₈         ⁹₉         ⁰₀       
 | 
			
		||||
//XP_DRA_BA  XP_DRA_BB  XP_DRA_BC  XP_DRA_BD  XP_DRA_BE  XP_DRA_BF  XP_DRA_BG  XP_DRA_BH  XP_DRA_BI  XP_DRA_BJ
 | 
			
		||||
//
 | 
			
		||||
//      <pink2        , <pinky   , <ring   , <middl  , <index  , <indx2 |, indx2>         , index>  , middl>  , ring>   , pinky>      , pink2>  ,
 | 
			
		||||
//                    ,          ,         ,         ,         , -*-   <|,>               ,         ,         ,         ,             ,         ,
 | 
			
		||||
        OTHER_BASE_GO , CTO_NUMS , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_EQUAL    , KC_KP_7 , KC_KP_8 , KC_KP_9 , KC_KP_MINUS , KC_BSPC ,
 | 
			
		||||
        KC_LCTL       , XXXXXXX  , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_ASTERISK , KC_KP_4 , KC_KP_5 , KC_KP_6 , KC_KP_PLUS  , KC_RCTL ,
 | 
			
		||||
        KC_LSFT       , XXXXXXX  , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_SLASH    , KC_KP_1 , KC_KP_2 , KC_KP_3 , KC_KP_COMMA , KC_RSFT ,
 | 
			
		||||
//      ------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        KC_LALT 
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                , TRANS_LEFT  
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef MORE_KEY__COMMAND
 | 
			
		||||
                , MORE_key1
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                , KC_DEL     , KC_TAB , KC_KP_ENTER
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                    , TRANS_MIDLEFT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                    , KC_NUMLOCK , KC_KP_0 
 | 
			
		||||
 | 
			
		||||
// See comment on the first layout in this file (double handed Base layer), about the next few keys:
 | 
			
		||||
// ---⬇
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                           , TRANS_RIGHT   
 | 
			
		||||
#     endif                                                                                     
 | 
			
		||||
                                                                                            
 | 
			
		||||
#     ifdef MORE_KEY__ARROW                                                                     
 | 
			
		||||
                                                                         //, MORE_key2   
 | 
			
		||||
                                                                           , KC__YGUI
 | 
			
		||||
#     endif                                                                                                 
 | 
			
		||||
// ---⬆
 | 
			
		||||
                                                                           , KC_KP_DOT  
 | 
			
		||||
 | 
			
		||||
                                                                                         , KC_RALT
 | 
			
		||||
//              ,            ,        ,           <|,>           ,         ,             ,
 | 
			
		||||
//   <1  ± ±    , <2         , <3     , <4         |, 4>         , 3> ± ±  , 2>          ,       1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     
 | 
			
		||||
     * Layer Numbers Pad on Base:
 | 
			
		||||
     *        This layer is the same as the above, except the numbers are in super-/sub-script.
 | 
			
		||||
     *
 | 
			
		||||
     
 | 
			
		||||
     Layer _ALT_NSY (Number pad, with NumLock on/off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     BASE     xxx   xxx   xxx   xxx   xxx   | =     ⁷₇    ⁸₈    ⁹₉   -   Bspc
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     ⁴₄    ⁵₅    ⁶₆   +   RCtl
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     ¹₁    ²₂    ³₃   ,   RSht  
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | xxx   ⁰₀    .DEL  RAlt      
 | 
			
		||||
                                           <|>           
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        …                   |          …¹                 
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
//High/low numbers guide:
 | 
			
		||||
//¹₁         ²₂         ³₃         ⁴₄         ⁵₅       | ⁶₆         ⁷₇         ⁸₈         ⁹₉         ⁰₀       
 | 
			
		||||
//XP_DRA_BA  XP_DRA_BB  XP_DRA_BC  XP_DRA_BD  XP_DRA_BE  XP_DRA_BF  XP_DRA_BG  XP_DRA_BH  XP_DRA_BI  XP_DRA_BJ
 | 
			
		||||
//
 | 
			
		||||
//      <pink2   , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>         , index>    , middl>    , ring>     , pinky>      , pink2>  ,
 | 
			
		||||
//               ,         ,         ,         ,         , -*-   <|,>               ,           ,           ,           ,             ,         ,
 | 
			
		||||
        CTO_BASE , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_EQUAL    , XP_DRA_BG , XP_DRA_BH , XP_DRA_BI , KC_KP_MINUS , KC_BSPC ,
 | 
			
		||||
        KC_LCTL  , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_ASTERISK , XP_DRA_BD , XP_DRA_BE , XP_DRA_BF , KC_KP_PLUS  , KC_RCTL ,
 | 
			
		||||
        KC_LSFT  , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_KP_SLASH    , XP_DRA_BA , XP_DRA_BB , XP_DRA_BC , KC_KP_COMMA , KC_RSFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        KC_LALT 
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                 , TRANS_LEFT   
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef MORE_KEY__COMMAND
 | 
			
		||||
                 , MORE_key1
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                 , KC_DEL     , KC_TAB , KC_KP_ENTER
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                       , TRANS_MIDLEFT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
                                                       , XXXXXXX , XP_DRA_BJ
 | 
			
		||||
 | 
			
		||||
// See comment on the first layout in this file (double handed Base layer), about the next few keys:
 | 
			
		||||
// ---⬇
 | 
			
		||||
 | 
			
		||||
#     ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                             , TRANS_RIGHT
 | 
			
		||||
#     endif                                                                              
 | 
			
		||||
                                                                                     
 | 
			
		||||
#     ifdef MORE_KEY__ARROW                                                              
 | 
			
		||||
                                                                           //, MORE_key2   
 | 
			
		||||
                                                                             , KC__YGUI
 | 
			
		||||
#     endif                                                                                          
 | 
			
		||||
// ---⬆
 | 
			
		||||
                                                                                         , KC_KP_DOT    
 | 
			
		||||
 | 
			
		||||
                                                                                         , KC_RALT
 | 
			
		||||
//               ,            ,        ,             <|,>        ,           ,           ,
 | 
			
		||||
//      <1  ± ±  , <2         , <3     , <4           |, 4>      , 3>  ± ±   , 2>        ,       1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
# endif // NUMPAD_BASE_SINGLE 
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,94 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                      ➡ Number pad Configuration ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * This concerns this Base layer in the shape of a numerical key pad, not the numerical
 | 
			
		||||
         * key pad layer which is part of the common layer system, which is defined and configured
 | 
			
		||||
         * elsewhere (see ./user_config.h).
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ the below to have a single keypad definition on this layer, for the right
 | 
			
		||||
         * hand. Modifiers are also defined.
 | 
			
		||||
         * _Remove_ the below to have two keypad definitions on this Base layer, one for each hand.
 | 
			
		||||
         *
 | 
			
		||||
         * In both cases, you can reach the accompanying number pad layer with the super-/sub-script
 | 
			
		||||
         * numbers. For either option, there is a matching * super-/sub-script layer, which is
 | 
			
		||||
         * automatically compiled with it.
 | 
			
		||||
         */
 | 
			
		||||
  #define NUMPAD_BASE_SINGLE // _Activate_ to resemble a one handed numerical keyboard, for right hand.
 | 
			
		||||
                             // _Remove_ to have two numerical key pads, side by side, one for each hand.
 | 
			
		||||
                             //
 | 
			
		||||
        /* Tip: When in doubt it might be best to choose the single handed layer, because it
 | 
			
		||||
         * resembles a regular keyboard more, and has modifier combinations.
 | 
			
		||||
         */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                      ➡ Removing the numbers pad _PAD layer ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * You may have no use for this common layer, if you have a numerical
 | 
			
		||||
         * keypad on the Alternate Base already.
 | 
			
		||||
         *
 | 
			
		||||
         * While _PAD layer gives quick uncluttered access to Control, Shift and Alt
 | 
			
		||||
         * to modify your pointer device input, the _MOV layer does the same. You
 | 
			
		||||
         * end up with the same functionality, with or without _PAD, in this matter.
 | 
			
		||||
         *
 | 
			
		||||
         * This does precisely the same as REMOVE_PAD in ./user_config.h, but this
 | 
			
		||||
         * setting here overrides any setting in ./user_config.h
 | 
			
		||||
         */
 | 
			
		||||
//#define REMOVES_PAD // _Activate_ to strip out the _PAD layer, _remove_ to have the _PAD layer.
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// The below sets some things up based on the above #defines.
 | 
			
		||||
 | 
			
		||||
// Stripping out _PAD layer, sets the #define used global configuration file ./user_config.h
 | 
			
		||||
# ifdef REMOVES_PAD         // this file
 | 
			
		||||
#     ifndef REMOVE_PAD     // user_config.h
 | 
			
		||||
#         define REMOVE_PAD  // removes _PAD layer
 | 
			
		||||
#     endif
 | 
			
		||||
# endif
 | 
			
		||||
// Inserting the _PAD layer, even if stripped in ./user_config.h
 | 
			
		||||
# ifndef REMOVES_PAD         // this file
 | 
			
		||||
#     ifdef REMOVE_PAD       // user_config.h
 | 
			
		||||
#         undef REMOVE_PAD   // activtaes _PAD layer
 | 
			
		||||
#     endif
 | 
			
		||||
# endif
 | 
			
		||||
							
								
								
									
										364
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										364
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,364 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compile options
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
In  this base layout is configured.
 | 
			
		||||
 | 
			
		||||
• Single numpad.
 | 
			
		||||
 | 
			
		||||
This number pad choice only has a number pad for the right hand. The
 | 
			
		||||
usual modifiers are in their expected places.
 | 
			
		||||
 | 
			
		||||
The single numbers pad variation is also a compile option for the _common
 | 
			
		||||
layer_ `_PAD`, albeit without a super/subscript auxilery layer.
 | 
			
		||||
 | 
			
		||||
• Dual numpad.
 | 
			
		||||
 | 
			
		||||
This numbers pad choice has a number pad for each hand. There are two 
 | 
			
		||||
number pads together on the keyboard at once.
 | 
			
		||||
 | 
			
		||||
Numpad keymaps
 | 
			
		||||
==============
 | 
			
		||||
 | 
			
		||||
Single numpad
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
──────────Numpad───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
The otherwise ‛common’ layers are not directly available in this special layout.
 | 
			
		||||
You can still reach them as normal through your other Base layer.
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
 | 
			
		||||
     Layer _ALT_BASE (Number pad, with NumLock on)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo NUMS: xxx   xxx   xxx   xxx   | =     7     8     9    -   Bspc  // NUMS: to ¹/₁
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     4     5     6    +   RCtl
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     1     2     3    ,   RSht  
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | NumL  0     .     RAlt      
 | 
			
		||||
                                           <|>           
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                      LGUI                  |        RGUI¹
 | 
			
		||||
 | 
			
		||||
     Layer _ALT_BASE (Number pad, with NumLock off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring >pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo NUMS: xxx   xxx   xxx   xxx   | =     Home  Up    PgUp  -   Bspc  // NUMS: to ¹/₁
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     Left  5     Right +   RCtl  // modified 5
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     End   Down  PgDn  ,   RSht  
 | 
			
		||||
     -------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | NumL  Ins   Del   RAlt      
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        ^                   |          ^
 | 
			
		||||
                       LGUI                 |         RGUI¹         
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 
 | 
			
		||||
     Layer _ALT_NSY (Number pad, with NumLock on/off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     BASE     xxx   xxx   xxx   xxx   xxx   | =     ⁷₇    ⁸₈    ⁹₉   -   Bspc
 | 
			
		||||
     LCtl     xxx   xxx   xxx   xxx   xxx   | *     ⁴₄    ⁵₅    ⁶₆   +   RCtl
 | 
			
		||||
     LSht     xxx   xxx   xxx   xxx   xxx   | /     ¹₁    ²₂    ³₃   ,   RSht  
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   LAlt   Del    Tab   Ent  | xxx   ⁰₀    .DEL  RAlt      
 | 
			
		||||
                                           <|>           
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        ^                   |          ^
 | 
			
		||||
                       LGUI                 |         RGUI¹
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
Dual numpad
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
──────────Numpad───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
The otherwise ‛common’ layers are not directly available in this special layout.
 | 
			
		||||
You can still reach them as normal through your other Base layer.
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
 | 
			
		||||
        ───────────────Numpad────────────────
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (Number pad, square layout)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo Bspc  7     8     9     -     | Bspc  7     8     9    -   Bspc  //!AlterGo: to _DEF_BASE
 | 
			
		||||
     =         *    4     5     6     +     | *     4     5     6    +      =
 | 
			
		||||
     _NSY¹     /    1     2     3     ,     | /     1     2     3    ,   _NSY¹ 
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   xxx     0     .     Ent  | NumL  0     .     Ent
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3> ±  2>    1>  
 | 
			
		||||
                        ^                   |          ^
 | 
			
		||||
                       LGUI                 |         RGUI²
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (Number pad, with NumLock off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring >pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     !AlterGo Bspc  Home  Up    PgUp  -     | Bspc  Home  Up    PgUp  -   Bspc  //!AlterGo: to _DEF_BASE 
 | 
			
		||||
     =         *    Left  5     Right +     | *     Left  5     Right +      =  // modified 5
 | 
			
		||||
     _NSY¹     /    End   Down  PgDn  ,     | /     End   Down  PgDn  ,   _NSY¹
 | 
			
		||||
     -------------------------------------------------------------------------
 | 
			
		||||
                   xxx     Ins   Del   Ent  | NumL  Ins   Del   Ent
 | 
			
		||||
                                           <|>
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3>  ± 2>    1>  
 | 
			
		||||
                        ^                   |           ^
 | 
			
		||||
                       LGUI                 |          RGUI²
 | 
			
		||||
 
 | 
			
		||||
     ₁) Toggle to the accompanying Super-Sub-Script (_NSY) layer.
 | 
			
		||||
     ₂) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (super-/sub-script numbers, Numlock on/off)
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
                                           <|>
 | 
			
		||||
     BASE     Bspc  ⁷₇    ⁸₈    ⁹₉    -     | Bspc  ⁷₇    ⁸₈    ⁹₉   -   Bspc
 | 
			
		||||
     =         *    ⁴₄    ⁵₅    ⁶₆    +     | *     ⁴₄    ⁵₅    ⁶₆   +      =
 | 
			
		||||
     LSht      /    ¹₁    ²₂    ³₃    ,     | /     ¹₁    ²₂    ³₃   ,   RSht
 | 
			
		||||
     -*-                                   <|>                            -*- //(toggle) Access on Base
 | 
			
		||||
     ------------------------------------------------------------------------
 | 
			
		||||
                   xxx    ⁰₀     .DEL  Ent  | xxx   ⁰₀    .DEL  Ent  
 | 
			
		||||
                                           <|>      
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>    3>  ± 2>    1>  
 | 
			
		||||
                        ^                   |           ^
 | 
			
		||||
                       LGUI                 |          RGUI¹
 | 
			
		||||
 | 
			
		||||
     ₁) Note anomaly: additional hardware key ‛arrow’ shifted one to the left.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Special Base layer Numpad
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
This is a layout resembling a “numbers pad”. A “numbers pad”
 | 
			
		||||
is a separate square on a 100% sized keyboard, or separate keypad.
 | 
			
		||||
 | 
			
		||||
Unlike more usual base layers choices, which typically contain a letters
 | 
			
		||||
layout and access to all the common layers, this ‛Base’ layer is
 | 
			
		||||
quite different. Once you have switched to it, you lack keys to access
 | 
			
		||||
all ‛common’ layers. 
 | 
			
		||||
 | 
			
		||||
You can only switch back to your ‛regular’ base layer, or switch to a
 | 
			
		||||
second form of the numbers pad. This second layer is called “auxilery”
 | 
			
		||||
layer here, but technically it is the same thing as the numbers/symbols
 | 
			
		||||
`_NSY` layer, which accompanies a letters layer like Qwerty or Dvorak.
 | 
			
		||||
 | 
			
		||||
Use the top left key from the numbers pad layer, to switch back to the
 | 
			
		||||
other ‛Base’ layer. This is also unique to this special ‛Base’ layer,
 | 
			
		||||
but similar to the way the “common layers” switch back to Base.
 | 
			
		||||
 | 
			
		||||
The other Base layer (once you are in this Number Pad layer) for most
 | 
			
		||||
people will be a letters layer with Qwerty, Dvorak or some other layout
 | 
			
		||||
on it, in which the keyboard will start up.  To reach the numbers pad
 | 
			
		||||
Base layer, use the key ‛Other Base’ on the `_RAR` layer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Led colors
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
The led colors for this ‛Base’ layer are different from the usual. They show
 | 
			
		||||
the state of the Numbers Lock, on or off. Colors are green/light-blue/blue to
 | 
			
		||||
indicate Numbers Lock is off, which means the navigation cluster is active.
 | 
			
		||||
Colors are blue/light-blue/green to indicate the Numbers Lock is on,
 | 
			
		||||
meaning you can type numbers. 
 | 
			
		||||
 | 
			
		||||
This follows the same scheme as the `_PAD` layer, which in turn follows
 | 
			
		||||
the logic of the `_NSY` (numbers/symbols) layer being blue, and the `_MOV`
 | 
			
		||||
(movement/navigation) layer being green, in such a way that the left most
 | 
			
		||||
led is the indicator thereof, following reading direction left to right. The
 | 
			
		||||
brightness of the leds is diminished, to indicate the difference with `_PAD` 
 | 
			
		||||
layer (whether or not that layer is compiled).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Auxilery numpad layer
 | 
			
		||||
---------------------
 | 
			
		||||
 | 
			
		||||
With the numbers pad layer comes a second layer, as is normal for
 | 
			
		||||
all Base layer choices. This second layer is the same as the normal
 | 
			
		||||
numbers pad, except the numbers are in super- ⁽¹²³⁾ or sub-script
 | 
			
		||||
₍₁₂₃₎. 
 | 
			
		||||
 | 
			
		||||
The numbers on the second layer become subscript when Shift is pressed,
 | 
			
		||||
otherwise they are in super-script. These super-/sub-script forms of the
 | 
			
		||||
numbers Unicode (see the `_RAR` layer).
 | 
			
		||||
 | 
			
		||||
This second form of numbers pad is reached from keys on the numbers pad
 | 
			
		||||
Base layer. You can switch back to the regular numbers pad, with the
 | 
			
		||||
upper/left key.  Another key stroke from there on the upper/left key,
 | 
			
		||||
will bring you back to what is likely your regular typing layer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Auxilery numpad layer led colors
 | 
			
		||||
--------------------------------
 | 
			
		||||
 | 
			
		||||
For the second layer that comes with it, with super-/sub-script numbers,
 | 
			
		||||
the led colors are what they “normally” are (for other compile
 | 
			
		||||
choices) for this layer (the ‛Alternate‛ Base accompanying layer,
 | 
			
		||||
usually numbers/symbols): blue/blue/light-blue.  There is no indication
 | 
			
		||||
of Numbers Lock on this layer, although a few keys are altered by Numbers
 | 
			
		||||
Lock (Dot/Delete ‛.’, and Enter).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
‛Arrow’ additional hardware key
 | 
			
		||||
===============================
 | 
			
		||||
 | 
			
		||||
Unlike with other layers: the optional ‛arrow’ hardware key on the
 | 
			
		||||
right hand is not inserted between the last and second last keys on the
 | 
			
		||||
right, and neither is it set to the configurable default value (toggle
 | 
			
		||||
`_MOV` layer). Instead, this key is inserted one key over to the left,
 | 
			
		||||
and it is set to GUI.
 | 
			
		||||
 | 
			
		||||
The reason is that this GUI will line up with the GUI on the ‛Base’
 | 
			
		||||
layer. If combined with the ‛command’ hardware key on the right, set
 | 
			
		||||
to the other GUI, you can reach all Numbers Pad keys with all modifiers,
 | 
			
		||||
including both GUIs.
 | 
			
		||||
 | 
			
		||||
Another reason is that a typical use of the additional hardware
 | 
			
		||||
key on the right (called ‛Arrow’) will by default lead to a navigation
 | 
			
		||||
layer, however the Numbers Pad already has its own navigation. To add
 | 
			
		||||
a toggle to `_MOV` would be a matter of convenience, whereas not being
 | 
			
		||||
able to reach all Numbers Pad keys with either GUI could represent a
 | 
			
		||||
serious problem.
 | 
			
		||||
 | 
			
		||||
Downsides to this design are the loss of default ‛Arrow’ hardware key
 | 
			
		||||
use on this layer, and a sort of gap of one key in the Numbers Pad layout.
 | 
			
		||||
The downsides seem to be matters of style and convenience, whereas not 
 | 
			
		||||
being able to type whatever you can on a 100% keyboard could be a serious
 | 
			
		||||
problem for someone (keyboard shortcuts mainly).
 | 
			
		||||
 | 
			
		||||
There is no default solution to type everything with all modifiers
 | 
			
		||||
including the GUIs, without adding the additional hardware key(s).
 | 
			
		||||
Obviously it is possible to just stick a GUI on a free spot, but that 
 | 
			
		||||
makes things chaotic. Single pad Numbers Pad could be re-arranged to
 | 
			
		||||
make room for GUI, which would loose more of its similarity to other 
 | 
			
		||||
keyboards.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Numbers pads everywhere ?
 | 
			
		||||
=========================
 | 
			
		||||
 | 
			
		||||
Perhaps the amount of options for a numberical keypad are a bit overkill.
 | 
			
		||||
It had to do with how it developed.
 | 
			
		||||
 | 
			
		||||
For some overview of your options:
 | 
			
		||||
 | 
			
		||||
     ①  Common layer numerical keypad. Just another layer, like `_RAR`, `_BON`, etc.
 | 
			
		||||
 | 
			
		||||
       1. You can have a numerical keypad in the _common layers._
 | 
			
		||||
       2. You can also remove this layer entirely.
 | 
			
		||||
 | 
			
		||||
       3. This “common layers” numbers pad is activated through the Base layer, on Left Shift tap.
 | 
			
		||||
       4. Returns to ‛Default Base’ with upper/left key.
 | 
			
		||||
 | 
			
		||||
       5. Variation of form: right hand square form, resembling a key pad on
 | 
			
		||||
                             other keyboards.
 | 
			
		||||
       6. Variation of form: the numbers in a straight line, resembling the 
 | 
			
		||||
                            `_NSY` layer and other layers.
 | 
			
		||||
 | 
			
		||||
     ② A numerical keypad on the other ‛Base’ layer, in the dual layout system.
 | 
			
		||||
 | 
			
		||||
       1. You can have a numerical keypad on the ‛Alternate Base’ position.
 | 
			
		||||
       2. You can also put something different on ‛Alternate Base’, such as a
 | 
			
		||||
          Colemak layout.
 | 
			
		||||
 | 
			
		||||
       3. This layer is activated through the `_RAR` layer, by choosing ‛Other
 | 
			
		||||
          Base’. 
 | 
			
		||||
       4. Returns to ‛Default Base’ with upper/left key, effectively the same as with
 | 
			
		||||
          the common numerical keypad layer, and all other common layers.
 | 
			
		||||
    
 | 
			
		||||
       5. Variation of form: right hand square form, resembling a key pad on
 | 
			
		||||
                             other keyboards.
 | 
			
		||||
       6. Variation of form: dual handed square form, so you have a key pad for
 | 
			
		||||
                             each hand.
 | 
			
		||||
 | 
			
		||||
       7. For all variation of form, there is an accompanying layer which is
 | 
			
		||||
          the same, except the numbers are in Unicode super (unshifted) and
 | 
			
		||||
          sub-script (shifted).
 | 
			
		||||
 | 
			
		||||
Some examples:
 | 
			
		||||
 | 
			
		||||
①  As close to a 100% ‛regular’ keyboard as possible.
 | 
			
		||||
 | 
			
		||||
  If you have no use for ‛Alternate Base’ with anything else, you could put
 | 
			
		||||
  the single handed numerical keypad there, and remove the common `_PAD` layer
 | 
			
		||||
  to have less mental clutter.
 | 
			
		||||
 | 
			
		||||
  This makes accessing `_MOV` on Left Shift easier, you have modifiers with 
 | 
			
		||||
  the numerical keypad, and you have super/sub-script as well (although its use
 | 
			
		||||
  is probably rather rare).
 | 
			
		||||
 | 
			
		||||
②  The predictable numbers typing option.
 | 
			
		||||
 | 
			
		||||
  If you want ‛Alternate Base’ to have something else (or nothing
 | 
			
		||||
  at all), keep the `_PAD` layer, and choose straight line numbers,
 | 
			
		||||
  so that you don't have to learn a second way to type numbers, if you
 | 
			
		||||
  ever have a need to type keypad numbers (which could be quite rare).
 | 
			
		||||
 | 
			
		||||
  In this version, you are not envisioning the use of keypad navigation,
 | 
			
		||||
  but rather use regular `_MOV` layer navigation. (This was the original
 | 
			
		||||
  programming on the keyboard, before more options developed; it follows
 | 
			
		||||
  the overall logic that the same or similar keys are in the same or
 | 
			
		||||
  similar positions.)
 | 
			
		||||
 | 
			
		||||
③  The everything option.
 | 
			
		||||
 | 
			
		||||
  You could keep both `_PAD` with straight lined up numbers if you like typing
 | 
			
		||||
  all numbers the same way, and also compile numpad single square on ‛Alternate
 | 
			
		||||
  Base’ to have good access to a regular numerical keypad, should you ever need
 | 
			
		||||
  it, and/or to have an easier to access navigation cluster there (easier than
 | 
			
		||||
  navigation on the straight line numpad variation that is, where navigation
 | 
			
		||||
  is difficult). 
 | 
			
		||||
 | 
			
		||||
④  The numerical keyboard specialist.
 | 
			
		||||
 | 
			
		||||
  You could compile it for both hands, if you type so much on a numerical 
 | 
			
		||||
  keypad, that it is useful to be fast on it with either hand. 
 | 
			
		||||
 | 
			
		||||
  It will be harder to type on the double numerical keyboard with modifiers 
 | 
			
		||||
  (Shift, Control, Alt), but if you compile with the common numbers pad layer, 
 | 
			
		||||
  you can reach such combinations there. To keep things similar, you can compile
 | 
			
		||||
  this common numbers pad layer with numbers in square form, rather than a straight
 | 
			
		||||
  line.
 | 
			
		||||
							
								
								
									
										209
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,209 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: Qwerty, normal BASE layer and 'default' layer
 | 
			
		||||
     *
 | 
			
		||||
     * - Dual use keys create a delay in the key (tap/hold keys), therefore
 | 
			
		||||
     *   space is not dual use (most ued key), neither is hyphen.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_QWERTY__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_QWERTY__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (Letters). This is Qwerty 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    eE    rR    tT    | yY    uU    iI    oO    pP         Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    dD    fF    gG    | hH    jJ    kK    lL    ;:           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | nN    mM    ,<    .>    /?    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd>   , ring>  , pink>   , pink2>        ,
 | 
			
		||||
//      -*!-              ,      ,      ,      ,      ,    <|,>     ,      ,         ,        ,         ,               ,
 | 
			
		||||
        KC_ESC            , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I    , KC_O   , KC_P    , KC_BSPC       ,
 | 
			
		||||
        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       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LT__MOV__KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                      , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols, to work with the Qwerty base layer above.
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_QWERTY__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_QWERTY__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Qwerty layer _..._BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with normal version _..._NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        LCTL_T ( KC_TAB )  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_6    , KC_7    , KC_8    , KC_9    , KC_0
 | 
			
		||||
// Harmonizes with ‛Qwerty Base Arrow’, so that if both are compiled, the user isn't
 | 
			
		||||
// messing up this key on this Qwerty layout, which has to be different in the other Qwerty.
 | 
			
		||||
# ifdef QWERTY_BASEARROW_HARMONIZE
 | 
			
		||||
                                                                                                                               , KC_SLSH            , // Same as in ‛Qwerty Base Arrow’
 | 
			
		||||
# else
 | 
			
		||||
                                                                                                                               , RCTL_T ( KC_GRV )  , // Default
 | 
			
		||||
# endif
 | 
			
		||||
        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_TILD ) ,  
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , XXXXXXX
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_DOT , DUO_HOLD , KC__YGUI  
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                              , XXXXXXX
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                                                       
 | 
			
		||||
                                                                                              , MORE_key2  
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
                                                                                              , RALT_T ( KC_RGHT )
 | 
			
		||||
//                         ,         , -*-     ,             <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4           |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
							
								
								
									
										100
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,100 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Qwerty
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_QWERTY__DEF_BASE, BASE_QWERTY__ALT_BASE`.
 | 
			
		||||
This is a Qwerty layout.
 | 
			
		||||
 | 
			
		||||
Qwerty keymaps
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
──────────Qwerty───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…)
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
        ───────────────Qwerty─────────────────
 | 
			
		||||
 | 
			
		||||
         Layer _..._BASE (Letters). This is standard Qwerty 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    eE    rR    tT    | yY    uU    iI    oO    pP         Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    dD    fF    gG    | hH    jJ    kK    lL    ;:           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | nN    mM    ,<    .>    /?    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _DEF_NSY(_DRA)  Enter+_MOV| Space  _DEF_NSY(_DRA) RGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (LGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Qwerty layer _DEF_BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with Dvorak version _DEF_NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                 u      //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
Key associations
 | 
			
		||||
----------------
 | 
			
		||||
Key placement associations between layers for Qwerty.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,243 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: Qwerty with arrows on Base, normal BASE layer and 'default' layer
 | 
			
		||||
     *
 | 
			
		||||
     * - This version of Qwerty puts arrows on Base, and assumes the 'arrow' hardware key.
 | 
			
		||||
     *   When not compiled with 'arrow' hardware key, Base will not contain ‛down arrow’.
 | 
			
		||||
     *
 | 
			
		||||
     *   This does not mean that this is the recommended version of Qwerty in general for
 | 
			
		||||
     *   the 'arrow' hardware key with Qwerty. Regular Qwerty works with the additional
 | 
			
		||||
     *   hardware key 'arrow'. The regular Qwerty compile option just works differently
 | 
			
		||||
     *   than this version with arrows on Base. Regular qwerty has the additional hardware
 | 
			
		||||
     *   key on the right be a toggle to _MOV layer, where you then have arrows in the same 
 | 
			
		||||
     *   area. Notice further that in all cases, you have a hold key to the _MOV layer under
 | 
			
		||||
     *   what is colloqually known as the ‛left space bar’, which leads to convenient arrow
 | 
			
		||||
     *   keys in the home row.
 | 
			
		||||
     *
 | 
			
		||||
     *   Putting directional arrow keys on the Base layer will cost you several keys on 
 | 
			
		||||
     *   the Base layer: hold _RAR, GUI, and ‛/?’. 
 | 
			
		||||
     *   • The ‛/?’ key is displaced to the _NSY layer.
 | 
			
		||||
     *   • The GUI key is lost. You could decide to also use the ‛south paw’/‛command’ 
 | 
			
		||||
     *     hardware key, which is a GUI by default. 
 | 
			
		||||
     *   • Hold key to _RAR layer is lost. You can only reach _RAR layer, using the right
 | 
			
		||||
     *     shift toggle, which is on a short timer.
 | 
			
		||||
     *
 | 
			
		||||
     *   My recommendation would be: see if you can make things work with regular Qwerty 
 | 
			
		||||
     *   if you are a 10 fingers typist, first. Moving your hand to this arrow cluster 
 | 
			
		||||
     *   seems to be a high cost to pay. You will also loose the default location for ‛/?’.
 | 
			
		||||
     *
 | 
			
		||||
     *   For special need situations regarding this right hand row1/2 arrow cluster, a
 | 
			
		||||
     *   tap to _MOV layer on the ‛arrow’ hardware key, should be a reasonable cost to
 | 
			
		||||
     *   pay, if a situation is already important enough to decide to move your hand there.
 | 
			
		||||
     *   For short uses of arrow keys, holding to the _MOV layer is the most efficient.
 | 
			
		||||
     *
 | 
			
		||||
     *   If you are not a 10 finger typist though, holding a key to _MOV layer seems to be
 | 
			
		||||
     *   inconvenient, and thus arrows on Base could be better for you.
 | 
			
		||||
     *
 | 
			
		||||
     *   Hence my conclusion: only compile ‛Qwerty with arrows on Base’ if the regular
 | 
			
		||||
     *   Qwerty isn't working for you.
 | 
			
		||||
     *  
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_QWERTY_BASEARROW__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_QWERTY_BASEARROW__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (Letters). This is Qwerty with arrows on Base
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    eE    rR    tT    | yY    uU    iI    oO    pP         Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    dD    fF    gG    | hH    jJ    kK    lL    ;:           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | nN    mM    ,<    .>    Up    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) Left    Right
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎                      // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (Down)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration. Set to Down Arrow.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd>   , ring>  , pink>   , pink2>        ,
 | 
			
		||||
//      -*!-              ,      ,      ,      ,      ,    <|,>     ,      ,         ,        ,         ,               ,
 | 
			
		||||
        KC_ESC            , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I    , KC_O   , KC_P    , KC_BSPC       ,
 | 
			
		||||
        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       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_UP   , CHOLTAP_RSHFT ,
 | 
			
		||||
                                                                                            //  KC_SLSH
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LT__MOV__KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                           , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , KC_LEFT
 | 
			
		||||
                                                                                                   // , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , KC_DOWN
 | 
			
		||||
                                                                                                   // , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , KC_RIGHT
 | 
			
		||||
                                                                                                   // , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols, to work with the Qwerty base layer above.
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_QWERTY_BASEARROW__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_QWERTY_BASEARROW__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Qwerty layer _..._BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)       /?
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht
 | 
			
		||||
                          ^^                              ^  // Only differences with normal version _..._NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        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. 
 | 
			
		||||
                                                                                                                              // RCTL_T ( KC_GRV )  , 
 | 
			
		||||
        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.
 | 
			
		||||
                                                                                                                              // RSFT_T ( KC_TILD ) , 
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , XXXXXXX
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_DOT , DUO_HOLD , KC__YGUI  
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                              , XXXXXXX
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                                                       
 | 
			
		||||
                                                                                              , MORE_key2  
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
                                                                                              , RALT_T ( KC_RGHT )
 | 
			
		||||
//                         ,         , -*-     ,             <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4           |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2021 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*          • Harmonize regular Qwerty
 | 
			
		||||
         * 
 | 
			
		||||
         * If compiling this ‛Qwerty Base Arrow’ base pair with regular Qwerty on
 | 
			
		||||
         * the other base pair (dual layout), the key ‛/?’ is on a different key
 | 
			
		||||
         * in these two layouts. This is bound to cause typing errors. With this
 | 
			
		||||
         * option you can cause the regular Qwerty to also have a ‛/?’ in the same
 | 
			
		||||
         * spot as ‛Qwerty Base Arrow’ has it, sacrificing Right Control/‛`~’ there.
 | 
			
		||||
         *
 | 
			
		||||
         * Regular Qwerty will still also have a ‛/?’ key in the normal Qwerty location.
 | 
			
		||||
         *
 | 
			
		||||
         * The key ‛`~’ can be reached through other means: just below on numbers &
 | 
			
		||||
         * symbols _NSY layer, or on the bonus Unicode layer _BON (on the far left, home row).
 | 
			
		||||
         * This is so by default, it remains unchanged.
 | 
			
		||||
         */
 | 
			
		||||
  #define QWERTY_BASEARROW_HARMONIZE // _Activate_ to harmonize the ‛/?’ key in the regular Qwerty layout.
 | 
			
		||||
                                     // _Remove_ leave regular Qwerty layout unchanged from default.
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,132 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Qwerty with arrows on Base
 | 
			
		||||
========================================
 | 
			
		||||
 | 
			
		||||
This version of Qwerty puts arrows on Base, and assumes the 'arrow' hardware key.
 | 
			
		||||
 | 
			
		||||
You have to manually set *#define `MORE_KEY__ARROW`* in `./user_config.h`, 
 | 
			
		||||
If not compiled with ‛Arrow’ hardware key, Base will not contain ‛Down arrow’.
 | 
			
		||||
You do not have to worry about what to set the additional hardware key to, on
 | 
			
		||||
the Base layer. This will be set to Down Arrow, to complete that arrow cluster.
 | 
			
		||||
 | 
			
		||||
The option `QWERTY_BASEARROW_HARMONIZE` in `./base_qwerty_basearrow.h` is set
 | 
			
		||||
by default, causing the key ‛/?’ in the _regular_ Qwerty layout to _also_ be
 | 
			
		||||
located in the same spot as in this ‛Qwerty with Arrows on Base’ layout. See
 | 
			
		||||
the header file `./base_qwerty_basearrow.h` for more details.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Is arrows on Base efficient ?
 | 
			
		||||
=============================
 | 
			
		||||
 | 
			
		||||
This variation of Qwerty is not necessarily the recommended version of
 | 
			
		||||
Qwerty for a board with the additional ‛Arrow’ hardware key.
 | 
			
		||||
The regular Qwerty compile option can provide good arrow access. 
 | 
			
		||||
 | 
			
		||||
Putting directional arrow keys on the Base layer will cost you several
 | 
			
		||||
keys on the Base layer: hold to layer `_RAR` (power, media, etc. layer),
 | 
			
		||||
GUI, and ‛/?’.
 | 
			
		||||
 | 
			
		||||
• The ‛/?’ key is displaced to the `_NSY` (numbers & symbols) layer, and is not 
 | 
			
		||||
  in the default spot for a Qwerty layout.
 | 
			
		||||
 | 
			
		||||
• The GUI key is lost. You could decide to also use the ‛south paw’/‛command’ 
 | 
			
		||||
  hardware key, which is a GUI by default. 
 | 
			
		||||
 | 
			
		||||
• Hold key to `_RAR` layer is lost. You can only reach `_RAR` layer using the
 | 
			
		||||
  right shift toggle, which is on a short timer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Have it both ways
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
You could compile regular Qwerty on one of the Base pairs (‛Default’ or 
 | 
			
		||||
‛Alternate’), and Qwerty _with Arrows on Base_ on the other. That way
 | 
			
		||||
you can switch to see what works for you. You could leave it like
 | 
			
		||||
that, and choose what you want depending on what you are doing. 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Qwerty keymaps
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
──────────Qwerty───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…)
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
        ───────────────Qwerty─────────────────
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (Letters). This is Qwerty with arrows on Base
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    wW    eE    rR    tT    | yY    uU    iI    oO    pP         Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    dD    fF    gG    | hH    jJ    kK    lL    ;:           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    cC    vV    bB    | nN    mM    ,<    .>    Up    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) Left    Right
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎                      // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (Down)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration. Set to Down Arrow.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The key with ';' (Del;`_ACC`) does not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Qwerty layer _..._BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)       /?
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht
 | 
			
		||||
                          ^^                              ^  // Only differences with normal version _..._NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
							
								
								
									
										203
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,203 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2021 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: Workman, normal BASE layer and 'default' layer
 | 
			
		||||
     *
 | 
			
		||||
     * - Dual use keys create a delay in the key (tap/hold keys), therefore
 | 
			
		||||
     *   space is not dual use (most ued key), neither is hyphen.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_WORKMAN__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_WORKMAN__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (Letters). This is Workman 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    dD·   rR·   wW·   bB·   | jJ·   fF·   uU·   pP·   :;·        Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    hH·   tT·   gG    | yY·   nN·   eE·   oO·   iI·          '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    mM·   cC·   vV·   | kK·   lL·   ,<    .>    /?    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
     ₇) Letters marked by ‛·’ are different from Qwerty.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd>   , ring>  , pink>   , pink2>        ,
 | 
			
		||||
//      -*!-              ,      ,      ,      ,      ,    <|,>     ,      ,         ,        ,         ,               ,
 | 
			
		||||
        KC_ESC            , KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U    , KC_P   , KC_SCLN , KC_BSPC       ,
 | 
			
		||||
        LCTL_T ( KC_TAB ) , KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E    , KC_O   , KC_I    , KC_QUOT       ,
 | 
			
		||||
        CHOLTAP_LSHFT     , KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM , KC_DOT , KC_SLSH , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LT__MOV__KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                       , KC_SPC , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                      , MO ( _FUN )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                                      , MORE_key2  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                                                      , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>       ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols, to work with the Workman base layer above. (Same as Qwerty.)
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_WORKMAN__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_WORKMAN__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Workman layer _..._BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with normal version _..._NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            ^                                   ^
 | 
			
		||||
          (RGUI)                              (_MOV)
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        LCTL_T ( KC_TAB )  , KC_1    , KC_2    , KC_3    , KC_4    , KC_5    , KC_6    , KC_7    , KC_8    , KC_9    , KC_0    , RCTL_T ( KC_GRV )  ,
 | 
			
		||||
        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_TILD ) ,  
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , XXXXXXX
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                               , KC_DOT , DUO_HOLD , KC__YGUI  
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                              , XXXXXXX
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                                                       
 | 
			
		||||
                                                                                              , MORE_key2  
 | 
			
		||||
# endif                                                                                       
 | 
			
		||||
                                                                                              
 | 
			
		||||
                                                                                              , RALT_T ( KC_RGHT )
 | 
			
		||||
//                         ,         , -*-     ,             <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4           |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Workman
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_WORKMAN__DEF_BASE, BASE_WORKMAN__ALT_BASE`.
 | 
			
		||||
This is a Workman layout. 
 | 
			
		||||
 | 
			
		||||
The number & symbols layer (`_NSY`) is the same as for Qwerty.
 | 
			
		||||
 | 
			
		||||
Workman keymaps
 | 
			
		||||
---------------
 | 
			
		||||
 | 
			
		||||
─────────Workman───────────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…)
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
        ───────────────Workman─────────────────
 | 
			
		||||
 | 
			
		||||
     Layer _..._BASE (Letters). This is Workman 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        qQ    dD    rR    wW    bB    | jJ    fF    uU    pP    :;         Bksp
 | 
			
		||||
         Tab+LCtl   aA    sS    hH    tT    gG    | yY    nN    eE    oO    iI           '"
 | 
			
		||||
         LSht+_PAD  zZ    xX    mM    cC    vV    | kK    lL    ,<    .>    /?    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (RGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols). This fits the above Workman layer _DEF_BASE
 | 
			
		||||
    
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     _     {     }  `~+RSht // limitation prevents ~
 | 
			
		||||
                          ^^                              ^  // Only differences with Dvorak version _DEF_NSY
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                 u      //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										48
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,48 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * © 2019,2020 by Jos Boersema
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
// Some defines meant to decrease the firmware size. The firmware is otherwise over the maximum (atmega32u4)
 | 
			
		||||
# ifndef LINK_TIME_OPTIMIZATION_ENABLE
 | 
			
		||||
     //Disable old style macro handling: MACRO() & action_get_macro
 | 
			
		||||
#     define NO_ACTION_MACRO // This saves 320 bytes
 | 
			
		||||
      //disable calling of action_function() from the fn_actions array (deprecated)
 | 
			
		||||
#     define NO_ACTION_FUNCTION  // This saves 96 bytes
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#define PERMISSIVE_HOLD
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
#define RGBLIGHT_SLEEP // QMK docs: "If defined, the RGB lighting will be switched off when the host goes to sleep"
 | 
			
		||||
 | 
			
		||||
// Layer switch TT(layer) tapping amount to make it toggle
 | 
			
		||||
#define TAPPING_TERM_HOLTAP 225 // 175 ms proved unreliable, 225 ms seems ok (personal preference)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Attempts to reduce firmware size:
 | 
			
		||||
    //#define LINK_TIME_OPTIMIZATION_ENABLE // Did not decrease firmware size when tested on 26 Jan 2020 
 | 
			
		||||
    //#define NO_DEBUG //disable debugging (already defined)
 | 
			
		||||
    //#define NO_PRINT JJdisable printing/debugging using hid_listen (already defined)
 | 
			
		||||
    //#define NO_ACTION_LAYER //disable layers (obviously need layers)
 | 
			
		||||
    //#define NO_ACTION_TAPPING // This saves 2516 bytes (9%) (keymap uses tapping)
 | 
			
		||||
    //#define NO_ACTION_ONESHOT // This did not reduse firmware size on 26 Jan 2020
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1754
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1754
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,102 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * © 2020,2021 by Jos Boersema
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
 * If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇
 | 
			
		||||
 */
 | 
			
		||||
      
 | 
			
		||||
//#define BASE_QWERTY__DEF_BASE 
 | 
			
		||||
//#define BASE_QWERTY__ALT_BASE
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE
 | 
			
		||||
  #define BASE_DVORAK__DEF_BASE
 | 
			
		||||
//#define BASE_DVORAK__ALT_BASE
 | 
			
		||||
//#define BASE_DVORAK_DESCRAMBLE__ALT_BASE 
 | 
			
		||||
//#define BASE_COLEMAK__DEF_BASE
 | 
			
		||||
//#define BASE_COLEMAK__ALT_BASE 
 | 
			
		||||
//#define BASE_WORKMAN__DEF_BASE
 | 
			
		||||
//#define BASE_WORKMAN__ALT_BASE
 | 
			
		||||
  #define BASE_NUMPAD__ALT_BASE 
 | 
			
		||||
 | 
			
		||||
//#define MINIFAN_SINGLE_LAYOUT 
 | 
			
		||||
 | 
			
		||||
//#define STARTUP_ALTERNATE 
 | 
			
		||||
//#define STARTUP_SIDE_LEDS_OFF
 | 
			
		||||
//#define STARTUP_MID_LED_OFF 
 | 
			
		||||
//#define STARTUP_SPEED
 | 
			
		||||
//#define STARTUP_COUNT
 | 
			
		||||
 | 
			
		||||
//#define MORE_KEY__COMMAND 
 | 
			
		||||
//#define MORE_KEY__ARROW  
 | 
			
		||||
 | 
			
		||||
//#define TRANSMINIVAN_LAYOUT ....... 
 | 
			
		||||
//#define TRANSMINIVAN_LEFTSIDE  
 | 
			
		||||
  #define TRANS_LEFT XXXXXXX    
 | 
			
		||||
//#define TRANSMINIVAN_MIDLEFT   
 | 
			
		||||
  #define TRANS_MIDLEFT XXXXXXX 
 | 
			
		||||
//#define TRANSMINIVAN_RIGHTSIDE 
 | 
			
		||||
  #define TRANS_RIGHT XXXXXXX   
 | 
			
		||||
 | 
			
		||||
//#define MORE_key1_BASE TG ( _RAR ) 
 | 
			
		||||
//#define MORE_key1_BASE KC_DEL     
 | 
			
		||||
  #define MORE_key1_BASE KC__XGUI  
 | 
			
		||||
//#define MORE_key1      KC_DEL   
 | 
			
		||||
  #define MORE_key1      KC__XGUI
 | 
			
		||||
  #define MOREKEY2_ARROW_CLUSTER 
 | 
			
		||||
//#define MOREKEY2_ADD_NAVIGATION 
 | 
			
		||||
  #define MORE_key2 _MOV_UP 
 | 
			
		||||
//#define MORE_key2 KC_DEL 
 | 
			
		||||
 | 
			
		||||
  #define ARROWS_TRIANGLE 
 | 
			
		||||
//#define VI_SWITCHERYDOO 
 | 
			
		||||
 | 
			
		||||
//#define NUMPAD_COMMON_SQUARE 
 | 
			
		||||
 | 
			
		||||
  #define SPEED_COUNTDOWN 25 
 | 
			
		||||
  #define SPEED_HUE_STEP 8 
 | 
			
		||||
  #define SPEED_HUE_START 160 
 | 
			
		||||
  #define WORDS_PER_MINUTE 
 | 
			
		||||
 | 
			
		||||
//#define BASE_RIGHT_ALT 
 | 
			
		||||
  #define SWITCH_GUIS 
 | 
			
		||||
//#define UNICODE_CURRENCY 0x20ac 
 | 
			
		||||
//#define POINT_ON_CHECKBOXES 
 | 
			
		||||
//#define SWITCH_BASE_ROW1_23 
 | 
			
		||||
//#define SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
  #define SWITCH_LSHIFT_PAD_MOV
 | 
			
		||||
  #define SWITCH_RSHIFT_FUN_RAR
 | 
			
		||||
 | 
			
		||||
//#define REMOVE_PAD 
 | 
			
		||||
//#define REMOVE_ACC 
 | 
			
		||||
//#define _ACC_KEY_ALT_LAYER _BON 
 | 
			
		||||
//#define _ACC_KEY_ALT_LAYER _DRA 
 | 
			
		||||
//#define REMOVE_DRA 
 | 
			
		||||
//#define _DRA_KEY_ALT_LAYER _ACC 
 | 
			
		||||
//#define _DRA_KEY_ALT_LAYER _BON
 | 
			
		||||
//#define REMOVE_BON 
 | 
			
		||||
//#define _BON_KEY_ALT_LAYER _ACC 
 | 
			
		||||
//#define _BON_KEY_ALT_LAYER _DRA 
 | 
			
		||||
//#define ALL_DRA_BON_EVISCERATIONS 
 | 
			
		||||
  #define BOX_DRAWINGS 
 | 
			
		||||
  #define SUB_SCRIPT_NUMS 
 | 
			
		||||
  #define FULL_DRA_2NDROW 
 | 
			
		||||
  #define FULL_DRA_4THROW 
 | 
			
		||||
  #define FULL_BON_4THROW 
 | 
			
		||||
 | 
			
		||||
  #define LEDS_OFF_BASE_DEF 
 | 
			
		||||
							
								
								
									
										1198
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1198
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										19
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
# Build Options
 | 
			
		||||
#   change to "no" to disable the options, or define them in the Makefile in 
 | 
			
		||||
#   the appropriate keymap folder that will get included automatically
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
 | 
			
		||||
MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug(+400)
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output on port C6
 | 
			
		||||
UNICODE_ENABLE = no         # Unicode
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
			
		||||
RGBLIGHT_ENABLE = yes       # Enable Leds. If you set to “no”, that saves ≈ 13% of the firmware size.
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
UNICODEMAP_ENABLE = yes     #
 | 
			
		||||
LTO_ENABLE = yes            # To reduce firmware size
 | 
			
		||||
							
								
								
									
										34
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/todo.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/todo.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
Todo:
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                       § Further development
 | 
			
		||||
 | 
			
		||||
           The following seem interesting for further development. However following the “scratch your
 | 
			
		||||
           own itch” rule, perhaps it should be someone else's interest.
 | 
			
		||||
 | 
			
		||||
             ☐ It seems fun to have a user friendly front end to compile the available variations of this keymap.
 | 
			
		||||
               Such a front end could edit minifan_config_compact.h 
 | 
			
		||||
           
 | 
			
		||||
             ☐ Language specific keyboards, such as Qwertz and Azerty, etc.
 | 
			
		||||
               Two option exist:
 | 
			
		||||
               • Using an include like #include keymap_german.h (etc).
 | 
			
		||||
               • If a language specific #include and computer language setting is not used, but merely some basics
 | 
			
		||||
                 such as a matching basic alphabet ABC…XYZ on Base, with some additional Unicode symbols for that
 | 
			
		||||
                 language on _ACC and or other Unicode layers, it might be simple to make, and avoid the dead key
 | 
			
		||||
                 problem. To go another step and recreate a key like ‛<>’ (as it seems to exist in Qwertz), would
 | 
			
		||||
                 seem to require macros in unicode_macros.c.
 | 
			
		||||
 | 
			
		||||
                       § Other:
 | 
			
		||||
 | 
			
		||||
             ☐ Testing all user configurations
 | 
			
		||||
             ☐ Porting to Planck keyboard.
 | 
			
		||||
             ☐ Review/fix C indendation. QMK indentation is not my preferred style, and 
 | 
			
		||||
               therefore it is not entirely consistent. 
 | 
			
		||||
            ?☐ A lock mode, so that others cannot type on it if you walk off ?
 | 
			
		||||
            ?☐ Fun and games: game layer.
 | 
			
		||||
 | 
			
		||||
            ?☒ User defining macros (record/play user input), another special Base layer ? Is there 
 | 
			
		||||
               room for this, or how to create it if not.
 | 
			
		||||
               ➡ It seems a bit odd to have a keyboard with internal registers. Probably better handled at the
 | 
			
		||||
                 application level, so that the keyboard remains a basic input device.
 | 
			
		||||
							
								
								
									
										2272
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2272
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Remainder: © 2019 by J.B. <joshb@xs4all.nl>
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* This file contains function declarations for functions used in
 | 
			
		||||
 * unicode_macros.c
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define PRESCRAMBLED_U "f"  // This is the letter 'u' for Unicode input, as effective on GNU/Debian/Linux 10 set to Dvorak
 | 
			
		||||
static uint16_t key_timer; // Used in _DDL to differentiate layer switching in half or full descramble mode.
 | 
			
		||||
                           // In 'full' mode it goes to _DDD and _DDA Unicode layers, in 'half' mode to _DRA and _ACC.
 | 
			
		||||
 | 
			
		||||
short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers
 | 
			
		||||
short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers
 | 
			
		||||
 | 
			
		||||
void deactivate_all_but (int layer);
 | 
			
		||||
void activate_this_layer (int layer);
 | 
			
		||||
void indicate_base (void);
 | 
			
		||||
void leds_show_off (void);
 | 
			
		||||
void speed_report (int speed);
 | 
			
		||||
void speed_led (int speed);
 | 
			
		||||
void indicate_fun_stay (void);
 | 
			
		||||
int write_number (long int input, short divide10); 
 | 
			
		||||
void isolate_rgblight_set (void);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,288 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2019, 2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*        An amount of Unicode #defines
 | 
			
		||||
 *        - western european accented characters
 | 
			
		||||
 *        - various punctuation symbols, different number formats, math symbols, other symbols. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
    // a lower case variants
 | 
			
		||||
#define CAL_ACU  0xe1 //   'C' for Costum 'A' for a, 'L' for lower, "ACU" for acute: á
 | 
			
		||||
#define CAL_CAR  0xe2 //        ''              ''        ''        "CAR" for caret: â
 | 
			
		||||
#define CAL_DIA  0xe4 //        ''              ''        ''        "DIA" for diaereses: ä
 | 
			
		||||
#define CAL_GRA  0xe0 //        ''              ''        ''        "GRA" for grave: à
 | 
			
		||||
      // A upper case variants
 | 
			
		||||
#define CAU_ACU  0xc1 //        ''              ''   'U' for upper, "ACU" for acute: Á
 | 
			
		||||
#define CAU_CAR  0xc2 //        ''              ''        ''        "CAR" for caret: Â
 | 
			
		||||
#define CAU_DIA  0xc4 //        ''              ''        ''        "DIA" for diaereses: Ä
 | 
			
		||||
#define CAU_GRA  0xc0 //        ''              ''        ''        "GRA" for grave: À
 | 
			
		||||
 | 
			
		||||
    // A with ring (Scandinavia)
 | 
			
		||||
#define CAL_RNG  0xe5 //        ''        'A' for a, 'L' for lower, "RNG" for Ring: å
 | 
			
		||||
#define CAU_RNG  0xc5 //        ''             ''    'U' for upper,        ''     : Å
 | 
			
		||||
 | 
			
		||||
    // AE (French)          
 | 
			
		||||
#define CAEL_BI  0xe6 //        ''        "AE" for ae, 'L' for lower        ''              : æ
 | 
			
		||||
#define CAEU_BI  0xc6 //        ''              ''     'U' for upper,       ''              : Æ
 | 
			
		||||
 | 
			
		||||
    // OE (French)
 | 
			
		||||
#define COEL_BI  0x153 //       ''        "AO" for ao, 'L' for lower, "BI" for two-character: œ
 | 
			
		||||
#define COEU_BI  0x152 //       ''              ''     'U' for upper,       ''              ; Œ
 | 
			
		||||
 | 
			
		||||
   // Mu (French)
 | 
			
		||||
#define C_MU_L   0x03BC //      ''        "MU" for Mu (Greek letter), 'L' for lower: 
 | 
			
		||||
 | 
			
		||||
    // C with cedilla
 | 
			
		||||
#define CCL_CDL  0xe7 //        ''        'C' for c, 'L' for lower, "CDL" for cedilla: ç 
 | 
			
		||||
#define CCU_CDL  0xc7 //        ''             ''    'U' for upper,        ''        : Ç
 | 
			
		||||
 | 
			
		||||
    // e lower case variants
 | 
			
		||||
#define CEL_ACU  0xe9 //   'C' for Costum 'E' for e, 'L' for lower, "ACU" for acute: é
 | 
			
		||||
#define CEL_CAR  0xea //        ''              ''        ''        "CAR" for caret: ê
 | 
			
		||||
#define CEL_DIA  0xeb //        ''              ''        ''        "DIA" for diaereses: ë
 | 
			
		||||
#define CEL_GRA  0xe8 //        ''              ''        ''        "GRA" for grave: è
 | 
			
		||||
      // E upper case variants
 | 
			
		||||
#define CEU_ACU  0xc9 //        ''              ''   'U' for uuper, "ACU" for acute: É
 | 
			
		||||
#define CEU_CAR  0xca //        ''              ''        ''        "CAR" for caret: Ê
 | 
			
		||||
#define CEU_DIA  0xcb //        ''              ''        ''        "DIA" for diaereses: Ë
 | 
			
		||||
#define CEU_GRA  0xc8 //        ''              ''        ''        "GRA" for grave: È
 | 
			
		||||
    
 | 
			
		||||
    // i lower case variants
 | 
			
		||||
#define CIL_ACU  0xed //        ''         'I' for i, 'L' for lower, "ACU" for acute: í
 | 
			
		||||
#define CIL_CAR  0xee //        ''              ''         ''        "CAR" for caret: î
 | 
			
		||||
#define CIL_DIA  0xef //        ''              ''         ''        "DIA" for diaereses: ï
 | 
			
		||||
#define CIL_GRA  0xec //        ''              ''         ''        "GRA" for grave: ì
 | 
			
		||||
      // I upper case variants
 | 
			
		||||
#define CIU_ACU  0xcd //        ''              ''    'U' for upper, "ACU" for acute: Í
 | 
			
		||||
#define CIU_CAR  0xce //        ''              ''         ''        "CAR" for caret: Î
 | 
			
		||||
#define CIU_DIA  0xcf //        ''              ''         ''        "DIA" for diaereses: Ï
 | 
			
		||||
#define CIU_GRA  0xcc //        ''              ''         ''        "GRA" for grave: Ì
 | 
			
		||||
 | 
			
		||||
    // N with tilde
 | 
			
		||||
#define CNL_TLD  0xf1 //        ''        'N' for n, 'L' for lower, "TLD" for tilde: ñ
 | 
			
		||||
#define CNU_TLD  0xd1 //        ''             ''    'U' for upper,        ''      : Ñ
 | 
			
		||||
 | 
			
		||||
    //Spanish additional symbols:
 | 
			
		||||
#define CEX_INV  0xa1 //        ''        "EX" for exclamation mark, "INV" for inverted: ¡
 | 
			
		||||
#define CQU_INV  0xbf //        ''        "QU" for question mark,           ''         : ¿
 | 
			
		||||
    
 | 
			
		||||
    // o lower case variants
 | 
			
		||||
#define COL_ACU  0xf3 //   'C' for Costum 'O' for a, 'L' for lower, "ACU" for acute: ó
 | 
			
		||||
#define COL_CAR  0xf4 //        ''              ''        ''        "CAR" for caret: ô
 | 
			
		||||
#define COL_DIA  0xf6 //        ''              ''        ''        "DIA" for diaereses: ö
 | 
			
		||||
#define COL_GRA  0xf2 //        ''              ''        ''        "GRA" for grave: ò
 | 
			
		||||
      // O upper case variants
 | 
			
		||||
#define COU_ACU  0xd3 //        ''              ''   'U' for upper, "ACU" for acute: Ó
 | 
			
		||||
#define COU_CAR  0xd4 //        ''              ''        ''        "CAR" for caret: Ô
 | 
			
		||||
#define COU_DIA  0xd6 //        ''              ''        ''        "DIA" for diaereses: Ö
 | 
			
		||||
#define COU_GRA  0xd2 //        ''              ''        ''        "GRA" for grave: Ò
 | 
			
		||||
                            
 | 
			
		||||
    // O with stroke (Scandinavia)
 | 
			
		||||
#define COL_STK  0xf8 //        ''        'O' for o, 'L' for lower, "STK" for Stroke: ø
 | 
			
		||||
#define COU_STK  0xd8 //        ''             ''    'U' for upper,        ''       : Ø
 | 
			
		||||
 | 
			
		||||
    // u lower case variants
 | 
			
		||||
#define CUL_ACU  0xfa //    'C' for Costum 'U' for u, 'L' for lower, "ACU" for acute: ú
 | 
			
		||||
#define CUL_CAR  0xfb //        ''              ''        ''        "CAR" for caret: û
 | 
			
		||||
#define CUL_DIA  0xfc //        ''              ''        ''        "DIA" for diaereses: ü
 | 
			
		||||
#define CUL_GRA  0xf9 //        ''              ''        ''        "GRA" for grave: ù
 | 
			
		||||
      // U upper case variants
 | 
			
		||||
#define CUU_ACU  0xda //        ''        'U' for u, 'U' for upper, "ACU" for acute: Ú
 | 
			
		||||
#define CUU_CAR  0xdb //        ''              ''        ''        "CAR" for caret: Û
 | 
			
		||||
#define CUU_DIA  0xdc //        ''              ''        ''        "DIA" for diaereses: Ü
 | 
			
		||||
#define CUU_GRA  0xd9 //        ''              ''        ''        "GRA" for grave: Ù
 | 
			
		||||
 | 
			
		||||
    // Y with acute
 | 
			
		||||
#define CYL_ACU  0xfd //        ''        'Y' for y, 'L' for lower, "ACU" for Acute: ý
 | 
			
		||||
#define CYU_ACU  0xdd //        ''             ''    'U' for upper,        ''      : Ý
 | 
			
		||||
    // Y with diaereses
 | 
			
		||||
#define CYL_DIA  0xff //        ''        'Y' for y, 'L' for lower, "DIA" for Diareses: ÿ
 | 
			
		||||
#define CYU_DIA  0x178 //       ''             ''    'U' for upper,        ''         : Ÿ
 | 
			
		||||
 | 
			
		||||
    // Dutch IJ 
 | 
			
		||||
#define CIJL_BI  0x133 //       ''        'IJ' for ij, 'L' for lower, BI for two-character: ij
 | 
			
		||||
#define CIJU_BI  0x132 //       ''              ''   , 'U' for upper      ''              : IJ
 | 
			
		||||
 | 
			
		||||
    //German:
 | 
			
		||||
     // sharp s 
 | 
			
		||||
#define CSL_SHP  0xdf //        ''         'S' for s, 'L' for lower, "SHP" for sharp: ß
 | 
			
		||||
  
 | 
			
		||||
    // Some Unicode symbols that might be handy
 | 
			
		||||
      // Happy symbols:
 | 
			
		||||
#define CS_SMIL  0x1f642 // "C" for costum, "S" for symbol , "SMIL"  for <smile> 🙂 
 | 
			
		||||
#define CS_SMILP 0x1F60A //     ''        ,     ''         , "SMIL" for smile, "P" for plus: 😊
 | 
			
		||||
#define CS_THUP  0x1f44d //     ''        ,     ''         , "THUP"  for <thumb up> 👍 
 | 
			
		||||
  
 | 
			
		||||
      //Sad symbols
 | 
			
		||||
#define CS_SAD_  0x1f641 //     ''        ,     ''         , "SAD_"   for  <sad face>  🙁 
 | 
			
		||||
#define CS_SQUIG 0x2368 //      ''        ,     ''         , "SQUIG" for squigly face: ⍨
 | 
			
		||||
#define CS_THDN  0x1f44e //     ''        ,     ''         , "THDN"  for <thumb down>  👎 
 | 
			
		||||
 | 
			
		||||
// Punctuation
 | 
			
		||||
#define CS_ASTL    0x20F0 //    ''     ,    ''       , "AST" for asterisk, "L" for little:  ⃰
 | 
			
		||||
#define CS_DASH    0x2014 //    ''     ,    ''       , "DASH" for dash (a longer hyphen, if rendered correctly): —
 | 
			
		||||
#define CS_DQUH    0x201D //    ''     ,    ''       , "D" for double, "QU" for quote, "H" for high: ”
 | 
			
		||||
#define CS_DQUHR   0x201C //    ''     ,    ''       ,     ''       ,       ,,       ,     ''      , "R" for reverse: “
 | 
			
		||||
#define CS_DQUL    0x201E //    ''     ,    ''       ,                               , "L" for low: „
 | 
			
		||||
#define CS_GUILLE  0xAB //      ''     ,    ''       , "GUIL" for guillemet (French quotation), "LE" for left-pointing: «
 | 
			
		||||
#define CS_GUILRI  0xBB //      ''     ,    ''       ,        ''                              , "RI" for right-pointing: »
 | 
			
		||||
#define CS_GUILSLE 0x2039 //    ''     ,    ''       ,        ''                              , "S" for simple, "LE" for left-pointing: ‹
 | 
			
		||||
#define CS_GUILSRI 0x203A //    ''     ,    ''       ,        ''                              ,     ''        , "RI" for right-pointing: ›
 | 
			
		||||
#define CS_HQUOSB  0x201B //    ''     ,    ''       , "H" for high, "QUO" for quote, "S" for single, "B" for begin: ‛
 | 
			
		||||
#define CS_HQUOSE  0x2019 //    ''     ,    ''       ,     ''              ''             ''        , "E" for end: ’
 | 
			
		||||
 | 
			
		||||
     // Unusual parenthesis types
 | 
			
		||||
#define CS_OCBRA  0x300c //     ''     ,    ''       , "O" for opening, "C" for corner, "BRA" for bracket:「
 | 
			
		||||
#define CS_CCBRA  0x300d //     ''     ,    ''       , "C" for closing,     ''                ''         : 」
 | 
			
		||||
#define CS_ODABRA 0x300a //     ''          ''       , "O" for opening, "D" for double, "A" for angled, "BRA" for bracket:《
 | 
			
		||||
#define CS_CDABRA 0x300b //     ''     ,    ''       , "C" for closing,     ''              ''                ''         : 》
 | 
			
		||||
 | 
			
		||||
     // currency
 | 
			
		||||
#define CS_LGULDEN  UNICODE_CURRENCY //    ''        , "L" for lower, "GULDEN" for gulden (guilder): ƒ
 | 
			
		||||
                // ^ special case for easy user configuration
 | 
			
		||||
#define CS_CURREN 0xA4 //       ''     ,        ''   , "CURREN" for currency, 'any currency' symbol: ¤
 | 
			
		||||
#define CS_POUND  0xA3 //       ''     ,        ''   , "POUND" for pound: £
 | 
			
		||||
#define CS_CENT   0xA2 //       ''     ,        ''   , "CENT" for cent: ¢
 | 
			
		||||
 | 
			
		||||
    // legal
 | 
			
		||||
#define CS_COPY   0xA9 //       ''     ,        ''   , "COPY" for copyright: 
 | 
			
		||||
#define CS_COPYL  0x1F12F  //   ''     ,        ''   , "COPY" for Copyright, "L" for left: 
 | 
			
		||||
    
 | 
			
		||||
     // circle, dots, bullet points
 | 
			
		||||
#define CS_BULLET 0x2022 //     ''     ,        ''   , "BULLET" for bullet: •
 | 
			
		||||
#define CS_CIRCLE 0x3007 //     ''     ,        ''   , "CIRCLE" for circle: 〇
 | 
			
		||||
#define CS_DEGREE 0xB0   //     ''     ,        ''   , "DEGREE" for degree: °
 | 
			
		||||
#define CS_ELLIPS 0x2026 //     ''     ,        ''   , "ELLIPS" for bullet: …
 | 
			
		||||
#define CS_FINGER 0x261E //     ''     ,        ''   , "FINGER" for finger: ☞
 | 
			
		||||
#define CS_MIDDOT 0x00B7 //     ''     ,        ''   , "MIDDOT" for mid dot: ·
 | 
			
		||||
#define CS_PARA   0x00A7 //     ''     ,        ''   , "PARA" for paragraaf: §
 | 
			
		||||
 | 
			
		||||
     // super and sub script numbers
 | 
			
		||||
#define CN_0SUB  0x2080 //      ''     , N for number, "SUB" for sub-script or "SUP" for super-script:₀
 | 
			
		||||
#define CN_0SUP  0x2070 //      ''     ,    ''       ,                           ''                  :⁰
 | 
			
		||||
#define CN_1SUB  0x2081 //      ''     ,    ''       ,        ''                                     :₁
 | 
			
		||||
#define CN_1SUP  0xB9   //      ''     ,    ''       ,                           ''                  :¹
 | 
			
		||||
#define CN_2SUB  0x2082 //      ''     ,    ''       ,        ''                                     :₂
 | 
			
		||||
#define CN_2SUP  0xB2   //      ''     ,    ''       ,                           ''                  :²
 | 
			
		||||
#define CN_3SUB  0x2083 //      ''     ,    ''       ,        ''                                     :₃
 | 
			
		||||
#define CN_3SUP  0xB3   //      ''     ,    ''       ,                           ''                  :³
 | 
			
		||||
#define CN_4SUB  0x2084 //      ''     ,    ''       ,        ''                                     :₄
 | 
			
		||||
#define CN_4SUP  0x2074 //      ''     ,    ''       ,                           ''                  :⁴
 | 
			
		||||
#define CN_5SUB  0x2085 //      ''     ,    ''       ,        ''                                     :₅
 | 
			
		||||
#define CN_5SUP  0x2075 //      ''     ,    ''       ,                           ''                  :⁵
 | 
			
		||||
#define CN_6SUB  0x2086 //      ''     ,    ''       ,        ''                                     :₆
 | 
			
		||||
#define CN_6SUP  0x2076 //      ''     ,    ''       ,                           ''                  :⁶
 | 
			
		||||
#define CN_7SUB  0x2087 //      ''     ,    ''       ,        ''                                     :₇
 | 
			
		||||
#define CN_7SUP  0x2077 //      ''     ,    ''       ,                           ''                  :⁷
 | 
			
		||||
#define CN_8SUB  0x2088 //      ''     ,    ''       ,        ''                                     :₈
 | 
			
		||||
#define CN_8SUP  0x2078 //      ''     ,    ''       ,                           ''                  :⁸
 | 
			
		||||
#define CN_9SUB  0x2089 //      ''     ,    ''       ,        ''                                     :₉
 | 
			
		||||
#define CN_9SUP  0x2079 //      ''     ,    ''       ,                           ''                  :⁹
 | 
			
		||||
 | 
			
		||||
// Exponent symbols
 | 
			
		||||
#define CS_CPSUB  0x208E //   ''     ,    ''       , "C" for closing, "P" for paranthesis, "SUB" for subscript: ₎
 | 
			
		||||
#define CS_OPSUB  0x208D //   ''     ,    ''       , "O" for opening,     ''             ,       ''           : ₍
 | 
			
		||||
#define CS_CPSUP  0x207E //   ''     ,    ''       , "C" for closing,     ''             , "SUP" for superscript: ⁾
 | 
			
		||||
#define CS_OPSUP  0x207D //   ''     ,    ''       , "O" for opening:     ''             ,       ''             : ⁽
 | 
			
		||||
#define CS_EXPMIN 0x207B //   ''     ,    ''       , "EXP" for exponent, "MIN" for minus : ⁻
 | 
			
		||||
#define CS_EXPPLS 0x207A //   ''     ,    ''       ,       ''          , "PLS" for plus : ⁺
 | 
			
		||||
// Math
 | 
			
		||||
#define CS_ABOUT  0x2248 //   ''     ,    ''       , "ABOUT" for about equal: ≈
 | 
			
		||||
#define CS_CUMMU  0x2211 //   ''     ,    ''       , "CUMMU" for cummulative: ∑
 | 
			
		||||
#define CS_DIVI   0xF7 //     ''     ,    ''       , "DIVI" for division: ÷
 | 
			
		||||
#define CS_EGTHAN 0x2265 //   ''     ,    ''       , "E" for equal, "G" for or-greater, "THAN" for than: ≥
 | 
			
		||||
#define CS_ELTHAN 0x2264 //   ''     ,    ''       , "E" for equal, "L" for or-less, "THAN" for than: ≤
 | 
			
		||||
#define CS_INFIN  0x221E //   ''     ,    ''       , "INFIN" for infinity: ∞
 | 
			
		||||
#define CS_MULT   0xD7 //     ''     ,    ''       , "MULTI" for multiplication: ×
 | 
			
		||||
#define CS_NONE   0x2205 //   ''     ,    ''       , "NONE" for empty-set / no-solution: ∅ 
 | 
			
		||||
#define CS_PLMI   0xB1   //   ''     ,    ''       , "PLMI" for plus-minus; ±
 | 
			
		||||
#define CS_PROM   0x2030 //   ''     ,    ''       , "PROM" for promille: ‰
 | 
			
		||||
#define CS_PROTT  0x2031 //   ''     ,    ''       , "PRO" for pro-, "TT" for ten-thousandth: ‱
 | 
			
		||||
#define CS_SQRT   0x221A //   ''     ,    ''       , "SQRT" for square root: √
 | 
			
		||||
#define CS_UNEQL  0x2260 //   ''     ,    ''       , "UNEQL" for unequal: ≠
 | 
			
		||||
 
 | 
			
		||||
# ifdef POINT_ON_CHECKBOXES
 | 
			
		||||
    // pointers
 | 
			
		||||
#     define CS_CHECK_H 0x2B9B // ''     ,    ''       , "H" for Down,          ''      : ⮛
 | 
			
		||||
#     define CS_CHECK_B 0x2B98 // ''     ,    ''       , "L" for Left, "ARROW" for arrow: ⮘
 | 
			
		||||
#     define CS_CHECK_Y 0x2B9A // ''     ,    ''       , "R" for Right,         ''      : ⮚
 | 
			
		||||
#     define CS_CHECK_N 0x2B99 // ''     ,    ''       , "U" for UP,            ''      : ⮙
 | 
			
		||||
# else
 | 
			
		||||
    // checkboxes
 | 
			
		||||
#     define CS_CHECK_H 0x1F5F9 // ''  ,    ''       , "CHECK" for check mark, "H" for heavy: 🗹
 | 
			
		||||
#     define CS_CHECK_B 0x2610 //  ''  ,    ''       ,         ''            , "B" for blank: ☐ 
 | 
			
		||||
#     define CS_CHECK_Y 0x2611 //  ''  ,    ''       ,         ''            , "Y" for yes: ☑ 
 | 
			
		||||
#     define CS_CHECK_N 0x2612 //  ''  ,    ''       ,         ''            , "N" for no: ☒ 
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// More arrows
 | 
			
		||||
#define CS_ARR_DN 0x2B07 //     ''     ,    ''       , "ARR" for arrow, "DN" for down: ⬇
 | 
			
		||||
#define CS_ARR_LE 0x2B05 //     ''     ,    ''       , "ARR" for arrow, "LE" for left: ⬅
 | 
			
		||||
#define CS_ARR_RI 0x27A1 //     ''     ,    ''       , "ARR" for arrow, "RI" for right: ➡
 | 
			
		||||
#define CS_ARR_UP 0x2B06 //     ''     ,    ''       , "ARR" for arrow, "UP" for up: ⬆
 | 
			
		||||
 | 
			
		||||
// More checkmarks
 | 
			
		||||
#define CS_BOTCH 0x2717 //      ''     ,    ''       , "BOTCH" for botched: ✗
 | 
			
		||||
#define CS_CHECK 0x2713 //      ''     ,    ''       , "CHECK" for check mark: ✓
 | 
			
		||||
 | 
			
		||||
// circled numbers
 | 
			
		||||
#define CN_0CIRC  0x24EA //   ''     , "N" for number, "0" for , "CIRC" for circled: ⓪
 | 
			
		||||
#define CN_1CIRC  0x2460 //   ''     ,     ''        , "1" for 1, "CIRC" for circled: ①
 | 
			
		||||
#define CN_2CIRC  0x2461 //   ''     ,     ''        , "2" for 2, "CIRC" for circled: ②
 | 
			
		||||
#define CN_3CIRC  0x2462 //   ''     ,     ''        , "3" for 3, "CIRC" for circled: ③
 | 
			
		||||
#define CN_4CIRC  0x2463 //   ''     ,     ''        , "4" for 4, "CIRC" for circled: ④
 | 
			
		||||
#define CN_5CIRC  0x2464 //   ''     ,     ''        , "5" for 5, "CIRC" for circled: ⑤
 | 
			
		||||
#define CN_6CIRC  0x2465 //   ''     ,     ''        , "6" for 6, "CIRC" for circled: ⑥
 | 
			
		||||
#define CN_7CIRC  0x2466 //   ''     ,     ''        , "7" for 7, "CIRC" for circled: ⑦
 | 
			
		||||
#define CN_8CIRC  0x2467 //   ''     ,     ''        , "8" for 8, "CIRC" for circled: ⑧
 | 
			
		||||
#define CN_9CIRC  0x2468 //   ''     ,     ''        , "9" for 9, "CIRC" for circled: ⑨
 | 
			
		||||
#define CN_10CIRC 0x2469 //   ''     ,     ''        , "10" for 10, "CIRC" for circled: ⑩
 | 
			
		||||
#define CN_11CIRC 0x246A //   ''     ,     ''        , "11" for 11, "CIRC" for circled: ⑪
 | 
			
		||||
#define CN_12CIRC 0x246B //   ''     ,     ''        , "12" for 12, "CIRC" for circled: ⑫
 | 
			
		||||
#define CN_13CIRC 0x246C //   ''     ,     ''        , "13" for 13, "CIRC" for circled: ⑬
 | 
			
		||||
#define CN_14CIRC 0x246D //   ''     ,     ''        , "14" for 14, "CIRC" for circled: ⑭
 | 
			
		||||
#define CN_15CIRC 0x246E //   ''     ,     ''        , "15" for 15, "CIRC" for circled: ⑮
 | 
			
		||||
#define CN_16CIRC 0x246F //   ''     ,     ''        , "16" for 16, "CIRC" for circled: ⑯
 | 
			
		||||
#define CN_17CIRC 0x2470 //   ''     ,     ''        , "17" for 17, "CIRC" for circled: ⑰
 | 
			
		||||
#define CN_18CIRC 0x2471 //   ''     ,     ''        , "18" for 18, "CIRC" for circled: ⑱
 | 
			
		||||
#define CN_19CIRC 0x2472 //   ''     ,     ''        , "19" for 19, "CIRC" for circled: ⑲
 | 
			
		||||
 | 
			
		||||
// Box drawings
 | 
			
		||||
#define CB_C_LEDN 0x2513 //   ''     , "B" for box drawing, "C" for corner, "LE" for left, "DN" for down: ┓
 | 
			
		||||
#define CB_C_LEUP 0x251B //   ''     ,     ''             , "C" for corner, "LE" for left, "UP" for up: ┛
 | 
			
		||||
#define CB_C_RIDN 0x250F //   ''     ,     ''             , "C" for corner, "RI" for right, "DN" for down: ┏
 | 
			
		||||
#define CB_C_RIUP 0x2517 //   ''     ,     ''             , "C" for corner, "RI" for right, "UP" for up: ┗
 | 
			
		||||
#define CB_VE     0x2503 //   ''     ,     ''             , "VE" for verticle: ┃
 | 
			
		||||
#define CB_VE_BI  0x254B //   ''     ,     ''             , "VE" for verticle, "BI" for bi (two): ╋
 | 
			
		||||
#define CB_VE_DOT 0x2507 //   ''     ,     ''             , "VE" for verticle, "DOT" for dotted: ┇
 | 
			
		||||
#define CB_VE_LE  0x252B //   ''     ,     ''             , "VE" for verticle, "LE" for left: ┫
 | 
			
		||||
#define CB_VE_RI  0x2523 //   ''     ,     ''             , "VE" for verticle, "RI" for right: ┣
 | 
			
		||||
// Horizontal lines, can be used with box drawings
 | 
			
		||||
#define CB_HHORI  0x2501 //   ''     ,     ''             , "H" for heavy,         ''           : ━
 | 
			
		||||
#define CB_HHORID 0x2505 //   ''     ,     ''             , "H" for heavy,         ''           , "D" for dashes: ┅
 | 
			
		||||
#define CB_LHORI  0x2500 //   ''     ,     ''             , "L" for light, "HORI" for horizontal: ─
 | 
			
		||||
#define CB_LHORID 0x2504 //   ''     ,     ''             , "L" for light,         ''           , "D" for dashes: ┄
 | 
			
		||||
 | 
			
		||||
// Signs, unusual
 | 
			
		||||
#define CS_ALERT 0x26A0 //    ''     , "S" for symbol, "ALERT" for alert/warning: ⚠
 | 
			
		||||
#define CS_STARB 0x2605 //    ''     ,    ''         , "STAR" for star, "B" for big: ★
 | 
			
		||||
#define CS_STARL 0x66D  //    ''     ,    ''         , "STAR" for star, "L" for little: ٭
 | 
			
		||||
#define CS_FLEUR 0x2766 //    ''     ,    ''         , "FLEUR" for fleur (flower): ❦
 | 
			
		||||
#define CS_HEART 0x2665 //    ''     ,    ''         , "HEART" for heart: ♥
 | 
			
		||||
							
								
								
									
										721
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										721
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,721 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
 * © 2019,2020 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ------------------------------------- ⬇ --------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// ------------------------------------- ⬇ --------------------------------------
 | 
			
		||||
 | 
			
		||||
  // (For the non-coders: “_Remove_” means to place ‛//’ in front of a line. The rest of the line becomes a comment.
 | 
			
		||||
  //                      Placing ‛//’ in front of a line, means whatever follows it will be ignored during compilation.
 | 
			
		||||
  //                      “_Activate_”   means to *delete* the two ‛//’ in front. Now the rest of the line *will* be compiled
 | 
			
		||||
  //                      /* ... */ is another a way to turn “...” into being a comment which is ignored during compilation.
 | 
			
		||||
  //                      (The documentation here is geared toward people who have no understanding about programming.)
 | 
			
		||||
 | 
			
		||||
       /*
 | 
			
		||||
        --------------------------------------------------------------------------------------
 | 
			
		||||
                                                                                          ----
 | 
			
		||||
                                                                                            --
 | 
			
		||||
                                                                                             -
 | 
			
		||||
          Table of Contents:
 | 
			
		||||
         
 | 
			
		||||
                            -0- ➡ Compact configuration file ⬅
 | 
			
		||||
 | 
			
		||||
                            -1- ➡ Letters / Numbers & Symbols layouts ⬅
 | 
			
		||||
                    • Qwerty
 | 
			
		||||
                    • Qwerty with Base arrows
 | 
			
		||||
                    • Dvorak
 | 
			
		||||
                    • Dvorak descramble mode
 | 
			
		||||
                    • Colemak
 | 
			
		||||
                    • Workman
 | 
			
		||||
                    • Numpad
 | 
			
		||||
 | 
			
		||||
                            -2- ➡ Eviscerations ( ① / ② ) ⬅
 | 
			
		||||
                    • Single layout
 | 
			
		||||
 | 
			
		||||
                            -3- ➡ Startup settings ⬅
 | 
			
		||||
                    • Alternate Base
 | 
			
		||||
                    • Leds on/off at startup.
 | 
			
		||||
                    • Speed measuring
 | 
			
		||||
                    • Text size counting ⬅
 | 
			
		||||
 | 
			
		||||
                            -4- ➡ How many hardware keys 1st row ⬅
 | 
			
		||||
 | 
			
		||||
                            -5- ⚠ ≠ Minivan ⬅
 | 
			
		||||
 | 
			
		||||
                            -6- ➡ Defining the meaning of the additional hardware keys ⬅
 | 
			
		||||
                    • Defining the additional key for 'South paw' (also called 'Command')
 | 
			
		||||
                    • Defining 'Arrow' hardware layout additional keys
 | 
			
		||||
 | 
			
		||||
                            -7- ➡ Arrows/Navigation cluster ⬅
 | 
			
		||||
                    • Navigation cluster configuration
 | 
			
		||||
                    • VI editor arrows
 | 
			
		||||
 | 
			
		||||
                            -8- ➡ Number pad Configuration⬅
 | 
			
		||||
 | 
			
		||||
                            -9- ➡ Speed measuring ⬅
 | 
			
		||||
 | 
			
		||||
                           -10- ➡ Some alternative keys ⬅
 | 
			
		||||
                    • Right Alt or hold(_RAR) on Base
 | 
			
		||||
                    • GUI left/right
 | 
			
		||||
                    • Alternate currency symbol
 | 
			
		||||
                    • Check boxes or Pointers
 | 
			
		||||
                    • Switch _ACC/_BON and *left* side _NSY/_DRA hold keys
 | 
			
		||||
                    • Switch _PAD and _MOV on Left Shift toggle
 | 
			
		||||
                    • Switch _FUN and _RAR on Right Shift toggle
 | 
			
		||||
 | 
			
		||||
                           -11- ➡ Eviscerations ( ② / ② ) ⬅
 | 
			
		||||
                    • Removing the numbers pad _PAD layer
 | 
			
		||||
                    • Removing one or more of the Unicode layers _ACC, _DRA or_BON
 | 
			
		||||
                    • Removing groups of characters
 | 
			
		||||
 | 
			
		||||
                           -12- ➡ Leds ⬅
 | 
			
		||||
        - 
 | 
			
		||||
        --
 | 
			
		||||
        ----
 | 
			
		||||
        --------------------------------------------------------------------------------------
 | 
			
		||||
        */
 | 
			
		||||
 | 
			
		||||
       /*                   -0- ➡ Compact configuration file ⬅
 | 
			
		||||
        *
 | 
			
		||||
        * If you _activate_ this, this whole heavily documented configuration block below
 | 
			
		||||
        * gets skipped, and instead a bare bones configuration file with all these same options
 | 
			
		||||
        * gets read. There is no functional difference.
 | 
			
		||||
        * 
 | 
			
		||||
        * (You can use the compact configuration if you like that better. It can make communicating
 | 
			
		||||
        * a configuration easier. The fully documented configuration is left in a state of default
 | 
			
		||||
        * when uploaded to QMK, so that it gives the most commonly used layout: Qwerty with Numpad,
 | 
			
		||||
        * basic 44 Minivan keys. The compact version its state is whatever it is.)
 | 
			
		||||
        */
 | 
			
		||||
  #define MINIFAN_CONFIG_COMPACT // _Activate_ this, to load the configuration in ./minifan_config_compact.h (note: mini‛f’an).
 | 
			
		||||
#ifndef MINIFAN_CONFIG_COMPACT // (don't alter this)
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
       /*                   -1- ➡ Letters / Numbers & Symbols layouts ⬅
 | 
			
		||||
        *
 | 
			
		||||
        * Here you can configure what letters layer (BASE layer), and number&symbols layer you
 | 
			
		||||
        * want. This is a dual layout system, so you can choose a second pair as well. You can
 | 
			
		||||
        * switch between them with a key on the _RAR layer. All the other layers are the same,
 | 
			
		||||
        * regardless of your choice in letter/number&symbol layers.
 | 
			
		||||
        *
 | 
			
		||||
        * The letters layer is the BASE layer, from which you also reach all other layers.
 | 
			
		||||
        * The letters it has is the alphabet in its simplest form: abcdefghijklmnopqrstuvwxyz.
 | 
			
		||||
        * The numbers & symbols layer has what you find on any regular keyboard: 123… !@#… []/…
 | 
			
		||||
        * The numbers & symbols layer is made to fit the Letters layer, due to small differences
 | 
			
		||||
        * between layouts like Qwerty and Dvorak (in this case the symbols ‛-’, ‛/’, ‛?’, and ‛_’).
 | 
			
		||||
        *
 | 
			
		||||
        * Example: A Qwerty letters layer, with a fitting numbers & symbols layer, as ‛Default’.
 | 
			
		||||
        *          A Dvorak letters layer, with a fitting numbers & symbols layer, as ‛Alternate’.
 | 
			
		||||
        *
 | 
			
		||||
        * You will be asked to configure one layout as ‛Default’ and another as ‛Alternate’.
 | 
			
		||||
        *
 | 
			
		||||
        * A bases layout may have locally re-defined one or more of the common layers. If you
 | 
			
		||||
        * choose two bases layouts who re-define the same common layer locally, you will need
 | 
			
		||||
        * to choose either one by commenting out the other.
 | 
			
		||||
        */
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Qwerty
 | 
			
		||||
        //                   (a regular Qwerty layout)
 | 
			
		||||
        //  _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
  #define BASE_QWERTY__DEF_BASE // _Activate_ if you want Qwerty on the ‛Default’ spot
 | 
			
		||||
//#define BASE_QWERTY__ALT_BASE // _Activate_ if you want Qwerty on the ‛Alternate’ spot
 | 
			
		||||
        //                   Note: you still need to set if you have the additional ‛arrow’ hardware key. You
 | 
			
		||||
        //                         can ignore what it should be defined as, because it will be a plain arrow on Base.
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Qwerty with Base arrows
 | 
			
		||||
        //                   (provides direct access to arrows)
 | 
			
		||||
        //  _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot
 | 
			
		||||
        //
 | 
			
		||||
        //          • Dvorak
 | 
			
		||||
        //                  (a regular Dvorak layout)
 | 
			
		||||
        // _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_DVORAK__DEF_BASE // _Activate_ if you want Dvorak on the ‛Default’ spot
 | 
			
		||||
//#define BASE_DVORAK__ALT_BASE // _Activate_ if you want Dvorak on the ‛Alternate’ spot
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Dvorak descramble mode
 | 
			
		||||
        //                  (Dvorak for a computer already remapping to Dvorak)
 | 
			
		||||
        //  This layout is only available on ‛Alternate’, because of the special _HALF_ descramble mode.
 | 
			
		||||
//#define BASE_DVORAK_DESCRAMBLE__ALT_BASE // _Activate_ if you want Dvorak on the ‛Alternate’ spot
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Colemak
 | 
			
		||||
        //                   (a regular Colemak layout)
 | 
			
		||||
        //  _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_COLEMAK__DEF_BASE // _Activate_ if you want Colemak on the ‛Default’ spot
 | 
			
		||||
//#define BASE_COLEMAK__ALT_BASE // _Activate_ if you want Colemak on the ‛Alternate’ spot
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Workman
 | 
			
		||||
        //                   (a regular Workman layout)
 | 
			
		||||
        //  _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_WORKMAN__DEF_BASE // _Activate_ if you want Workman on the ‛Default’ spot
 | 
			
		||||
//#define BASE_WORKMAN__ALT_BASE // _Activate_ if you want Workman on the ‛Alternate’ spot
 | 
			
		||||
        // 
 | 
			
		||||
        //          • Numpad
 | 
			
		||||
        //                   (a numerical keypad, one for left hand and one for right hand)
 | 
			
		||||
        //  _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base.
 | 
			
		||||
  #define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot
 | 
			
		||||
        // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.c
 | 
			
		||||
        //
 | 
			
		||||
        /*                  -2- ➡ Eviscerations ( ① / ② ) ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*          • Single layout
 | 
			
		||||
         *
 | 
			
		||||
         * Removes the ‛Alternate’ base layers, and removes the switch key on _RAR.
 | 
			
		||||
         * ⚠ You have to not define a ‛Alternate’ base layer pair. Define only a ‛Default’ pair.
 | 
			
		||||
         */
 | 
			
		||||
//#define MINIFAN_SINGLE_LAYOUT // _Activate_ to only have the ‛Default’ base layers, _remove_ to also have ‛Alternate’.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -3- ➡ Startup settings ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*          • Alternate Base
 | 
			
		||||
         *
 | 
			
		||||
         * You can define which of the two BASE layers is on when powering up the keyboard.
 | 
			
		||||
         */
 | 
			
		||||
//#define STARTUP_ALTERNATE // Example: For BASES_QWERTY_DVORAK defined: _remove_ is startup in Qwerty, _active_ is
 | 
			
		||||
                            //          startup in Dvorak
 | 
			
		||||
        /*          • Leds on/off at startup.
 | 
			
		||||
         */
 | 
			
		||||
//#define STARTUP_SIDE_LEDS_OFF // _Activate_ to have side leds be off at keyboard startup (when you plug it in / computer powers on).
 | 
			
		||||
//#define STARTUP_MID_LED_OFF // _Activate_ to have middle led be off at keyboard startup.
 | 
			
		||||
        //
 | 
			
		||||
        /*          • Speed measuring
 | 
			
		||||
         */
 | 
			
		||||
//#define STARTUP_SPEED // _Activate_ for default speed measuring on, _remove_ to set off at startup.
 | 
			
		||||
        //
 | 
			
		||||
        /*          • Text size counting ⬅
 | 
			
		||||
         */
 | 
			
		||||
//#define STARTUP_COUNT // _Activate_ for default character/word counting on, _remove_ to set off at startup.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -4- ➡ How many hardware keys 1st row ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * Define how many keys your keyboard has.
 | 
			
		||||
         */
 | 
			
		||||
         // Default               (12x12x12x8 keys)
 | 
			
		||||
         //'Command'              (12x12x12x9 keys) + key on the left
 | 
			
		||||
         //'Arrow'                (12x12x12x9 keys) + key on the right
 | 
			
		||||
         //'South paw' + 'Arrow'  (12x12x12x10 keys)
 | 
			
		||||
//#define MORE_KEY__COMMAND // Additional key 1st row on the left. This hardware layout is called 'Command' or 'South paw'.
 | 
			
		||||
//#define MORE_KEY__ARROW   // Additional key 1st row (counting from row with space-bar) on the right, called 'Arrow' layout. 
 | 
			
		||||
         //
 | 
			
		||||
         // See below for how to define your additional key(s).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -5- ⚠ ≠ Minivan ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * This section is for when you want to flash this keymap unto a board with more
 | 
			
		||||
         * keys than the Minivan has. 
 | 
			
		||||
         *
 | 
			
		||||
         *       Trans-Minivan keymap: 12x12x12x11, 12x12x12x12, 12x12x12x13 keys
 | 
			
		||||
         *                                          Example board: Planck (12x12x12x12)
 | 
			
		||||
         *
 | 
			
		||||
         * It is assumed that you enabled MORE_KEY__ARROW and
 | 
			
		||||
         * MORE_KEY__COMMAND, to get to 12x12x12x10 keys. With this you
 | 
			
		||||
         * can get to one, two or three more keys on row 1, without manually
 | 
			
		||||
         * editing all layers. You could first edit the definition on layers that you have
 | 
			
		||||
         * a specific meaning for these keys, and let the rest be patched with the definitions
 | 
			
		||||
         * here.
 | 
			
		||||
         *
 | 
			
		||||
         * It can help to inspect the preprocessing with > gcc -E keymap.c | less
 | 
			
		||||
         *
 | 
			
		||||
         *                        Planck keyboard
 | 
			
		||||
         *
 | 
			
		||||
         * The identifier TRANSMINIVAN_MIDLEFT could help compile the layout on a Planck keyboard,
 | 
			
		||||
         * if it has a two unit large spacebar. You compile without TRANSMINIVAN_LEFTSIDE in that case.
 | 
			
		||||
         * All keys on the left, row 1 (closest to the user) shift one unit to the left, with TRANS_MIDLEFT
 | 
			
		||||
         * inserted on what would be the left key of the two unit spacebar (assuming that is a key).
 | 
			
		||||
         *
 | 
			
		||||
         *                         Other keyboards formats
 | 
			
		||||
         *
 | 
			
		||||
         * It is always possible to just padd the rows somewhere, if you have even more keys. On the other
 | 
			
		||||
         * hand, to try to cut this layout down to fewer keys than it has at minimum (12x12x12x8), is likely
 | 
			
		||||
         * going to reduce its functionality, and will require some puzzling to keep a well organized BASE
 | 
			
		||||
         * layer, and have “hold key” layer switching work correctly.
 | 
			
		||||
         *
 | 
			
		||||
         * FIXME: not been compiled or tested for any boards.
 | 
			
		||||
         */
 | 
			
		||||
//#define TRANSMINIVAN_LAYOUT ....... // Set this to something with the needed amount of keycodes.
 | 
			
		||||
                          // Your values are inserted here: [ _LTR ] = LAYOUT_redefined (
 | 
			
		||||
                          //                                           ^^^^^^^^^^^^^^^^ (throughout all layers)
 | 
			
		||||
//#define TRANSMINIVAN_LEFTSIDE  // _Activate_ to get yet one more key on the left side row 1
 | 
			
		||||
  #define TRANS_LEFT XXXXXXX     // Define what the TRANSMINIVAN_LEFTSIDE key should be, where it is not otherwise defined.
 | 
			
		||||
                                 // (Ignored if TRANSMINIVAN_LEFTSIDE is _removed_).
 | 
			
		||||
                                 //
 | 
			
		||||
//#define TRANSMINIVAN_MIDLEFT   // _Activate_ to get yet one more key on the first key from center, row 1.
 | 
			
		||||
  #define TRANS_MIDLEFT XXXXXXX  // Define what the TRANSMINIVAN_RIGHTSIDE key should be on all layers at once.
 | 
			
		||||
                                 // (Ignored if TRANSMINIVAN_MIDLEFT is _removed_).
 | 
			
		||||
                                 //
 | 
			
		||||
//#define TRANSMINIVAN_RIGHTSIDE // _Activate_ to get yet one more key on the right side row 1
 | 
			
		||||
  #define TRANS_RIGHT XXXXXXX    // Define what the TRANSMINIVAN_RIGHTSIDE key should be, where it is not otherwise defined.
 | 
			
		||||
                                 // (Ignored if TRANSMINIVAN_RIGHTSIDE is _removed_).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -6- ➡ Defining the meaning of the additional hardware keys ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * Some possibilities you might like:
 | 
			
		||||
         *
 | 
			
		||||
         * ① Number-pad and F-keys layers are only on a toggle. If you want them accessible on a hold key, you can use
 | 
			
		||||
         *   these additional hardware keys. Make sure to use a transparent key on that location on those layers.
 | 
			
		||||
         *
 | 
			
		||||
         * ② You can use the right side additional key for quick access to an arrow/navigation cluster (see below).
 | 
			
		||||
         *
 | 
			
		||||
         * ③ Other uses, such as a delete key and/or a special interface key your system needs.
 | 
			
		||||
         */
 | 
			
		||||
        /*          • Defining the additional key for 'South paw' (also called 'Command')
 | 
			
		||||
         *
 | 
			
		||||
         * Left side additional key. This is ignored if MORE_KEY__COMMAND is not defined.
 | 
			
		||||
         */
 | 
			
		||||
        // Configure here what this key is on the BASE layers (excluding Base Numpad compile option).
 | 
			
		||||
//#define MORE_key1_BASE TG ( _RAR ) // _Activate_ this to get a toggle to layer _RAR.  MO(_RAR) does not follow a BASE switch by ‛Other Base’.
 | 
			
		||||
//#define MORE_key1_BASE KC_DEL      // Could be useful if you like to toggle to certain layers and stay there for a while.
 | 
			
		||||
  #define MORE_key1_BASE KC__XGUI    // (Default) (Using KC__XGUI makes sure it is the *other* GUI, relative to KC__YGUI.)
 | 
			
		||||
        //
 | 
			
		||||
        // Configure here what this key is on all other layers
 | 
			
		||||
//#define MORE_key1      KC_DEL   // Configure here what this key is on all other layers (and Base Numpad).
 | 
			
		||||
  #define MORE_key1      KC__XGUI // (Default)
 | 
			
		||||
        //
 | 
			
		||||
        //
 | 
			
		||||
        /*          • Defining 'Arrow' hardware layout additional keys
 | 
			
		||||
         *
 | 
			
		||||
         * You can create an arrow-cluster with your additional MORE_key2 hardware key on the _MOV layer.
 | 
			
		||||
         * Either way: this new key can toggle to _MOV layer, with the key that on the _MOV layer becomes the down-arrow,
 | 
			
		||||
         * in the middle of an arrow cluster. To do that, uncomment MOREKEY2_ARROW_CLUSTER.
 | 
			
		||||
         * The keys that are by default defined on those keys on _MOV layer, will now be overwritten (they are not typically
 | 
			
		||||
         * that much used there).
 | 
			
		||||
         *
 | 
			
		||||
         * Arrow cluster for 'arrow' layout: _activate_ MOREKEY2_ARROW_CLUSTER and _activate_ #define MORE_key2 _MOV_UP
 | 
			
		||||
         * No arrow cluster for 'arrow' layout: _remove_ MOREKEY2_ARROW_CLUSTER, and set MORE_key2 to whatever you want.
 | 
			
		||||
         */
 | 
			
		||||
  #define MOREKEY2_ARROW_CLUSTER // Arrow cluster on _MOV layer. This is ignored if MORE_KEY__ARROW is not defined.
 | 
			
		||||
                             // This will cost you 'Right Alt' and 'GUI' on the _MOV layer.
 | 
			
		||||
//#define MOREKEY2_ADD_NAVIGATION // Additional navigation keys around arrow cluster MOREKEY2_ARROW_CLUSTER. Ignored if MOREKEY2_ARROW_CLUSTER is not defined.
 | 
			
		||||
                                // Note: this will cause mouse buttons 'BTN4' and 'BTN5' on the _MOV layer to be moved.
 | 
			
		||||
        /*
 | 
			
		||||
         * Define the key you want on the additional key. Leave it to _MOV_UP if you want an arrow cluster, easily
 | 
			
		||||
         * accessed with this key.
 | 
			
		||||
         *
 | 
			
		||||
         * If you want to be able to type all arrow cluster keys with both GUI keys, than you cannot have this additional
 | 
			
		||||
         * arrow cluster around the ‛arrow’ additional hardware key, because it eats away the GUI just to the left of
 | 
			
		||||
         * that additional hardware key. 
 | 
			
		||||
         *
 | 
			
		||||
         * For typing both GUIs with the navigation cluster, you also need the left side additional hardware key. In this
 | 
			
		||||
         * case, you can still set the optional hardware key on the right to _MOV_UP, but that is marginally useful
 | 
			
		||||
         * as you already have that on Left Shift. 
 | 
			
		||||
         *
 | 
			
		||||
         * When aiming to type all normally available keys on a 100% keyboard with all modifiers including GUIs, you
 | 
			
		||||
         * could use the right hand side optional hardware key (‛arrow’), because it causes the right side GUI to be
 | 
			
		||||
         * available there. (This kind of stuff affects rare or even never used keyboard shortcuts.)
 | 
			
		||||
         */
 | 
			
		||||
  #define MORE_key2 _MOV_UP // Right side additional key. This is ignored if MORE_KEY__ARROW is not defined.
 | 
			
		||||
//#define MORE_key2 KC_DEL  // More or less a random suggestion. Harmonizes well with “.DEL” on Numbers Pad.
 | 
			
		||||
                            // It is convenient to have an uncluttered Delete key on the Base layer.
 | 
			
		||||
//#define MORE_key2 <...your choice...> // Right side additional key.
 | 
			
		||||
        //
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -7- ➡ Arrows/Navigation cluster ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*          • Navigation cluster configuration
 | 
			
		||||
         * 
 | 
			
		||||
         * _Activate_ below line to use a "WASD" type layout (on the spot where WASD is in Qwerty).
 | 
			
		||||
         * _Remove_ if you prefer a flat type layout, with arrows in a row, on the right hand.
 | 
			
		||||
         */
 | 
			
		||||
  #define ARROWS_TRIANGLE // Implies mouse is also similarly in a triangle.
 | 
			
		||||
        /*
 | 
			
		||||
         *          • VI editor arrows
 | 
			
		||||
         *
 | 
			
		||||
         * Vi is a famous editor, with its own peculiar text cursor movement arrangement (arrows).
 | 
			
		||||
         * This option modifies the flat arrows layout on the right hand, to be like the “HJKL” 
 | 
			
		||||
         * arrows in the editor vi(1). “HJKL” meaning: the 7th to 10th key on the 3rd row.
 | 
			
		||||
         * The arrows on the additional MOREKEY2_ARROW_CLUSTER also get harmonized to be like vi.
 | 
			
		||||
         */
 | 
			
		||||
//#define VI_SWITCHERYDOO //  You have to _remove_ ARROWS_TRIANGLE, or this gets ignored.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -8- ➡ Number pad Configuration⬅
 | 
			
		||||
         *
 | 
			
		||||
         * This concerns the Numbers Pad layer, which is part of the common layers (not the Bse
 | 
			
		||||
         * layer, which also has a Numbers Pad option).
 | 
			
		||||
         *
 | 
			
		||||
         * There are two compile versions for the number pad layer ‛_PAD’, in the common layers. 
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ the below to have the numbers pad _PAD layer resemble the squared layout of
 | 
			
		||||
         * a numerical keyboard, allowing to type all numbers with the right hand.
 | 
			
		||||
         * _Remove_ the below to have the numbers in this layer follow the layout of the _NSY layer,
 | 
			
		||||
         * with the numbers on a line from left to right on the home row, across both hands.
 | 
			
		||||
         */
 | 
			
		||||
//#define NUMPAD_COMMON_SQUARE // _Activate_ to resemble a one handed numerical keyboard.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                  -9- ➡ Speed measuring ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*
 | 
			
		||||
         * Led color configuration. You can see the speed you have configured below directly on the keyboard,
 | 
			
		||||
         * after you compiled and flashed it.
 | 
			
		||||
         * Set speed measuring to <off>.
 | 
			
		||||
         * Hold the 'Report' key for one second, then release. The keyboard prints a number, which is the
 | 
			
		||||
         * amount of characters per second for which that color is then being shown. Hold it again for
 | 
			
		||||
         * a second, and it increments. Toggle speed measuring on/off to restart.
 | 
			
		||||
         * You can play with the below settings until you like the result.
 | 
			
		||||
         *
 | 
			
		||||
         * The default values (8, 160 respectively) are starting at blue, avoiding confusion with default
 | 
			
		||||
         * cyan for BASE layer, going to purple and further avoiding confusion with text size counting.
 | 
			
		||||
         * Very fast typers could reach red, and then it goes further to yellow, etc.
 | 
			
		||||
         */
 | 
			
		||||
  #define SPEED_COUNTDOWN 25 // After how many keypresses to update the effect(s).
 | 
			
		||||
  #define SPEED_HUE_STEP 8 // For each key/sec faster, the hue value of HSV goes this step further.
 | 
			
		||||
  #define SPEED_HUE_START 160 // The starting hue for 0 k/s (0 = 255 = red).
 | 
			
		||||
        /*
 | 
			
		||||
         * Speed report in words-per-minute (wpm) rather than keystrokes-per-second (k/s). wpm = k/s * ⁶⁰/₅ = k/s * 12
 | 
			
		||||
         */
 | 
			
		||||
  #define WORDS_PER_MINUTE // _Activate_ to get speed report in words-per-minute, _remove_ to get it in keystrokes-per-second (k/s).
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                 -10- ➡ Some alternative keys ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*
 | 
			
		||||
         *          • Right Alt or hold(_RAR) on Base
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ below line to get Right-Alt or Alt-Gr (same thing) on Base.
 | 
			
		||||
         * A short tap results in RAlt briefly pressed, plus Right-Arrow.
 | 
			
		||||
         * When pressed with another key, however short, results only in RAlt, and no Right-Arrow.
 | 
			
		||||
         * Held a little longer than tapping it, results in only RAlt being pressed, no Right-Arrow.
 | 
			
		||||
         *
 | 
			
		||||
         * _Remove_ to have a layer hold key to the _RAR layer there, instead of RAlt, together with tapped Right-Arrow.
 | 
			
		||||
         */
 | 
			
		||||
//#define BASE_RIGHT_ALT // _Activate_ to get Right-Alt instead of _RAR on Base layer.
 | 
			
		||||
        /*
 | 
			
		||||
         *          • GUI left/right
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ below line to have LGUI (also called OS or Win key, etc) where RGUI is, 
 | 
			
		||||
         * and RGUI where LGUI is.
 | 
			
		||||
         */
 | 
			
		||||
//#define SWITCH_GUIS // _Activate_ this if you want LGUI on the BASE layer rather than RGUI, despite that spot being on the right.
 | 
			
		||||
        /*
 | 
			
		||||
         *          • Alternate currency symbol
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ the below to get a Euro symbol, where ƒ (Dutch Guilder) is on the default map (_DRA layer).
 | 
			
		||||
         */
 | 
			
		||||
  #define UNICODE_CURRENCY 0x20ac // Hex number, euro symbol €. The unicode hex number for position ƒ in the default keymap.
 | 
			
		||||
        /*    
 | 
			
		||||
         *          • Check boxes or Pointers
 | 
			
		||||
         *
 | 
			
		||||
         * You can have these symbols (checkboxes):  ☐  ☒  ☑  🗹
 | 
			
		||||
         *                     or these (pointers):  ⮘  ⮙  ⮚  ⮛
 | 
			
		||||
         */
 | 
			
		||||
//#define POINT_ON_CHECKBOXES // _Activate_ to get arrows, _remove_ to get checkboxes on _DRA layer.
 | 
			
		||||
        /*    
 | 
			
		||||
         *          • Switch _ACC/_BON and *left* side _NSY/_DRA hold keys
 | 
			
		||||
         *
 | 
			
		||||
         * If you type a lot of _ACC layer (accented keys), and not much _DRA layer, you might like to
 | 
			
		||||
         * switch the _ACC hold key, and the left side _NSY key, if you find it awkward to reach to the
 | 
			
		||||
         * left with your thumb. These two keys are next to each other. Only the Base layer is affected. 
 | 
			
		||||
         */
 | 
			
		||||
//#define SWITCH_HOLD_ACC_NSY // _Activate_ to switch the *left* _NSY and _ACC layer hold keys, on Base layer.
 | 
			
		||||
        /*    
 | 
			
		||||
         *          • Switch _PAD and _MOV on Left Shift toggle
 | 
			
		||||
         *
 | 
			
		||||
         * Recommended if you use _MOV more than _PAD
 | 
			
		||||
         */
 | 
			
		||||
//#define SWITCH_LSHIFT_PAD_MOV // _Activate_ to make _MOV layer be on the fast tap, and _PAD on a short hold toggle
 | 
			
		||||
        /*    
 | 
			
		||||
         *          • Switch _FUN and _RAR on Right Shift toggle
 | 
			
		||||
         *
 | 
			
		||||
         * Recommended if you use _RAR more than _FUN
 | 
			
		||||
         */
 | 
			
		||||
//#define SWITCH_RSHIFT_FUN_RAR // _Activate_ to make _RAR layer be on the fast tap, and _FUN on a short hold toggle
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                 -11- ➡ Eviscerations ( ② / ② ) ⬅
 | 
			
		||||
         */
 | 
			
		||||
        /*          • Removing the numbers pad _PAD layer
 | 
			
		||||
         *
 | 
			
		||||
         * You may have no use for this common layer, if you have a numerical keypad on the Alternate Base already.
 | 
			
		||||
         *
 | 
			
		||||
         * ⚠ Note: ./base_numpad.h can overrides this setting, if compiled with that ‛Base layers’.
 | 
			
		||||
         */
 | 
			
		||||
//#define REMOVE_PAD // _Activate_ to strip out the _PAD layer, _remove_ to have the _PAD layer.
 | 
			
		||||
        //
 | 
			
		||||
        /*          • Removing one or more of the Unicode layers _ACC, _DRA or_BON
 | 
			
		||||
         */
 | 
			
		||||
        /* Removes the _ACC layer, optionally redirect its key. This can save some 750 bytes. 
 | 
			
		||||
         */
 | 
			
		||||
//#define REMOVE_ACC // _Activate_ to strip out the _ACC layer, _remove_ to have the _ACC layer.
 | 
			
		||||
        /* Unless REMOVE_ACC is _active_, the next defines which redirect the _ACC key(s) are ignored. */
 | 
			
		||||
//#define _ACC_KEY_ALT_LAYER _BON // _Activate_ to make the key(s) that normally goes to _ACC, go to _BON instead.
 | 
			
		||||
//#define _ACC_KEY_ALT_LAYER _DRA // _Activate_ to make the key(s) that normally goes to _ACC, go to _DRA instead.
 | 
			
		||||
        /*
 | 
			
		||||
         *
 | 
			
		||||
         * Removes the _DRA layer, optionally redirect its key. Also saves some 750 bytes.
 | 
			
		||||
         */
 | 
			
		||||
//#define REMOVE_DRA // _Activate_ to strip out the _DRA layer, _remove_ to have the _DRA layer.
 | 
			
		||||
        /* Unless REMOVE_DRA is _active_, the next defines which redirect the _DRA key(s) are ignored. */
 | 
			
		||||
//#define _DRA_KEY_ALT_LAYER _ACC // _Activate_ to make the key(s) that normally goes to _ACC, go to _ACC instead.
 | 
			
		||||
//#define _DRA_KEY_ALT_LAYER _BON // _Activate_ to make the key(s) that normally goes to _ACC, go to _BON instead.
 | 
			
		||||
        /*
 | 
			
		||||
         *
 | 
			
		||||
         * Removes the _BON layer, optionally redirect its key. Also saves some 750 bytes.
 | 
			
		||||
         */
 | 
			
		||||
//#define REMOVE_BON // _Activate_ to strip out the _BON layer, _remove_ to have the _BON layer.
 | 
			
		||||
        /* Unless REMOVE_BON is _active_, the next defines which redirect the _BON key(s) are ignored. */
 | 
			
		||||
//#define _BON_KEY_ALT_LAYER _ACC // _Activate_ to make the key(s) that normally goes to _BON, go to _ACC instead.
 | 
			
		||||
//#define _BON_KEY_ALT_LAYER _DRA // _Activate_ to make the key(s) that normally goes to _BON, go to _DRA instead.
 | 
			
		||||
        /*
 | 
			
		||||
         *
 | 
			
		||||
         *          • Removing groups of characters
 | 
			
		||||
         */
 | 
			
		||||
        /*
 | 
			
		||||
         * The below cut out an amount of symbols on a given layer, to simplify and/or reduce firmware size a little.
 | 
			
		||||
         */
 | 
			
		||||
//#define ALL_DRA_BON_EVISCERATIONS // _Activate_ this to _remove_ the below all at once. (Seems to save only ±114 bytes)
 | 
			
		||||
                                    //
 | 
			
		||||
  #define BOX_DRAWINGS // _Activate_ to get box drawings on _BON. Horizontal lines (━─┄┅) on _DRA are not affected.
 | 
			
		||||
                   // Affected on rows 2 and 3: ┣┫┏┗┃┇┛┓
 | 
			
		||||
                   // Full, 3rd row, boxdr.:  Ctrl   ① ⬅   ② ⬇   ③ ➡  ④ ┏  ⑤  ┓  ⑥ ┃  ⑦ ┇   ⑧ ╋  ⑨    ⓪ ∞   — 
 | 
			
		||||
                   // Full, 2nd row, boxdr.:  LSht   ‹     ›     ÷    ☞ ┗  ≠  ┛  ✗ ┣  ✓ ┫   ⚠    «    »     RSht
 | 
			
		||||
                   //
 | 
			
		||||
                   // 3rd row, no boxdrawing: Ctrl   ① ⬅   ② ⬇   ③ ➡  ④    ⑤     ⑥    ⑦     ⑧    ⑨    ⓪ ∞   — 
 | 
			
		||||
                   // 2nd row, no boxdrawing: LSht   ‹     ›     ÷    ☞    ≠     ✗    ✓     ⚠    «    »     RSht
 | 
			
		||||
                   //
 | 
			
		||||
  #define SUB_SCRIPT_NUMS // _Activate_ to get subscript numbers (₁₂₃…₀) on _DRA.
 | 
			
		||||
                      // Affected on row 3: ₁₂₃₄₅₆₇₈₉₀
 | 
			
		||||
                      // Thinned out 3rd row: xxx   ¹     ²     ³    ⁴    ⁵    ⁶     ⁷     ⁸     ⁹     ⁰   xxx
 | 
			
		||||
                      // Full 3rd row:        xxx   ¹₁    ²₂    ³₃   ⁴₄   ⁵₅   ⁶₆    ⁷₇    ⁸₈    ⁹₉    ⁰₀  xxx
 | 
			
		||||
                      //
 | 
			
		||||
  #define FULL_DRA_2NDROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 2nd row.
 | 
			
		||||
                      // Affected: 「 」 〇 § · 🗹  《 》
 | 
			
		||||
                      // Full 2nd row:        LSht  「━   」─   °〇  •§   …·   ☐ ☒   ☑ 🗹   ¿¡ 《┄   》┅    Rsht
 | 
			
		||||
                      // Thinned out 2nd row: LSht  ━     ─     °    •    …    ☐ ☑   ☑     ¿¡  ┄    ┅      RSht
 | 
			
		||||
                      //
 | 
			
		||||
  #define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row.
 | 
			
		||||
                      // Affected 4th row: „ ≤ ≥ ∅ ¢ ƒ ❦ 🙂 🙁 👍 👎 ⁽ ₍ ⁾ ₎
 | 
			
		||||
                      // Full 4th row:        BASE  “„    ”≤    £≥   ∅ ¢  ±ƒ   ❦ ♥   🙂🙁  👍👎 ⁽₍   ⁾₎    Bkspc
 | 
			
		||||
                      // Thinned out 4th row: BASE  “     ”     £         ±    ♥                           Bkspc
 | 
			
		||||
                      //
 | 
			
		||||
  #define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row.
 | 
			
		||||
                        // Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨  ⃰ ⁻ ⁺ 🄯 ©
 | 
			
		||||
                        // Full 4th row:        BASE  ‛🛠   ’⬆    ¤ 🄯   ∑ ©  ‰‱   ★٭   😊⍨    × ⃰   √    ⁻⁺    Bkspc
 | 
			
		||||
                        // Thinned out 4th row: BASE  ‛     ’⬆               ‰    ★           ×               Bkspc
 | 
			
		||||
                        //
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /*                 -12- ➡ Leds ⬅
 | 
			
		||||
         *
 | 
			
		||||
         * Leds off for the Default Base Layer.
 | 
			
		||||
         * Implies: no indication on Default Base for: Caps-lock, typing speed, typing amount done of a limit.
 | 
			
		||||
         * Speed / typing amount will be visible by going to another layer.
 | 
			
		||||
         */
 | 
			
		||||
//#define LEDS_OFF_BASE_DEF // _Activate_ to make leds dark when in ‛Default Base’ layer.
 | 
			
		||||
 | 
			
		||||
// ------------------------------------- ⬆ --------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
//            There may be configuration options in the layout ./bases_....h file you chose.
 | 
			
		||||
// ------------------------------------- ⬆ --------------------------------------
 | 
			
		||||
 | 
			
		||||
#else                            // (ignore this)
 | 
			
		||||
#    include "./minifan_config_compact.h"
 | 
			
		||||
#endif // MINIFAN_CONFIG_COMPACT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ------------------------------------- ⬇ --------------------------------------
 | 
			
		||||
//                                 Base layer headers
 | 
			
		||||
// ------------------------------------- ⬇ --------------------------------------
 | 
			
		||||
 | 
			
		||||
//                         * Numpad *
 | 
			
		||||
# if defined(BASE_NUMPAD__ALT_BASE)
 | 
			
		||||
#     include "./base_numpad.h" // Numbers pad header
 | 
			
		||||
# endif
 | 
			
		||||
//                         * Qwerty Base Arrow *
 | 
			
		||||
# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE)
 | 
			
		||||
#     include "./base_qwerty_basearrow.h" // Your Keymap header/configuration file.
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here:
 | 
			
		||||
 | 
			
		||||
//                         * YOUR KEYMAP *
 | 
			
		||||
// # if defined(BASE_YOUR_KEYMAP__DEF_BASE) || defined(BASE_YOUR_KEYMAP__ALT_BASE)
 | 
			
		||||
// #     include "./base_YOUR_KEYMAP.h" // Your Keymap header/configuration file.
 | 
			
		||||
// # endif
 | 
			
		||||
 | 
			
		||||
// // ⬆
 | 
			
		||||
 | 
			
		||||
// ------------------------------------- ⬆ --------------------------------------
 | 
			
		||||
// Base layer headers are best #included here, so the preprocessor statements 
 | 
			
		||||
// following the user configuration block can pick up on anything that was set.
 | 
			
		||||
//
 | 
			
		||||
// Example: base_numpad.h _activate_ ‛REMOVE_PAD’. Based upon that, the preprocessor
 | 
			
		||||
// constant ‛_PAD’ is changed into ‛_FUN’ in the below statements.
 | 
			
		||||
// ------------------------------------- ⬆ --------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// The below sets some things up based on the above #defines.
 | 
			
		||||
 | 
			
		||||
// This is sort of a hack. It re-defines _ALT_BASE and _ALT_NSY to point to the same
 | 
			
		||||
// layer as _DEF_BASE and _DEF_NSY, because there are quite a few references to the
 | 
			
		||||
// former and putting #if then around each one complicated the code even more. If needed,
 | 
			
		||||
// it can be changed later. This option already reduces firmware size, so we should be
 | 
			
		||||
// well below the maximum.
 | 
			
		||||
# ifdef MINIFAN_SINGLE_LAYOUT
 | 
			
		||||
#     define _ALT_BASE _DEF_BASE
 | 
			
		||||
#     define _ALT_NSY _DEF_NSY
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// This triggers the compilation of special _HALF_ descramble mode, where you access
 | 
			
		||||
// the Unicode layers without passing them through the descramble system (middle led
 | 
			
		||||
// lit on _RAR_ when cycling through the base layers with ‛Other Base’ key).
 | 
			
		||||
# ifdef BASE_DVORAK_DESCRAMBLE__ALT_BASE
 | 
			
		||||
#     define DVORAK_DESCRAMBLE_HALF
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// Prevent likely erroneous configuration. If no 'Arrow' hardware layout, then not patching in an arrow cluster.
 | 
			
		||||
# if !defined(MORE_KEY__ARROW) && defined(MOREKEY2_ARROW_CLUSTER)
 | 
			
		||||
#     undef MOREKEY2_ARROW_CLUSTER
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if !defined(MORE_KEY__ARROW) && defined(MOREKEY2_ADD_NAVIGATION)
 | 
			
		||||
#     undef MOREKEY2_ADD_NAVIGATION
 | 
			
		||||
# endif
 | 
			
		||||
# if !defined(MOREKEY2_ARROW_CLUSTER) && defined(MOREKEY2_ADD_NAVIGATION)
 | 
			
		||||
#     undef MOREKEY2_ADD_NAVIGATION // Only navigation keys, when the are arrows defined.
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// When choosing 'triangle' arrows, then they go left. Not 'triangle' arrows, than right.
 | 
			
		||||
# ifdef ARROWS_TRIANGLE
 | 
			
		||||
         /* _Activate_ below line to put the arrows on the left, comment out to have arrows right. */
 | 
			
		||||
#     define ARROWS_LEFT // Implies mouse is right
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Set up user GUI choice:
 | 
			
		||||
# ifndef SWITCH_GUIS
 | 
			
		||||
#     define KC__XGUI KC_LGUI // Name logic is alphabetic order left to right …X (…) …Y in layout definitions..
 | 
			
		||||
#     define KC__YGUI KC_RGUI // .. meaning KC__XGUI is left on the keymap, KC__YGUI is right.
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_GUIS
 | 
			
		||||
#     define KC__XGUI KC_RGUI
 | 
			
		||||
#     define KC__YGUI KC_LGUI
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Define the layout macro for the amount of hardware keys.
 | 
			
		||||
// These for Minivan are defined up in the code tree.
 | 
			
		||||
# if !defined(MORE_KEY__COMMAND) && !defined(MORE_KEY__ARROW)
 | 
			
		||||
#     define LAYOUT_redefined LAYOUT                // Default (8 keys on 1st row)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if !defined(MORE_KEY__COMMAND) && defined(MORE_KEY__ARROW)
 | 
			
		||||
#     define LAYOUT_redefined LAYOUT_arrow          // Additional key 1st row on the right. 'Arrow'
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if defined(MORE_KEY__COMMAND) && !defined(MORE_KEY__ARROW)
 | 
			
		||||
#     define LAYOUT_redefined LAYOUT_command        // Additional key 1st row on the left. 'Command'
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if defined(MORE_KEY__COMMAND) && defined(MORE_KEY__ARROW)
 | 
			
		||||
#     define LAYOUT_redefined LAYOUT_arrow_command  // Additional keys 1st row both left and right. 'Arrow' + 'Command'
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LAYOUT 
 | 
			
		||||
#     undef LAYOUT_redefined
 | 
			
		||||
#     define LAYOUT_redefined TRANSMINIVAN_LAYOUT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Process user config setting for speed measuring
 | 
			
		||||
# ifdef STARTUP_SPEED
 | 
			
		||||
#     define SPEED_INIT_VALUE TRUE
 | 
			
		||||
# else
 | 
			
		||||
#     define SPEED_INIT_VALUE FALSE
 | 
			
		||||
# endif
 | 
			
		||||
// Process user config setting for text size measuring
 | 
			
		||||
# ifdef STARTUP_COUNT
 | 
			
		||||
#     define COUNT_INIT_VALUE TRUE
 | 
			
		||||
# else
 | 
			
		||||
#     define COUNT_INIT_VALUE FALSE
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Get all key reductions at once
 | 
			
		||||
# ifdef ALL_DRA_BON_EVISCERATIONS
 | 
			
		||||
#     ifdef BOX_DRAWINGS   
 | 
			
		||||
#         undef BOX_DRAWINGS   
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef SUB_SCRIPT_NUMS
 | 
			
		||||
#         undef SUB_SCRIPT_NUMS
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_2NDROW
 | 
			
		||||
#         undef FULL_DRA_2NDROW
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
#         undef FULL_DRA_4THROW
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_BON_4THROW
 | 
			
		||||
#         undef FULL_BON_4THROW
 | 
			
		||||
#     endif
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// This resolves compiling “TO (_BON)” on the _FUN layer.
 | 
			
		||||
# ifdef REMOVE_BON
 | 
			
		||||
#     undef _BON
 | 
			
		||||
#     ifdef _BON_KEY_ALT_LAYER
 | 
			
		||||
#         define _BON _BON_KEY_ALT_LAYER  // To what user wants
 | 
			
		||||
#     else
 | 
			
		||||
#         define _BON _FUN                // void behavior
 | 
			
		||||
#     endif
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// This resolves compiling “TO (_PAD)” on the _FUN layer.
 | 
			
		||||
# ifdef REMOVE_PAD
 | 
			
		||||
#     undef _PAD
 | 
			
		||||
#     define _PAD _FUN                // void behavior
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// If the _ACC layer hold key has no function anymore because the layers _ACC and _BON to which it
 | 
			
		||||
// switches have been removed, and no alternative use been set, that key reverts to being KC_DEL,
 | 
			
		||||
// and the whole macro CHOLTAP_ACCE it normally activates gets cut.
 | 
			
		||||
# if  defined(REMOVE_ACC) \
 | 
			
		||||
  && !defined(_ACC_KEY_ALT_LAYER) \
 | 
			
		||||
  &&  defined(REMOVE_BON) \
 | 
			
		||||
  && !defined(_BON_KEY_ALT_LAYER)
 | 
			
		||||
#     define CHOLTAP_ACCE KC_DEL // replaces in the keymap
 | 
			
		||||
#     define CHOLTAP_ACCE_NOP    // cuts CHOLTAP_ACCE out of macros
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// Here all Unicode layers _ACC, _DRA and _BON have been removed, and none of their key(s) has
 | 
			
		||||
// been re-assigned to a useful purpose. That makes that whole system redundant, so it is simplified.
 | 
			
		||||
# if  defined(REMOVE_ACC) \
 | 
			
		||||
  && !defined(_ACC_KEY_ALT_LAYER) \
 | 
			
		||||
  &&  defined(REMOVE_DRA) \
 | 
			
		||||
  && !defined(_DRA_KEY_ALT_LAYER) \
 | 
			
		||||
  &&  defined(REMOVE_BON) \
 | 
			
		||||
  && !defined(_BON_KEY_ALT_LAYER)
 | 
			
		||||
#     define CHOLTAP_ACCE KC_DEL // replaces in the keymap
 | 
			
		||||
#     define CHOLTAP_ACCE_NOP    // cuts CHOLTAP_ACCE out of macros
 | 
			
		||||
#     define DUO_HOLD_BASIC   // cuts out the long DUO_HOLD macro, replaces it with a simple 'descramble'-aware hold(_NSY/_DDN) 
 | 
			
		||||
# endif
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue