diff options
Diffstat (limited to 'keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md')
-rw-r--r-- | keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md | 1198 |
1 files changed, 1198 insertions, 0 deletions
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md new file mode 100644 index 0000000000..534f8b30ca --- /dev/null +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -0,0 +1,1198 @@ +# Minivan +A 40% keyboard made first by TheVan Keyboards +_https://thevankeyboards.com_ now taken over by TKC +_https://thekey.company_ + +![Minivan layout all](http://socialism.nl/misc/minivan/minivan-all-layers-visualization_vc.jpg) + +Table of Contents +================= + + 1 Overview + 1.1 Hardware compatibility + 1.2 Software compatibility + 2 'make' example + 3 Base layouts + 3.1 Normal layouts + 3.1.1 Qwerty + 3.1.2 Qwerty with arrows on Base + 3.1.3 Dvorak + 3.1.4 Dvorak² + 3.1.5 Colemak + 3.1.6 Workman + 3.2 Special layouts + 3.2.1 Numbers pad + 4 The common system + 4.1 Main features + 4.2 Layer access + 4.3 Layout in graphics + 4.4 Layout in text + 4.5 Movement layer options + 4.6 Numbers pad layer options + 5 Led colors for layers + 6 Compile options + 7 Language support + 7.1 Input methods + 7.2 Unicode symbols + 8 Speed measuring + 8.1 Speed Led color compilation assist + 9 Text size measuring + 9.1 Text size Usage + 10 Making your own base layer(s) + 11 Eviscerations + 12 Key associations + 13 Trouble shooting + • Compiling + • Unicode + • Leds + • Weird layer jumping + • Difficult/impossible key combinations ? + 14 Why you want this layout + 15 BUGS + 16 Resources + 17 Author(s) + +1 Overview +========== +_A layout for the demanding keyboard user (10 fingers / blind)._ +Designed for intuitive key placement, more symbols than standard English +keyboard, speed and text size measuring. +*400%* _the capability in_ *40%* _the size_ (by key function count). + +For some ‛common layers’ (numbers pad, movement), different versions +can be chosen than shown just below in this by layer view: + +![Minivan illustration Overview layers](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization_1500_vf.jpg) + +By key view: + +![Minivan illustration Overview layers by key](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_2000_vh.jpg) + +1.1 Hardware compatibility +========================== +This keymap functions on _Minivan_ hardware variants with 44, 45 and +46 keys. + +It may be fairly easily ported to 12x12x12x[11|12|13] keyboards. + +1.2 Software compatibility +========================== +This keymap relies on Unicode, in an attempt to avoid the +“dead key” system for accented characters on many non-English keyboards. +You need to have Unicode input working on your computer. + +On a Linux computer operating system, this keymap is designed to work +with this keyboard/language setting: + + > setxkbmap -layout us + > echo $LANG + `en_US.UTF-8` + +If that works for you, you can type the most important characters in +the western European group of languages, native from the keyboard. + +This keymap might not function as expected if you want to use a +different keyboard language setting in your operating system. + +See also chapter 6 _Language support_. + +2 'make' example +================ + … Download the repository, resolve software dependencies etc.. + … To change compile options: edit user_config.h (or `minifan_config_compact.h`) + > cd […]/qmk_firmware + > make thevankeyboards/minivan:josjoha + > su + # dfu-programmer atmega32u4 erase + # dfu-programmer atmega32u4 flash thevankeyboards_minivan_josjoha.hex + # dfu-programmer atmega32u4 start + +This “Mini*fan*” layout is explained in several readme files, with +links to the others files in this readme. The common system is explained +in this readme.md file. The options for the letters and number/symbol +layer pairs (two pairs in the dual layout) are explained in their +separate readme file, see immediately below. Compile options are detailed +in `./user_config.h`. + +3 Base layouts +============== +Layouts are presented here in a sort of simplified keycaps view. If a +base layer pair has its own user configuration options, they are located +in `./base_NAME.h`. + +3.1 Normal layouts +------------------ +These are layouts for commonly used configurations, such as Qwerty or Dvorak. + +3.1.1 Qwerty +------------ + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_qwerty_vc.jpg) + +For the readme about the Qwerty version, see ➡ ![base_qwerty.md](./base_qwerty.md) ⬅ + +3.1.2 Qwerty with arrows on Base +-------------------------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_qwerty_basearrow_vd.jpg) + +For the readme about this Qwerty variation, see ➡ ![base_qwerty_basearrow.md](./base_qwerty_basearrow.md) ⬅ + +3.1.3 Dvorak +------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_dvorak_vc.jpg) + +For the readme about the Dvorak version, see ➡ ![base_dvorak.md](./base_dvorak.md) ⬅ + +3.1.4 Dvorak² +------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_dvorak_descramble_vb.jpg) + +Regular Dvorak for a computer already set to Dvorak. + +For the readme about the Dvorak² version, see ➡ ![base_dvorak_descramble.md](./base_dvorak_descramble.md) ⬅ + +3.1.5 Colemak +------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_colemak_vc.jpg) + +For the readme about the Colemak version, see ➡ ![base_colemak.md](./base_colemak.md) ⬅ + +3.1.6 Workman +------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_workman_va.jpg) + +For the readme about the Workman version, see ➡ ![base_workman.md](./base_workman.md) ⬅ + +3.2 Special layouts +=================== +These are unusual layouts. Most people will probably only want one of these on the ‛Alternate’ layout, +with a normal layout on ‛Default’. How this works is explained below. + +3.2.1 Numbers pad +----------------- + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_numpad_single_va.jpg) + +For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad.md) ⬅ + + +4 The common system +=================== + +![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_common_vc.jpg) + +4.1 Main features +----------------- + • Dual layout. Several layouts to choose from (example: Qwerty + and Dvorak dual layout). Easy to add more layouts. + • Expanded character set with western European accented characters + (ëøßœç…); sub- super-script numbers (¹₂…) quite a few additional + symbols such as 《 ± • ☑ ❦ √ ┣ ≠ 》… + • Typing speed measuring. Led changes color with your speed. You can + ask for a report on your current and average typing speeds. + • Text size measuring. If you want to type some amount of words or + characters, the middle led will go from green to red as you go, + and prevent you going over the limit. + +4.2 Layer access +---------------- +This graphic shows how layers are reached from the ‛Default base’ layer. + +![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_1500_vf.jpg) + +You can switch between the default base layer (typically letters), and +another base layer, the alternate base layer (also typically letters), +on the `_RAR` layer with key ‛Other Base’. Each base layer comes +with its own second layer, typically numbers-symbols. The other +layers are used common between the default and alternate base layers. + +The Base layers and their numbers layer are detailed in files beginning +with `./base_…` (links below). + + Layer overview: Defined in: + + • Default Letters / Base ┓ + • Default Numbers-symbols ┃ + ┣ ./base_….c/md files + • Alternate Letters / Base ┃ + • Alternate numbers-symbols layout ┛ + + • Numbers pad ┓ + • Accented characters ┃ + • Additional Unicode characters ┃ + • More Additional Unicode characters ┣ ./keymap.c(etc)/readme.md + • Movement arrows/mouse ┃ “The common system” + • Function keys / layer toggles ┃ + • Power, media, Speed, Text size, etc. ┛ + +There are some additional layer switching keys due to key transparency +artefacts, allowing for example to go back to ‛Base’ from a toggled `_MOV` +layer with what is the ‛Enter’ key on Base. + +4.3 Layout in graphics +---------------------- + +![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_base_layer_hide_def_base_ve.jpg) +Layer: `DEF_BASE` + +![Minivan layout Image NSYdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_hide_def_base_vb.jpg) +Layer: `DEF_NSY` + +![Minivan layout Image BASEalt](http://socialism.nl/misc/minivan/minivan_base_layer_hide_alt_base_ve.jpg) +Layer: `ALT_BASE` + +![Minivan layout Image NSYalt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hide_alt_base_vb.jpg) +Layer: `ALT_NSY` + +![Minivan layout Image PAD](http://socialism.nl/misc/minivan/minivan_pad_layer_vc.jpg) +Layer: `_PAD` + +^ See below for a different configuration of the numbers pad keys. See above for a Base layout for a numbers pad. + +![Minivan layout Image ACC](http://socialism.nl/misc/minivan/minivan_acc_layer_vd.jpg) +Layer: `_ACC` + +![Minivan layout Image DRA](http://socialism.nl/misc/minivan/minivan_dra_layer_vd.jpg) +Layer: `_DRA` + +![Minivan layout Image BON](http://socialism.nl/misc/minivan/minivan_bon_layer_vc.jpg) +Layer: `_BON` + +![Minivan layout Image FUN](http://socialism.nl/misc/minivan/minivan_fun_layer_vb.jpg) +Layer: `_FUN` + +![Minivan layout Image MOV](http://socialism.nl/misc/minivan/minivan_mov_layer_triangle_hw-basic-and-allkeys_vb.jpg) +Layer: `_MOV` + +^ There is an alternative flat arrow configuration for this layer (see below), +and options to compile with the 'arrow' hardware layout. + +![Minivan layout Image RAR](http://socialism.nl/misc/minivan/minivan_rar_layer_vc.jpg) +Layer: `_RAR` + +4.4 Layout in text +------------------ + Layer _DEF_BASE (Letters layer, see ./base* files for what comes on ‛__’) + | Right hand + <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger + -o- <|> ... //-o- Base access + Esc __ __ __ __ __ | __ __ __ __ __ Bksp + Tab+LCtl __ __ __ __ __ | __ __ __ __ __ __ + LSht+_PAD __ __ __ __ __ | __ __ __ __ __ 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`, `_MOV`), 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. + +There is an uncluttered _Tab_ on both the `_DRA` and `_ACC` layers. They can be modified with _Control_ there. + +Holding both `_..._NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`. + +Holding either one of the just above mentioned `_..._NSY` layer keys (<3 and 3>), with the `_ACC` layer key +(on <2) results in layer `_BON`. + +- - - + + Layer _..._NSY (Numbers and SYmbols, ./base* files for what comes on ‛__’) + + <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2> + -*- <|> //(toggle) Access on _FUN + BASE __ __ __ __ __ | __ __ __ __ __ Bspc + Tab+LCtl __ __ __ __ __ | __ __ __ __ __ __+RCtl + -+LSht __ __ __ __ __ | __ __ __ __ __ __+RSht + --------------------------------------------------------------------------- + Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt + -*- <|> -*- //(hold) Access on _DEF_BASE + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +- - - + + Layer _FUN (F-keys, Layer access) + + <pink2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + toggl toggl set toggl toggl toggl | toggl toggl // Type of layer switch + <|> + BASE: NUMS: _PAD _ACC _DRA _BON | _MOV _RAR xxx xxx xxx Bspc //':' are dynamic ... + LCtl F1 F2 F3 F4 F5 | F6 F7 F8 F9 F10 RCtl + LSht F11 F12 F13 F14 F15 | F16 F17 F18 F19 F20 RSht + ---------------------------------------------------------------------*-- //-*- toggle on Base + LAlt LCtl& LCtl& LSht& | FUN< +LCtl&LSht RGUI RAlt //... < toggle 'stay' + LSht LAlt LAlt | &LAlt + +xxx +xxx +xxx | +xxx + <|> + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +Remarks. FUN< toggles an immediate return to the Base layer after pressing an F-key, +or staying on the `_FUN` layer. Right led yellow indicates F-layer stays active. + +- - - + +This is the _triangle_ configuration for arrows, arrow are on left hand (WASD): + + Layer _MOV (MOVement, mouse movement on right hand) + + <pinky2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + <|>-*- + Base PgDn Up PgUp Home Btn3 | xxx WhDn MsUp WhU WhLft Bksp + LCtl Left Down Right End Btn1 | Btn1 MsLft MsDn MsRht WhRht RCtl + LSht xxx Acc2 Acc1 Acc0 Btn2 | Btn2 Btn3 Btn4 Btn5 xxx RSht + ------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp PgDn RGUI RAlt + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (DOWN) + + +Remarks. For the Minivan _arrow_ hardware layout with arrow cluster, you get this on ‛Base’: + + (…) + LSht+_PAD ;: qQ jJ kK xX | bB mM wW vV zZ RSht+_FUN + ------------------------------------------------------------------------------- + Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) RGUI _MOV Right;_RAR + ^^^^ // new key (toggle) + +… and this on `_MOV` for the _triangle_ configuration: + + (…) + LSht*- xxx Acc2 Acc1 Acc0 Btn2 | Btn2 Btn3 Btn4 Btn5 _Up_ RSht + --------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp PgDn _Left__Down__Right_ + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> _±_ 1> + ^ + (LGUI) + +… or this on `_MOV` for the _triangle_ arrow configuration with additional _navigation_ keys: + + BASE PgDn Up PgUp Home _Btn4_ | xxx WhDn MsUp WhU WhLft Bksp + LCtl Left Down Right End Btn1 | Btn1 MsLft MsDn MsRht WhRht RCtl + LSht*- xxx Acc2 Acc1 Acc0 _Btn5_ | Btn2 Btn3 _Home__PgUp_ _Up_ _PgDn_ + --------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp _End_ _Left__Down__Right_ + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> _±_ 1> + ^ + (LGUI) + + +This is the _flat_ configuration for arrows, arrow are on right hand: + + <pinky2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + <|>-*- + BASE WLft WDn WUp WRht xxx | Btn3 PgUp Home End PgDn Bksp + LCtl MLft MDn MUp MRht Btn1 | Btn1 Left Up Down Right RCtl + LSht*- Btn5 Btn4 Btn3 Butn2 xxx | Btn2 Acc0 Acc1 Acc2 xxx RSht + ------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp PgDn RGUI RAlt + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (DOWN) + +For the Minivan _arrow_ hardware layout with _flat_ arrow cluster, you get this on `_MOV`: + + (…) + BASE WLft WDn WUp WRht xxx | Btn3 PgUp Home End PgDn Bksp + LCtl MLft MDn MUp MRht Btn1 | Btn1 Left Up Down Right RCtl + LSht*- Btn5 Btn4 Btn3 Butn2 xxx | Btn2 Acc0 Acc1 Acc2 xxx RSht + --------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp _Left_ _UP_ _Down__Right_ + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> _±_ 1> + ^ + (LGUI) + +… or this on `_MOV` for the _flat_ arrow configuration with additional _navigation_ keys: + + BASE WLft WDn WUp WRht xxx |_Acc2_ PgUp Home End PgDn Bksp + LCtl MLft MDn MUp MRht Btn1 | Btn1 Left Up Down Right RCtl + LSht*- Btn5 Btn4 Btn3 Butn2 xxx |_Acc1_ Acc0 _PgUp__Home__End_ _PgDn_ + --------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp _Left_ _UP_ _Down__Right_ + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> _±_ 1> + ^ + (LGUI) + +… or this on `_MOV` for the _flat_ arrow configuration, […], and vi(1) layout: + + <pinky2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + <|>-*- + BASE WLft WDn WUp WRht xxx |_Acc2_ PgUp Home End PgDn Bksp + LCtl MLft MDn MUp MRht Btn1 | Left Down Up Right Btn1 RCtl // vi as in Qwerty + LSht*- Btn5 Btn4 Btn3 Butn2 xxx |_Acc1_ Acc0 _PgUp__Home__End_ _PgDn_ + --------------------------------------------------------------------------- + LAlt Del Ent ___ | PgUp _Left_ _Down__Up_ _Right_ // vi as in Qwerty + -*-<|> + <1 ± <2 <3 <4 | 4> 3> 2> _±_ 1> + ^ + (LGUI) + +For the 'arrow' hardware layout (additional key on the right), keys on the first +row are sacrificed and lost. The right most key on the second row is also lost. +The two keys on places 3 and 4 when counting from the right on the second row, +are being moved to the spots for Btn2 and Btn3 on the hand that also has the +arrows (those keys are otherwise twice defined for left and right hand). + +- - - + + _RAR (RARe keys. Power keys, Unicode mode, Alternate Base, Media, Brightness, Speed, Size, leds, …) + + <pink2<pinky <ring <middl <indexx<indx2| indx2>index>middl>ring> pinky> pink2> + <|> -*- //(toggle) on _FUN + BASE Cnt/Mx Cnull CWmin CRprt Speed | SRprt Play Next Prev Stop RSht(•) + CapsL Power• Wake• Sleep• Pause• ScrLk | PrtSc xxx Vol+ Vol- Mute Insert // • requires Shift + ☑ uLNX uBSD uOSX uWIN uWNC | xxx xxx Bri+ Bri- xxx APP // Ü(nicode) tester + ---------------------------------------------------------------------------- + SLed MLeds LGUI xxx | !Alter xxx RGUI ___ // Mid-led, Side-leds, !Alternate + <|> -*- // (Hold) on Base + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +Remarks. !Alter switches between normal and alternate Base layer. + +☑ is a Unicode tester key. uLNX for Linux Unicode input encoding, uBSD +for BSD Unix, uWIN for Windos, uWNC for another Windos encoding. The +change is retained between on/off power cycles. + +MLed switches on/off the middle led, SLeds switches on/off the side leds. + +The keys marked with • require Shift to be activated, as a means of +preventing accidents. Shift here is on (Base) 'Backspace' (upper/right key) +which also reduces accidents (combinations which are never pressed +normally). If you press these keys without 'shift' they print their own +name between angled brackets. Example: pressing the 2nd key on the 3rd +row prints `“<POWER>”`. + +Bri+, Bri-: screen brightness (if your system supports it.) + +Speed: toggles speed measuring on/off. SRprt: writes your speed. +See topic about Speed measuring. + +Cnt/Mx, Cnull CWmin, CRprt: text size measuring. See topic. + +- - - + + + Layer _PAD Numbers Pad (special symbol versions; regular '1' is not the same as this numpad '1', etc) + + <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + -*- <|> //(toggle) on _FUN + BASE xxx xxx .DEL 4LEFT 2DOWN | 8UP 6RGHT * xxx xxx Bspc + LCtl 1END 2DOWN 3PGDN 4LEFT 5 | 6RGHT 7HOME 8UP 9PGUP 0INS - + LSht xxx xxx / xxx = | + 3PGDN 1END 7HOME 9PGUP RSht + -*------------------------------------------------------------------------- //-*- toggle on Base + LAlt Del Tab ENT | NUML xxx RGUI RAlt + <|> + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +Remarks: The keys between `.DEL` and `*`, `+` and `RSht` constitute sort of +navigation clusters, to make it easier to find the number pad versions thereof. + +This is the variety for `_PAD` layer, which resembles a numerical keypad: + + Layer _PAD (Number pad, square layout) + + <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2> + <|> + BASE xxx xxx xxx xxx xxx | = 7HOME 8UP 9PGUP - Bspc + LCtl xxx xxx xxx xxx xxx | * 4LEFT 5 6RGHT + RCtl + LSht xxx xxx xxx xxx xxx | / 1END 2DOWN 3PGDN , RSht + ------------------------------------------------------------------------ + LAlt Del Tab ENT | NUML 0INS .DEL RAlt + <|> + <1 ± <2 <3 <4 | 4> 3> ± 2> 1> + ^ ^ + (LGUI) (RGUI)¹ + + ₁) Note anomaly, see Base Numpad for details `./base_numpad.md`. + Different placement and different meaning, compared to the usual common layers. + +- - - + + + Layer _ACC (ACCented characters, see _RAR layer for input modes) + + <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + -*- <|> //(toggle) on _FUN + BASE áÁ óÓ éÉ úÚ íÍ | ýÝ ijIJ çÇ øØ åÅ Bksp + LCTL(Tab) äÄ öÖ ëË üÜ ïÏ | ÿŸ œŒ æÆ ñÑ ß μ + LSht àÀ òÒ èÈ ùÙ ìÌ | îÎ ûÛ êÊ ôÔ â RSht + ---------------------------------------------------------------------------- + LAlt ___ ___ Ent | Spc ___ ___ RAlt + -*- <|> //(hold) on Base + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + … … + +- - - + + + Layer _DRA (DRAwings, whatever else (rendering width might vary in different applications)) + + <pink2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + -*- <|> //(toggle) on _FUN + BASE “„ ”≤ £≥ ∅ ¢ ±ƒ | ❦♥ 🙂🙁 👍👎 ⁽₍ ⁾₎ Bspc + Tab ¹₁ ²₂ ³₃ ⁴₄ ⁵₅ | ⁶₆ ⁷₇ ⁸₈ ⁹₉ ⁰₀ RCTL + LSht 「━ 」─ °〇 •§ …· | ☐☒ ☑🗹 ¿¡ 《┄ 》┅ RSht // ☐ ☒ ☑ 🗹 or ⮘ ⮙ ⮚ ⮛ + ------------------------------------------------------------------------- + LAlt ___ ___ Ent | Spc ___ ___ RAlt + -*- <|> -*- //(hold) on Base + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +Remarks. ☐ ☒ ☑ 🗹 or ⮘ ⮙ ⮚ ⮛ +- - - + + Layer _BON (Bonus layer, a variety of more stuffs.) + + <pink2<pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pink2> + -*- <|> //(toggle) on _FUN + BASE ‛ 🛠 ’ ⬆ ¤ 🄯 ∑ © ‰ ‱ | ★ ٭ 😊 ⍨ × ⃰ √ ⁻ ⁺ Bksp + `~ ① ⬅ ② ⬇ ③ ➡ ④ ┏ ⑤ ┓ | ⑥ ┃ ⑦ ┇ ⑧ ╋ ⑨ ⓪ ∞ — ≈ // — is a dash (larger) + LSht ‹ › ÷ ☞ ┗ ≠ ┛ | ✗ ┣ ✓ ┫ ⚠ « » RSht + ------------------------------------------------------------------------- + Left ___ ___ Ent | Spc ___ ___ Right + -*- -*- <|> -*- // Activation on Base + <1 ± <2 <3 <4 | 4> 3> 2> ± 1> + ^ ^ + (LGUI) (_MOV) + +- - - + +4.5 Movement layer options +-------------------------- +The movement layer (`_MOV`) has several configuration options. You +can either have _triangle_ configuration arrows on the _left_ hand +(with navigation keys around it), or a _flat_ arrow configuration on +the _right_ hand (with navigation above it). + +You can configure for the _arrow_ hardware layout (one additional hardware +key on the right). The additional key on the Base layer can toggle to the +movement layer, and than becomes part of the arrow cluster. For both +versions (_triangle_ arrows left hand or _flat_ arrows right hand) you +can compile this second arrow cluster to be completed with navigation keys +(Home, End, PageUp, PageDown). + +![Minivan layout Image MOV 3 defaultf](http://socialism.nl/misc/minivan/minivan_mov_layer_flat_hw-basic_vb.jpg) + +![Minivan layout Image MOV 3b default](http://socialism.nl/misc/minivan/minivan_mov_layer_triangle_hw-basic_vb.jpg) + +^ `#define ARROWS_TRIANGLE` + +![Minivan illustration BASE towards 3](http://socialism.nl/misc/minivan/minivan_layer_illustration_base_mov_hw-arrow_vb.jpg) + +^ Illustration of accessing the arrows/navigation with a key on the Base layer + +![Minivan layout Image MOV 3b + arrow](http://socialism.nl/misc/minivan/minivan_mov_layer_hardw-arrow_triangle_vb.jpg) + +^ `#define ARROWS_TRIANGLE`, `MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`, `MORE_key2 _MOV_UP` + +![Minivan layout Image MOV 3b + navig](http://socialism.nl/misc/minivan/minivan_mov_layer_hardw-arrow_triangle_addnav_vb.jpg) + +^ `#define ARROWS_TRIANGLE`, `MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`, `MOREKEY2_ADD_NAVIGATION`, `MORE_key2 _MOV_UP` (note change on previously BTN2/3) + +![Minivan layout Image MOV 3 + arrows](http://socialism.nl/misc/minivan/minivan_mov_layer_hardw-arrow_flat_vb.jpg) + +^ `#define MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`, `MORE_key2 _MOV_UP` + +![Minivan layout Image MOV 3 + naviga](http://socialism.nl/misc/minivan/minivan_mov_layer_hardw-arrow_flat_addnav_vb.jpg) + +^ `#define MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`, `MOREKEY2_ADD_NAVIGATION`, `MORE_key2 _MOV_UP` (note change on previously BTN2/3) + +![Minivan layout Image MOV 3 vi arrow](http://socialism.nl/misc/minivan/minivan_mov_layer_vi_vb.jpg) + +^ `#define` \[`MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`\] `VI_SWITCHERYDOO`, `#undef ARROWS_TRIANGLE` + +4.6 Numbers pad layer options +----------------------------- +This concerns the numbers pad layer, the one that is part of the common layers. + +![Minivan layout Image PAD](http://socialism.nl/misc/minivan/minivan_pad_layer_vc.jpg) + +![Minivan layout Image PAD squared](http://socialism.nl/misc/minivan/minivan_pad_layer_squared_vb.jpg) + +^ `#define NUMPAD_COMMON_SQUARE` + +5 Led colors for layers +======================= + • letters Led: low-white/teal/off⁽¹⁾ _DEF_BASE "Default base" + • letters (alternate) Led: off/teal/low-white _ALT_BASE "Alternate base" + • numbers Led: blue/blue/blue _DEF_NSY "Default Numbers SYmbols" + • numbers (alternate) Led: blue/blue/low-white _ALT_NSY "Alternate Numbers SYmbols" + • number pad symbol versions Led: green/low-white/blue ⁽²⁾ _PAD "numbers PAD" + • accented characters é, ø, ß … Led: cyan/cyan/cyan _ACC "ACCented" + • Unicode symbols, ¹, ±, ° … Led: yellow/yellow/yellow _DRA "DRAwings" + • Unicode symbols, ①, ‰, ÷ … Led: off/yellow/off _BON "Bonus" + • function keys, Led: red/red/orange ⁽³⁾ _FUN "FUNction keys" + • and a movement layer Led: green/green/green _MOV "MOVement" + • keys like Power, Play, Led: white/purple/purple ⁽⁴⁾ _RAR "RARe keys" + + Leds: + • ⁽¹⁾ The low-white led is bright-white when capslock is on. Optionally the middle led (cyan) can + show the color of the last layer that was active. + • ⁽²⁾ The colors are reversed blue/low-white/green when numlock is on. + Left led color memory aid: same as either numbers or movement layer for numlock on/off. + • ⁽³⁾ The colors are reversed to orange/red/red when set to de-activate after one F-key press. + • ⁽⁴⁾ The colors are reversed purple/purple/white, indicating which of the two base layers + is active (see below). + • Middle led: Breathing effect. When not breathing, keyboard is not working normally with the computer. + - When speed measurement is active, the middle led color indicates the speed, unless + text size counting set to a maximum is active. + - When text size counting is active and set to a maximum amount, the middle led color + indicates progress to the limit from green to red, flipping white/red on the limit. + - When on Base layer it shows a teal color, or (compile option) the layer most recently active. + - When the left/right leds are off, when on Base, it shows a teal color (not last active), even + if so compiled. + • Leds can be switched on/off on the _RAR layer (SLeds, MLed). + + +6 Compile options +================= + Layout + + • Several layouts to choose from: Qwerty, Dvorak, Colemak, Workman, Numpad. + + • You can use the keyboard with two different letters/number-symbols layouts. + + Hardware + + • Hardware key configurations: _default_ (44), _arrow_ (45), _south paw_ (45), _arrow_ + _south paw_ (46). + +![Minivan illustration 0](http://socialism.nl/misc/minivan/minivan_illustration_arrow_southpaw.jpg) + (On the `_RAR` layer, the additional _south paw_ key is more to the right.) + + • What the additional hardware keys for _arrow,_ _south paw_ should be. + + Navigation cluster + + • An arrow cluster for _arrow_ hardware configuration, on the `_MOV` layer. + + • All navigation keys around _arrow_ hardware configuration arrow cluster on `_MOV` layer. + + • Navigation cluster in a triangle (WASD) (left hand), or flat layout with optional vi(1) layout. + + Numpad (in common layers) + + • Numpad with numbers in a row. + + • Numpad with layers in a block form. + + Special functions + + • Set speed measuring on/off at keyboard startup. + + • Set text size measuring on/off at keyboard startup. + + Changing symbols + + • Switching the GUIs left/right, and some other specific key changes. + + • Reduce firmware size/bloat: remove or eviscerate Unicode layer(s). + + For the complete list, see `./user_config.h`. + +7 Language support +================== + +7.1 Input methods +================= +There seem to generally be two ways in QMK for typing a language other than English. +One is to use a language specific remapping on the computer operating side, and +to use the QMK supplied symbols in the keymaps. This may include the use of a “dead key”. +Presumably you can also still use the Unicode symbols. + +⚠ *There are currently no such Base pair layouts available. If this is the method you want, +you may want to look elsewhere.* + +The other way is to type the additional symbols in Unicode. _The computer +operating must understand these special sequences._ Several Unicode +input modes are available, which can be changed while the keyboard is +running. There is no need for a “dead key”. The language setting +in the computer operating system can be set to English. This layout is +designed for this method, to avoid the dead key problem. + +7.2 Unicode symbols +=================== +For the remainder of this chapter the Unicode input method is assumed. + +You may be able to type your language, with the help of some of the Unicode +layers and one of these layouts: Qwerty, Dvorak, Coleman, Workman. The following +languages might work for you this way. + + • Dutch (éëèïijí) + • English (—“”‛’) + • French (çœæéèàòùîûêôâëïüÿ) + • German (äöüß) + • Norwegian, Danish (œæøå, éêèëóêò, üáà …) + • Spanish (¿¡ñ) + • Swedish (äåö …) + +The following quotation marks are available, which seems it would cover these languages: + + 'test' "test" “test” „test” ‛test’ ,test’¹ «test» ‹test› 《test》 「test」 — test + + ¹) Left side is a basic comma. + +See the `_ACC` _accented characters_ layer for all characters with diacretic markings. +If you miss a symbol, you could replace one you don't use and add it yourself (by +reprogramming the source code). + +8 Speed measuring +================= + ‛Speed’ starts speed measuring. + ‛SRprt’ stands for ‛Speed Report’: + • Tap to get your speed report. + • Hold for a while for led color compilation (see below). + ☞ Text size counting (see below) middle led colors take precedence, + when a maximum is set, over layer colors or speed measurement. + +With the key ‛Speed’ on the `_RAR` layer, the speed of your latest +completed batch of 25 keypresses is computed, as well as the average of +all your batches of 25 keys. The speed is displayed as the color of the +middle led, which otherwise shows the layer color. A bright white middle +led indicates ‛Speed’ has just been activated. + +With the key ‛SRprt’ (short for ‛Speed Report’), the keyboard +will write your typing speed either in keystrokes per second (k/s) +or words-per-minute (wpm), depending on your compilation configuration. + +“Keystrokes per second” uses the following format: `<A k/s B.B k/s +Cx25keys>`. A is the amount of key presses per second (k/s) of your +last batch, B.B is your average over the last C batches of keys. +When using “Words per minute”, A is in word-per-minute, B is also +in words-per-minute: `<A wpm B wpm Cx25keys>`, no decimal precision. +Example: <150wpm;108wpm20x25keys> + +Batches with 0 k/s are not counted to the average. You can take a +longer break without it affecting your average. + +8.1 Speed Led color compilation assist +-------------------------------------- +If you hold the ‛Speed Report’ key for one second, it will increment the +speed, and led color accordingly. This can be helpful when configuring +your speed measuring compile settings. This works best with speed +measuring set off. + +9 Text size measuring +===================== + ‛Cnt/Mx’ stands for ‛Count/Maximum’: + • Tap to start counting, tap again to suspend. + • Hold > 0.5 seconds for maximum menu. + ‛Cnull’ stands for ‛Count null’: + • Tap to set the counts to zero. + ‛CWmin’ stands for ‛Count Word minus’: + • Tap to detract one word from the word count. + • Hold > 0.5 seconds to detract 10 words. + ‛CRprt’ stands for ‛Count Report’: + • Tap to get a counting report. + ☞ ‛Count’ and ‛Speed’ (see above) reports get added to the + character count, but not to the word count. + ☞ Auto-repeating keys do not get counted as characters. + +You can count your text by character and word, by activating the key +‛Count’ on the `_RAR` layer. Pressing ‛Count’ again will suspend +counting, pressing it yet again resumes where the count left off earlier. +The middle led turns cyan when no maximum is set (see below), +or to green when it is set. + +You can set a maximum to type, with the ‛Cnt/Mx’ key. In your +editor (or wherever typing these characters is harmless) you will get +the following menu by pressing the ‛Cnt/MX’ key for at least half +a second: `<Nc|w>`. In here: *N* stands for your numerical input, *c* +for a maximum count in *characters* or *w* for a maximum in *words.* + +Start typing a number, finish with either *c* or *w* to make the maximum +be counted in either characters or words. If you want to leave the +menu before giving *c* or *w*, enter a *dot* ‛.’ or ‛Escape’, +which will leave the maximum value at 0 (zero). A maximum value of zero +implies there is no maximum. + +Setting a maximum of 1000 characters looks like so: + + Hold ‛Cnt/MX’ results in: `<Nc|w>` + Then type “1000” results in: `<Nc|w>1000` + Then type “c” results in: `<Nc|w>1000->1000c` + At this point the keyboard is out of this special input menu. + + The keyboard indicates what it accepted as your input, by + repeating the number, just before your last input is being printed. + +With a maximum established, the middle led color goes from green to red, +as you type. When the maximum is reached, the keyboard will output a +Backspace character for every key you subsequently press, making it +impossible to go any further, until text size counting has been disabled, +or the count is reduced. The middle led changes color between red and +white while at the maximum set size, for every new input character. + +To get your word count report, press ‛CReport’ short for: ‛Count +Report’. It comes in the form: `<Ac;Bw>`, where A is your character +count, and B is your word count. Example: `<5420c;547w>`. + +When a maximum is established, the report will only be given in +either characters or words, and the maximum is given with it, like so: +`<66w>[200w]`. 66 words have been written, a maximum of 200 words has +been set. + +If you have a maximum established and use it across different articles, +you no longer have the total count. You can activate speed measuring, +which in its report includes the total characters pressed. + +9.1 Text size Usage +------------------- +It is assumed that you will take the report in the document you are +editing, and then delete it. If you do character counting, the value of +the report itself is added to the character count. Therefore you should +delete that without using an auto-repeating on the deletion key. That +way the characters are subtracted again. + +If you count in words, the report is not added to the word count. You +can delete it however you want. + +This works the same for a ‛*Speed* Report’ you might like to take. +You can take it in the document, and then delete it in the same, +without affecting the text size counting in characters or words. +When deleting keys with Backspace or Delete, the character count goes down +accordingly, the word count does not. + +Words are counted by counting Space and Enter key presses. Immediately +repeating blanks do not add to the word count. You can only manually +subtract from the word count, using the key ‛CWmin’ short for ‛Count +Word minus’. This means that if you delete sections in your document, +you need to manually subtract the same words. + +Example: after typing something and then typing `<Enter>` twice to start a +new paragraph, counts for one word. When deleting three words with their +three blank areas, then tapping ‛Count Word minus’ three times, +should result in an accurate word count. To add words to the count, +type mock ones and then delete them: “x x x x” adds *three* words, +“y y y ” also adds three words (three separate blank spaces). + +Layer changes, shift and unusual/complex keys do not get counted. +Navigation, arrow and mouse keys do not get counted. Auto-repeating +of keys does not affect the *character* count, therefore should be avoided +if you want to count in characters. + +10 Making your own base layer(s) +================================ +You can insert your own `_DEF_BASE`, `_DEF_NSY` and/or `_ALT_BASE`, `_ALT_NSY` +Base plus number/symbols layer pairs, integrate it nicely with the rest +of the code, and re-define a special characters layer to go with it if +you want (etc). The idea is to make it easy to change the alphanumerical +keys, while leaving the modifiers, layer switch keys etc. the same. +`YOUR_KEYMAP` stands for a name you choose. + +First we will look at a simple keymap, without its own configuration +options or header file. + + ① Make a file named: `./base_YOUR_KEYMAP.c`), with at least + those two layers: _..._BASE and _..._NSY. It is probably best to + copy one of the existing `./base_....c` files, and edit that. + + ② Add a #define to `./user_config.h`: + #define BASE_YOUR_KEYMAP__DEF_BASE + #define BASE_YOUR_KEYMAP__ALT_BASE + Under the topic ‛Base layers’ there is a comment to help you. + + ③ Edit ./keymap.c to have your new file #included, using your just defined + preprocessor element. Close to the other #includes is a comment there to + help you. Look just under the line with this, in ./keymap.c: + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + (…) + // // ⬇ insert your ./base_YOUR_KEYMAP.c #include here: + + // # if defined(BASE_YOUR_KEYMAP__DEF_BASE) || defined(BASE_YOUR_KEYMAP__ALT_BASE) + // # include "./base_YOUR_KEYMAP.c" // Your Keymap. + // # endif + +Now you have integrated your base layers alternative. To compile it: + + ④ _Activate_ your #define BASES_YOUR_KEYMAP__DEF_BASE or + BASES_YOUR_KEYMAP__ALT_BASE in `./user_config.h`, + _Remove_ any other base layers from being defined on the + same spot _DEF_BASE or _ALT_BASE to prevent a conflict. + + ⑤ Check Pre-processing with: + > gcc -E keymap.c | less + + ⑥ Compile and flash to your keyboard. + +You can redefine any layer in your new `./base_YOUR_KEYMAP.c` +You can do that by setting one or more of the `BASESFILE_LAYER_...` defines in +your own `./base_YOUR_KEYMAP.c` file. See near the top of an existing +`./base_....c` file for clues. +`_ACC` in particular is a layer meant to augment a keymap with special +characters for a given language/layout in the base layer(s). Perhaps you +want to redefine it, for example. + +Example: Having done the above points ① ➡ ④ for a `./base_YOUR_KEYMAP.c` file. +Let's say you re-arranged keys on `_ACC` to suit ... French. + + ⑦ In your `./base_YOUR_KEYMAP.c`: + #define `BASESFILE_LAYER_ACC` + The `_ACC` in ./keymap.c will now be ignored. + +You can re-define `_ACC` in your own file. + + ⑧ Copy an existing `_ACC` layer into `./base_YOUR_KEYMAP.c` + Edit it so that French characters like ‛Ç’ ‛«»’, ‛œ’, ‛æ’, + ‛ô’, ‛é’ etc. are in positions that work best. You can look in + `unicode_weurope.h` to find some Unicode points already defined. + + ⑨ Compile and flash to your keyboard. + +Now we will look at a more complicated keymap, where you are also altering +preprocessor constants defined in `./user_config.h`. (Warning, perhaps this +is overkill … ;-) + +Example: the `./base_numpad.c` has an option to entirely eviscerate the +`_PAD` layer, for convenience. (Why is this even useful ? Good question ! +One reason could be that it can set up a default, so that anyone who chooses +this `./base_numpad.c` Base layer, automatically is eviscerating the `_PAD` +_common_ layer, without having to do anything else. On the downside, it +could be confusing that one option is configured in two places.) + +Having done the above points ⑦ ➡ ⑧ as well, let's say for some reason you +need to reverse Left GUI and Right GUI. + + ⑨ Copy your User Configuration Block at the top of your `./base_YOUR_KEYMAP.c` + and the GPL License, and place that in a new _header_ file: + `./base_YOUR_KEYMAP.h` + + ① ⓪ Write the necessary code to set and unset the constant + `SWITCH_GUIS` in your `./base_YOUR_KEYMAP.h` file You are encouraged + to write code which overrides any setting in `./user_config.h, for + those constants which you choose to affect, for simplicity sake. + (This is not a C programming manual, so it won't get into this.) + + ① ① Look in `./user_config.h`, and #include your header file there, in + a similar way as was done for your C code file. It should be just + below the user configuration block, and has a template for you. + + ① ② Compile, flash and test. + + ① ③ It would be nice to put a remark on the general preprocessor constants + which you might be affecting, that your keymap could be affecting them. + You would edit the ./user_config.h comments with a short one line notice, + such as: + + * + * ⚠ Note: ./base_YOUR_KEYMAP.h can overrides this setting, if compiled with that ‛Base’ layer. + */ + +Putting your `*.h` header file in `./user_config.h` isn't strictly +necessary, unless you alter “general preprocessor constants” +defined in `./user_config` (not local constants for your keymap only). + +Perhaps a separate header file is overkill. On the other hand, whatever +preprocessor logic is necessary after user configuration has been given, +can be handled in one place, if #included as suggested. It allows you +to override the settings in `./user_config.h` from your header file +(because it is #included immediately below those). If a user is playing with +keymaps Base compile choices, it could be convenient to play with +`./base_YOUR_KEYMAP.h` settings, have everything that could be relevant +close at hand, then forgetting about those settings once compiling +with another Base layer, and be able to return to it with previous +configuration already done. + +You can also just #include your header file at the top of your +`./base_YOUR_KEYMAP.h` file, if it does not touch anything else but your +local keymap. + +11 Eviscerations +================ +Cutting down the keymap reduces the firmware size, and helps reducing +mental clutter from having masses of symbols you might never want to use. + +You can compile as a single layout. Define only a ‛Default’ base pair, +and set `MINIFAN_SINGLE_LAYOUT` (`./user_config.h`). The leds for the +base layers letters and numbers&symbols, will show up as they would for +the ‛Alternate’ layer in a dual layout compilation. + +You can remove the layers `_ACC`, `_DRA` and/or `_BON` (see +`./user_config.h` around `REMOVE_ACC`). + +You can remove a set of symbols from one or more of Unicode layers, +such as not having box drawing characters on `_BON`, or no sub-script +numbers on `_DRA`. + +12 Key associations +=================== +The keymap was designed to have the same or similar keys on the same key +or close to it, on different layers. Sometimes the association goes by +what finger is used, and/or on what row. For example the symbol ‛(’ +on the numbers-symbols layer (`_NSY`), becomes the symbol ‛⁽’ on +another layer. + +![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_common_1500_vd.jpg) + +13 Trouble shooting +=================== + • Compiling + + If the firmware is too large, you can try using a different version + of the compiler, or you may have to reduce size by removing certain + options. + + • Unicode + + Unicode is chaos: try going to `_RAR` layer, and hit the Unicode + operating system buttons. + + • Leds + + Leds not working after flashing firmware: try going to `_RAR` layer, + and hit the key MLeds and SLeds, which switch Leds on/off. + + • Weird layer jumping + + You weirdly end up on the `_PAD`, `_FUN` or some other layer while + typing ? If you jump to layers which are on Shift key toggles, this + is a typing mistake. + + • Difficult/impossible key combinations ? + + An example of a difficult key combination is: the modifier Control, + Shift, or Alt, with media key “volume up” (or down, etc). It may + work to press and hold “Control” (which should communicate “Control + depressed”), then activate `_RAR` layer with the hold key (which + communicates nothing to the computer attached to the keyboard), + press and let go “volume up” (which should communicate just that), let + go of the `_RAR` layer (which again communicates nothing), let go of + the Control key (which should communicate “Control released”).. + +14 Why you want this layout +=========================== +☞ This layout seems easy to learn and predictable. + +☞ The normally most used layer after letters is “numbers & symbols” + (123…, !@#…, []/…, called `_NSY`). This layer you can access by either + your left or right thumb, to spread fatigue. + +☞ Right hand pinky is no longer overused, as it is on regular keyboards. + +☞ 0-9 enumerations / numbers, they are on the same fingers as a standard + keyboard. + +☞ The symbols normally reached by shifting a number, are also still on + the same fingers. + +☞ Because one often uses an F-key only once, the layer can switch back + to Base after an F-key is used. + +☞ Modifier combination keys on `_FUN` layer for use with F-keys. + +☞ The movement layer has a bunch of layout options, and allows for mouse + use. + +☞ The layer with Power buttons protects you from accidental keystrokes + on the critical keys. + +☞ If you need working with Control/Shift/Alt and a pointing device in + right hand, you can quickly get uncluttered such keys by tapping left shift. + +☞ The accented layer makes it possible to set the keyboard in a mode + on the computer side without dead-keys. + +☞ The second Unicode layer adds a fair amount of fun stuff to spice up + your writing. Write H₂O, 2⁷·⁰=128, ±8 °C, §2.1, 2 ³/₈", a note⁴, £ 6.²⁵ + etc. + +☞ The third Unicode layer adds a proper dash — and French style + quotations «»‹› and other stuff. ① «Ça va bien», ② 5 × 3 ≠ 14, + ③ .083% ÷ 2 ≈ 4‱ ➡ 4.₁₅‱ + + ┏━━━━━━┓ + ┃ test ┃ + ┅━╋━━━━━━┛ + ┇ ④ + +☞ Speed and text size measuring, including to set a maximum on your text input. + These are features not part off regular keyboards. + +☞ Easy to create your own dual layout for letters / numbers. + +☞ If you do want to reprogram the code, it has a lot of comments to make + it easier to follow. + + +15 BUGS +======= + No real bugs known currently. Just some minor issues … + + The tilde ~ on the numbers-symbols layer should logically be reached on the second + row without the need for _shift,_ however there seems to be a QMK limitation + with this. No work around has been attempted as of yet. (It seems to be a minor issue; + using shift for once seems OK.) + + `LCTL_T` `( KC_TAB )` is not seen as a blank by word counting, use as Control is not + ignored in character counting. (This minor issue is ignored for now. Tab is not + normally used in text writing.) + + The eviscerations may not have been worked out yet into the ultimate scrubbing of + everything that may have become redundent, because it does complicate the code with + a lot of #defines. Perhaps it should be done eventually, if there is an actual need. + + +16 Resources +============ +This links to an external file, with some development resources like +Gimp .xcf files, pre-compiled hex files, … + +[Resources](http://socialism.nl/misc/minivan/ "Additional resources") + +17 Author(s) +============ + This keymap.c was edited from the Minivan default, original LED + support was copied/edited from ../jetpacktuxedo/ keymap. Thanks to + QMK support for their help, especially Drashna. + + _Personal note:_ This keymap came about because of a sudden need + for a replacement keyboard. It took over a year to make (≈ 1.5 h/day). + The goal became to make a good keymap for everyone without the time to + make one, in the best keyboard format: “40%”. + +![Keycaps blanks](http://socialism.nl/misc/minivan/keycaps_blanks_va.jpg) + + Written on the Minivan: Jos Boersema. [contact](https://market.socialism.nl/author/ "get e-mail address there") + + Contributions to this key map: + - … + |