mirror of
https://github.com/qmk/qmk_firmware
synced 2024-11-17 17:35:30 +00:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
commit
49efd6abb0
19 changed files with 507 additions and 315 deletions
|
@ -106,13 +106,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
# else
|
||||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD , KC__YGUI
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -149,7 +149,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
|
||||
^^ ^ // Only differences with normal version _..._NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
|
@ -164,7 +164,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// , -*- , , , , <|,> , , , , , ,
|
||||
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 ) ,
|
||||
LSFT_DASH , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_TILDE ,
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Colemak keymaps
|
|||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_base_layer_colemak_ve.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vb.jpg)
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vc.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -25,7 +25,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Colemak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_colemak_2000_vh.jpg)
|
||||
![Minivan illustration Overview layers by key, Colemak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_colemak_2000_vi.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -79,7 +79,7 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>)
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
|
||||
^^ ^ // Only differences with Dvorak version _DEF_NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
|
||||
|
|
|
@ -107,13 +107,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD , KC__YGUI
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -150,7 +150,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} /? \| =+ | + | ? { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} /? \| =+ | + | ? { } ~+RSht
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
-*- <|> -*- //(hold) Access on _..._BASE
|
||||
|
@ -163,7 +163,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// , -*- , , , , <|,> , , , , , ,
|
||||
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 ) ,
|
||||
LSFT_DASH , KC_LBRC , KC_RBRC , KC_SLSH , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_QUES , KC_LCBR , KC_RCBR , RSFT_TILDE ,
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Dvorak keymaps
|
|||
![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_dvorak_ve.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vb.jpg)
|
||||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vc.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -23,7 +23,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Dvorak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_dvorak_2000_vh.jpg)
|
||||
![Minivan illustration Overview layers by key, Dvorak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_dvorak_2000_vi.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -74,7 +74,7 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>)
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} /? \| =+ | + | ? { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} /? \| =+ | + | ? { } ~+RSht
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
|
||||
-*- <|> -*- //(hold) Access on _DEF_BASE
|
||||
|
@ -88,5 +88,5 @@ Key associations
|
|||
----------------
|
||||
Key placement associations between layers for Dvorak.
|
||||
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_dvorak_1500_vd.jpg)
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_dvorak_1500_ve.jpg)
|
||||
|
||||
|
|
|
@ -149,13 +149,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD , KC__YGUI
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -188,7 +188,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht -_ =+ [{ \| ]} | } | { _ + `~+RSht // row 2, raw
|
||||
-+LSht -_ =+ [{ \| ]} | } | { _ + ~+RSht // row 2, raw
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
-*- <|> -*- //(hold) Access on _DEF_BASE
|
||||
|
@ -205,7 +205,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// , -*- , , , , <|,> , , , , -*- , ,
|
||||
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 ) ,
|
||||
LSFT_DASH , KC_MINS , KC_EQL , KC_LBRC , KC_BSLS , KC_RBRC , KC_RCBR , KC_PIPE , KC_LCBR , KC_UNDS , KC_PLUS , RSFT_TILDE ,
|
||||
// --------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Dvorak² keymaps
|
|||
![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_dvorak_ve.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vb.jpg)
|
||||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vc.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -27,7 +27,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Dvorak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_dvorak_2000_vh.jpg)
|
||||
![Minivan illustration Overview layers by key, Dvorak](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_dvorak_2000_vi.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -78,7 +78,7 @@ Layers (text)
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht -_ =+ [{ \| ]} | } | { _ + `~+RSht // row 2, raw
|
||||
-+LSht -_ =+ [{ \| ]} | } | { _ + ~+RSht // row 2, raw
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
|
||||
-*- <|> -*- //(hold) Access on _DEF_BASE
|
||||
|
@ -131,5 +131,5 @@ Key associations
|
|||
----------------
|
||||
Key placement associations between layers for Dvorak.
|
||||
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_dvorak-descramble_1500_vd.jpg)
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_dvorak-descramble_1500_ve.jpg)
|
||||
|
||||
|
|
|
@ -107,13 +107,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD , KC__YGUI
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -150,7 +150,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
|
||||
^^ ^ // Only differences with normal version _..._NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
|
@ -168,11 +168,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// 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’
|
||||
, KC_SLSH , // Same as in ‛Qwerty Base Arrow’. A ‛`’ exists on _BON also.
|
||||
# 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 ) ,
|
||||
LSFT_DASH , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_TILDE ,
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
|
|
@ -6,6 +6,34 @@ Compiled for: Qwerty
|
|||
This file details the compile version `#define BASE_QWERTY__DEF_BASE, BASE_QWERTY__ALT_BASE`.
|
||||
This is a Qwerty layout.
|
||||
|
||||
Dual layout combination with Qwerty Base Arrow
|
||||
==============================================
|
||||
⚠ If you also compile `base_qwerty_basearrow`, the key for `/?` on `_NSY` layer in that
|
||||
`base_qwerty_basearrow` layout, will be replicated in _this_ Qwerty layout on the `_NSY`
|
||||
layer. It will displace the key `RCTL_T ( KC_GRV )`. Right Control, unless tapped for
|
||||
‛\`’ or tapped with shift for ‛~’ ➡ becomes `/?` (slash/questionmark).
|
||||
|
||||
The reason for this is that when you switch from one or the other Qwerty variation
|
||||
(with or without arrows on ‛Base’ layer), it will likely be confusing to type ‛/?’
|
||||
on that key in one version of Qwerty, and suddenly get a ‛\`~’ in the other. The reason
|
||||
it is not in the normal position on ‛Qwerty Base Arrow’, is because it gets displaced
|
||||
by ‛Up Arrow’.
|
||||
|
||||
You will likely switch from the Base Arrow variation to the regular version, due to a need
|
||||
for the row of keys displaced by the arrow cluster, or the other way around to get Base
|
||||
access to the arrows, rather than a need for this side effect: ‛/?’ being substituted for
|
||||
‛\`~’.
|
||||
|
||||
This means you will loose `_NSY` layer access to ‛\`’, in both versions of Qwerty. You will
|
||||
have to use the key for ‛\`~’ on the `_BON` layer, which is an uncluttered version of this
|
||||
key (it repeats). It also means that you have two keys toward ‛/?’ in standard Qwerty: the
|
||||
default position for Qwerty, and this additional one to harmonize with ‛Qwerty Base Arrow’.
|
||||
|
||||
This harmonization can be disabled in ![./base_qwerty_basearrow.h](./base_qwerty_basearrow.h),
|
||||
with `QWERTY_BASEARROW_HARMONIZE`.
|
||||
|
||||
See also: ![./base_qwerty_basearrow.md](./base_qwerty_basearrow.md)
|
||||
|
||||
Qwerty keymaps
|
||||
--------------
|
||||
|
||||
|
@ -14,7 +42,7 @@ Qwerty keymaps
|
|||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_base_layer_qwerty_ve.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vb.jpg)
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vc.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -23,7 +51,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Qwerty](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_qwerty_2000_vh.jpg)
|
||||
![Minivan illustration Overview layers by key, Qwerty](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_qwerty_2000_vi.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -77,9 +105,8 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>)
|
|||
<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
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl // `~+RCtl becomes /? in dual …
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // … layout with Qwerty Base Arrow
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
|
||||
-*- <|> -*- u //(hold) Access on _DEF_BASE
|
||||
|
@ -95,6 +122,6 @@ Key associations
|
|||
----------------
|
||||
Key placement associations between layers for Qwerty.
|
||||
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_qwerty_1500_vd.jpg)
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_qwerty_1500_ve.jpg)
|
||||
|
||||
|
||||
|
|
|
@ -141,13 +141,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -189,7 +189,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) /?
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // `~ on _BON
|
||||
^^ ^ // Only differences with normal version _..._NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
|
@ -203,10 +203,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// <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 ) ,
|
||||
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 ,
|
||||
LSFT_DASH , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_TILDE , // note¹
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
@ -238,6 +236,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// , , -*- , <|,> , -*- , ,
|
||||
// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
|
||||
|
||||
// note¹
|
||||
// Sacrificing RCTL, because ‛/’ is a major much used symbol,
|
||||
// which seem to warrant being uncluttered. ‛`’ exists also on _BON
|
||||
// (uncluttered). This breaks the logic that all these standard symbols
|
||||
// exist on this layer _NSY. However, ` and ~ are often in a diminutive
|
||||
// placement on mini keyboards, and ‛arrows on top’ was always going to
|
||||
// be a stretch for a keyboard like this. The other option is to have a
|
||||
// special macro to put tilde ‛~’ and accent grave ‛`’ both on Shift,
|
||||
// but it doesn't seem to make much difference, and makes the firmware
|
||||
// even larger.
|
||||
),
|
||||
|
||||
/* ⬆⬇ */
|
||||
|
|
|
@ -25,16 +25,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
/* • 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.
|
||||
* the other base pair (dual layout), the key ‛/?’ on the _NSY layer in
|
||||
* Qwerty Base Arrow, will be replicated in the same spot in regular Qwerty.
|
||||
*
|
||||
* 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.
|
||||
* See ./base_qwerty_basearrow.md and ./base_qwerty.md for details.
|
||||
*/
|
||||
#define QWERTY_BASEARROW_HARMONIZE // _Activate_ to harmonize the ‛/?’ key in the regular Qwerty layout.
|
||||
// _Remove_ leave regular Qwerty layout unchanged from default.
|
||||
|
|
|
@ -2,23 +2,17 @@
|
|||
|
||||
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`,
|
||||
to let compilation know you have that additional hardware key.
|
||||
|
||||
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.
|
||||
|
@ -39,12 +33,20 @@ GUI, and ‛/?’.
|
|||
|
||||
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.
|
||||
|
||||
Dual layout combination with Qwerty Base Arrow
|
||||
==============================================
|
||||
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 also: ![./base_qwerty_basearrow.h](./base_qwerty_basearrow.h).
|
||||
See also: ![./base_qwerty.md](./base_qwerty.md) for the reason behind this.
|
||||
|
||||
|
||||
Qwerty keymaps
|
||||
--------------
|
||||
|
@ -54,7 +56,7 @@ Qwerty keymaps
|
|||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_base_layer_qwerty_basearrow_va.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_basearrow_va.jpg)
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_basearrow_vb.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -63,7 +65,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Qwerty arrows on Base](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_qwerty_basearrow_2000_vi.jpg)
|
||||
![Minivan illustration Overview layers by key, Qwerty arrows on Base](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_qwerty_basearrow_2000_vj.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -118,7 +120,7 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>)
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) /?
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // See _BON for ‛`’
|
||||
^^ ^ // Only differences with normal version _..._NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
|
|
|
@ -108,13 +108,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
, CHOLTAP_ACCE , DUO_HOLD
|
||||
# endif
|
||||
|
||||
, LT__MOV__KC_ENT
|
||||
, LEFTCENTER_THUMB
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
, KC_SPC , DUO_HOLD , KC__YGUI
|
||||
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, MO ( _FUN )
|
||||
|
@ -151,7 +151,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
|
||||
^^ ^ // Only differences with normal version _..._NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||
|
@ -166,7 +166,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// , -*- , , , , <|,> , , , , , ,
|
||||
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 ) ,
|
||||
LSFT_DASH , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_TILDE ,
|
||||
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
LALT_T ( KC_LEFT )
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Workman keymaps
|
|||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_base_layer_workman_va.jpg)
|
||||
Layer: `..._BASE`
|
||||
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vb.jpg)
|
||||
![Minivan layout Image BASEdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_qwerty_vc.jpg)
|
||||
Layer: `..._NSY`
|
||||
|
||||
──────────in common────────────
|
||||
|
@ -25,7 +25,7 @@ Layer: `..._NSY`
|
|||
|
||||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
|
||||
|
||||
![Minivan illustration Overview layers by key, Workman](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_workman_2000_vh.jpg)
|
||||
![Minivan illustration Overview layers by key, Workman](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_workman_2000_vi.jpg)
|
||||
|
||||
Layers (text)
|
||||
=============
|
||||
|
@ -80,7 +80,7 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>)
|
|||
-*- <|> //(toggle) Access on _FUN
|
||||
BASE ! @ # $ % | ^ & * ( ) Del
|
||||
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht // limitation prevents ~
|
||||
-+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
|
||||
^^ ^ // Only differences with Dvorak version _DEF_NSY
|
||||
---------------------------------------------------------------------------
|
||||
Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
|
||||
|
|
|
@ -19,20 +19,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
|
||||
#pragma once
|
||||
#define LAYER_STATE_16BIT // This saves more than 400 bytes on the hex file
|
||||
|
||||
// place overrides here
|
||||
|
||||
// Some defines meant to decrease the firmware size. The firmware is otherwise over the maximum (atmega32u4)
|
||||
# ifndef LINK_TIME_OPTIMIZATION_ENABLE
|
||||
//# ifndef LINK_TIME_OPTIMIZATION_ENABLE
|
||||
//Disable old style macro handling: MACRO() & action_get_macro
|
||||
# define NO_ACTION_MACRO // This saves 320 bytes
|
||||
//# 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 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"
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
|
||||
// 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)
|
||||
|
|
|
@ -118,8 +118,8 @@ enum {
|
|||
enum {
|
||||
_NORMAL_, // BASE layer is _DEF_BASE
|
||||
_FULL_, // BASE layer is _ALT_BASE
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // not used with other keymaps
|
||||
_HALF_, // BASE layer is _ALT_BASE For DVORAK_DESCRAMBLE_HALF keymap: does *not* re-compute letters in Unicode
|
||||
# ifdef DVORAK_DESCRAMBLE // not used with other keymaps
|
||||
_HALF_, // BASE layer is _ALT_BASE For DVORAK_DESCRAMBLE keymap: does *not* re-compute letters in Unicode
|
||||
// This is for different Unicode encodings than “Control+U+HEX” (Linux). It will go through what is set on _RAR
|
||||
# endif
|
||||
};
|
||||
|
@ -350,7 +350,8 @@ void indicate_base (void) {
|
|||
led2r = 100; // purple
|
||||
led2b = 100;
|
||||
}
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // not used with other keymaps
|
||||
|
||||
# ifdef DVORAK_DESCRAMBLE // not used with other keymaps
|
||||
else if (_HALF_ == alternate) { // alternate mode, 1 (normal unicode)
|
||||
led0r = 100; // purple
|
||||
led0b = 100;
|
||||
|
@ -359,6 +360,7 @@ void indicate_base (void) {
|
|||
led2b = 100;
|
||||
}
|
||||
# endif
|
||||
|
||||
else if (_FULL_ == alternate) { // alternate mode, 1 (recomputed unicode for DVORAK_DESCRAMBLE)
|
||||
led0r = 100; // purple
|
||||
led0b = 100;
|
||||
|
@ -471,6 +473,12 @@ void set_led_colors_ (layer_state_t state) {
|
|||
// Alternate BASE layer (alternate)
|
||||
else if (layer_state_cmp (state, _ALT_BASE)) {
|
||||
|
||||
# ifdef LEDS_OFF_BASE_ALT // Alternative Base leds off (always)
|
||||
|
||||
rgblight_disable_noeeprom ();
|
||||
|
||||
# else // do use leds on Alternative Base layer
|
||||
|
||||
# if !defined(BASE_NUMPAD__ALT_BASE) // Normal led colors for ‛regular’ base layers like Dvorak, Qwerty.
|
||||
|
||||
if (capslock) {
|
||||
|
@ -482,32 +490,34 @@ void set_led_colors_ (layer_state_t state) {
|
|||
led2g = color_ddl; //
|
||||
led2b = color_ddl; //
|
||||
}
|
||||
middle_led_control (HSV_TEAL); // seems to be the same as CYAN/AZURE, conflicts with _ACC
|
||||
|
||||
# else // BASE_NUMPAD__ALT_BASE: numpad on Alternate Base, which should show the state of NumLock
|
||||
# else // Numpad configured on Alternate Base, which should show the state of NumLock
|
||||
|
||||
// This is a copy of the _PAD led colors, but less bright
|
||||
if (numlock) {
|
||||
led0b = 80; // Blue for the numbers part
|
||||
led2g = 80; // Green for the navigation part
|
||||
}else{
|
||||
led0g = 80; // reversed
|
||||
led2b = 80; //
|
||||
led2b = 80; // reversed
|
||||
led0g = 80; //
|
||||
}
|
||||
middle_led_control (60, 20, 100); // yellow (low saturation)
|
||||
middle_led_control (60, 20, 100); // light-blue
|
||||
|
||||
# endif
|
||||
# endif // BASE_NUMPAD__ALT_BASE
|
||||
|
||||
# endif // LEDS_OFF_BASE_ALT
|
||||
|
||||
middle_led_control (HSV_TEAL); // seems to be the same as CYAN/AZURE, conflicts with _ACC
|
||||
}
|
||||
// Default layer (generally), normal BASE layer
|
||||
else if (layer_state_cmp (state, _DEF_BASE)) { // letters
|
||||
|
||||
# ifdef LEDS_OFF_BASE_DEF
|
||||
led0r = 0; // All leds off when in Default Base
|
||||
led0g = 0; //
|
||||
led0b = 0; //
|
||||
# ifdef LEDS_OFF_BASE_DEF // Default Base leds off (always)
|
||||
|
||||
rgblight_disable_noeeprom ();
|
||||
# else
|
||||
|
||||
# else // Do use leds on Default Base
|
||||
|
||||
if (capslock) {
|
||||
led0r = 255; // Brighter version to indicate capslock
|
||||
led0g = 255; //
|
||||
|
@ -517,16 +527,18 @@ void set_led_colors_ (layer_state_t state) {
|
|||
led0g = 28; //
|
||||
led0b = 28; //
|
||||
}
|
||||
|
||||
middle_led_control (HSV_TEAL);
|
||||
|
||||
# endif // LEDS_OFF_BASE_DEF
|
||||
|
||||
}
|
||||
//---
|
||||
|
||||
// pushes the configuration
|
||||
setrgb (led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0
|
||||
setrgb (led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
|
||||
|
||||
isolate_rgblight_set ();
|
||||
isolate_rgblight_set (); // Activates the led color change, after on/off check.
|
||||
|
||||
# endif //RGBLIGHT_ENABLE
|
||||
}
|
||||
|
@ -1090,13 +1102,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
, MORE_key1
|
||||
# endif
|
||||
|
||||
, KC_DEL , KC_ENT , _______
|
||||
, KC_DEL , KC_ENT
|
||||
|
||||
# ifndef SPACE_LEFT__ENTER_RIGHT // standard, layer switch on Base
|
||||
, _______
|
||||
# else // reversed
|
||||
, KC_PGUP
|
||||
# endif
|
||||
|
||||
|
||||
# ifdef TRANSMINIVAN_MIDLEFT
|
||||
, TRANS_MIDLEFT
|
||||
# endif
|
||||
|
||||
|
||||
# ifndef SPACE_LEFT__ENTER_RIGHT // standard
|
||||
, KC_PGUP
|
||||
# else // reversed, layer switch on Base
|
||||
, _______
|
||||
# endif
|
||||
|
||||
|
||||
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||
, TRANS_RIGHT
|
||||
|
|
|
@ -27,12 +27,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
//#define BASE_QWERTY_BASEARROW__ALT_BASE
|
||||
#define BASE_DVORAK__DEF_BASE
|
||||
//#define BASE_DVORAK__ALT_BASE
|
||||
//#define BASE_DVORAK_DESCRAMBLE__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 BASE_NUMPAD__ALT_BASE
|
||||
|
||||
//#define MINIFAN_SINGLE_LAYOUT
|
||||
|
||||
|
@ -74,13 +74,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define WORDS_PER_MINUTE
|
||||
|
||||
//#define BASE_RIGHT_ALT
|
||||
#define SWITCH_GUIS
|
||||
//#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 SPACE_LEFT__ENTER_RIGHT
|
||||
|
||||
//#define REMOVE_PAD
|
||||
//#define REMOVE_ACC
|
||||
|
@ -100,3 +101,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define FULL_BON_4THROW
|
||||
|
||||
#define LEDS_OFF_BASE_DEF
|
||||
#define LEDS_OFF_BASE_ALT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Minivan
|
||||
# Minivan keyboard layout _Minifan_
|
||||
A 40% keyboard made first by TheVan Keyboards
|
||||
_https://thevankeyboards.com_ now taken over by TKC
|
||||
_https://thekey.company_
|
||||
|
@ -23,12 +23,11 @@ Table of Contents
|
|||
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
|
||||
4.1 Layer access
|
||||
4.2 Layout in graphics
|
||||
4.3 Layout in text
|
||||
4.4 Movement layer options
|
||||
4.5 Numbers pad layer options
|
||||
5 Led colors for layers
|
||||
6 Compile options
|
||||
7 Language support
|
||||
|
@ -39,8 +38,9 @@ Table of Contents
|
|||
9 Text size measuring
|
||||
9.1 Text size Usage
|
||||
10 Making your own base layer(s)
|
||||
11 Eviscerations
|
||||
11 Evisceration
|
||||
12 Key associations
|
||||
12.1 Compared to regular keyboard
|
||||
13 Trouble shooting
|
||||
• Compiling
|
||||
• Unicode
|
||||
|
@ -54,19 +54,33 @@ Table of Contents
|
|||
|
||||
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:
|
||||
☑ _Intuitive:_ Key placement follows what a 10 finger typist is used
|
||||
to on a regular keyboard. Similar keys meanings are on the same
|
||||
key in different layers, or the same finger, etc. See also chapter
|
||||
12, _Key associations._ Thumbs control the most used layer access.
|
||||
|
||||
![Minivan illustration Overview layers](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization_1500_vf.jpg)
|
||||
☑ _Feature rich:_ Dual layout, with several standard layouts to choose
|
||||
from. Expanded character set. Measure typing speed and/or amount of text
|
||||
typed. Mouse control, media control, power control, Unicode encoding for
|
||||
several platforms. In total there are about 4 times as many key functions
|
||||
than on a regular keyboard.
|
||||
|
||||
☑ _Configurable:_ Choose between standard layouts (Qwerty, Dvorak, etc);
|
||||
additional hardware keys ‛command/south-paw’ and/or ‛arrow’; movement
|
||||
layer WASD or flat arrows/mouse; numbers pad similar to regular numbers
|
||||
and/or like a regular numbers pad; and other settings. Easy to add your
|
||||
own layers. See ![./user_config.h](./user_config.h)
|
||||
|
||||
☒ What it does *not* do: work on a computer set to a non-English language,
|
||||
such as German or French. (To add such functionality requires some work,
|
||||
but it seems it should be possible. See ![./todo.md](./todo.md).)
|
||||
|
||||
![Minivan illustration Overview layers](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization_1500_vg.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)
|
||||
![Minivan illustration Overview layers by key](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_2000_vi.jpg)
|
||||
|
||||
1.1 Hardware compatibility
|
||||
==========================
|
||||
|
@ -99,7 +113,7 @@ 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`)
|
||||
… To change compile options: edit ./user_config.h (or `./minifan_config_compact.h`)
|
||||
> cd […]/qmk_firmware
|
||||
> make thevankeyboards/minivan:josjoha
|
||||
> su
|
||||
|
@ -112,7 +126,7 @@ 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`.
|
||||
in ![./user_config.h](./user_config.h)
|
||||
|
||||
3 Base layouts
|
||||
==============
|
||||
|
@ -134,7 +148,7 @@ For the readme about the Qwerty version, see ➡ ![base_qwerty.md](./base_qwerty
|
|||
3.1.2 Qwerty with arrows on Base
|
||||
--------------------------------
|
||||
|
||||
![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_qwerty_basearrow_vd.jpg)
|
||||
![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_qwerty_basearrow_ve.jpg)
|
||||
|
||||
For the readme about this Qwerty variation, see ➡ ![base_qwerty_basearrow.md](./base_qwerty_basearrow.md) ⬅
|
||||
|
||||
|
@ -186,33 +200,23 @@ For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad
|
|||
|
||||
![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
|
||||
4.1 Layer access
|
||||
----------------
|
||||
This graphic shows how layers are reached from the ‛Default base’ layer.
|
||||
The graphic below 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)
|
||||
This seems to be the place where one is supposed to say: “This is simple”.
|
||||
It may look more confusing than it is. If you write down an alphabet A,B, ➡ Z,
|
||||
made arrows from every key on a keyboard picture to one of the letters, it could
|
||||
look just as confusing. When switching to a layer, you only think about where you
|
||||
want to go.
|
||||
|
||||
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.
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_2000_vi.jpg)
|
||||
|
||||
The Base layers and their numbers layer are detailed in files beginning
|
||||
with `./base_…` (links below).
|
||||
Each of the two base layers comes with its own second layer, typically
|
||||
numbers-symbols. The other layers are used common between the default and
|
||||
alternate base layers. 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’.
|
||||
|
||||
Layer overview: Defined in:
|
||||
|
||||
|
@ -230,23 +234,19 @@ with `./base_…` (links below).
|
|||
• 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
|
||||
4.2 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)
|
||||
![Minivan layout Image NSYdef](http://socialism.nl/misc/minivan/minivan_nsy_layer_hide_def_base_vc.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)
|
||||
![Minivan layout Image NSYalt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hide_alt_base_vc.jpg)
|
||||
Layer: `ALT_NSY`
|
||||
|
||||
![Minivan layout Image PAD](http://socialism.nl/misc/minivan/minivan_pad_layer_vc.jpg)
|
||||
|
@ -275,8 +275,10 @@ 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
|
||||
4.3 Layout in text
|
||||
------------------
|
||||
What comes on “___” is to be defined by the Base layers choice.
|
||||
|
||||
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
|
||||
|
@ -596,7 +598,7 @@ Remarks. ☐ ☒ ☑ 🗹 or ⮘ ⮙ ⮚ ⮛
|
|||
|
||||
- - -
|
||||
|
||||
4.5 Movement layer options
|
||||
4.4 Movement layer options
|
||||
--------------------------
|
||||
The movement layer (`_MOV`) has several configuration options. You
|
||||
can either have _triangle_ configuration arrows on the _left_ hand
|
||||
|
@ -640,7 +642,7 @@ can compile this second arrow cluster to be completed with navigation keys
|
|||
|
||||
^ `#define` \[`MORE_KEY__ARROW`, `MOREKEY2_ARROW_CLUSTER`\] `VI_SWITCHERYDOO`, `#undef ARROWS_TRIANGLE`
|
||||
|
||||
4.6 Numbers pad layer options
|
||||
4.5 Numbers pad layer options
|
||||
-----------------------------
|
||||
This concerns the numbers pad layer, the one that is part of the common layers.
|
||||
|
||||
|
@ -669,7 +671,7 @@ This concerns the numbers pad layer, the one that is part of the common layers.
|
|||
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 to orange/red/red when set to deactivate 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.
|
||||
|
@ -726,7 +728,7 @@ This concerns the numbers pad layer, the one that is part of the common layers.
|
|||
|
||||
• Reduce firmware size/bloat: remove or eviscerate Unicode layer(s).
|
||||
|
||||
For the complete list, see `./user_config.h`.
|
||||
For the complete list, see ![./user_config.h](./user_config.h)
|
||||
|
||||
7 Language support
|
||||
==================
|
||||
|
@ -770,7 +772,7 @@ The following quotation marks are available, which seems it would cover these la
|
|||
|
||||
¹) Left side is a basic comma.
|
||||
|
||||
See the `_ACC` _accented characters_ layer for all characters with diacretic markings.
|
||||
See the `_ACC` _accented characters_ layer for all characters with diacritic markings.
|
||||
If you miss a symbol, you could replace one you don't use and add it yourself (by
|
||||
reprogramming the source code).
|
||||
|
||||
|
@ -949,7 +951,7 @@ Now you have integrated your base layers alternative. To compile it:
|
|||
_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:
|
||||
⑤ Check Preprocessing with:
|
||||
> gcc -E keymap.c | less
|
||||
|
||||
⑥ Compile and flash to your keyboard.
|
||||
|
@ -979,7 +981,7 @@ You can re-define `_ACC` in your own file.
|
|||
⑨ 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
|
||||
preprocessor constants defined in ![./user_config.h](./user_config.h) (Warning, perhaps this
|
||||
is overkill … ;-)
|
||||
|
||||
Example: the `./base_numpad.c` has an option to entirely eviscerate the
|
||||
|
@ -998,7 +1000,7 @@ need to reverse Left GUI and Right GUI.
|
|||
|
||||
① ⓪ 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
|
||||
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.)
|
||||
|
||||
|
@ -1017,14 +1019,14 @@ need to reverse Left GUI and Right GUI.
|
|||
* ⚠ 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
|
||||
Putting your `*.h` header file in ![./user_config.h](./user_config.h) isn't strictly
|
||||
necessary, unless you alter “general preprocessor constants”
|
||||
defined in `./user_config` (not local constants for your keymap only).
|
||||
defined in ![./user_config.h](./user_config.h) (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
|
||||
to override the settings in ![./user_config.h](./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
|
||||
|
@ -1036,18 +1038,18 @@ 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
|
||||
================
|
||||
11 Evisceration
|
||||
===============
|
||||
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
|
||||
and set `MINIFAN_SINGLE_LAYOUT` (![./user_config.h](./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`).
|
||||
![./user_config.h](./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
|
||||
|
@ -1061,7 +1063,43 @@ 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)
|
||||
![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-relationships_common_1500_ve.jpg)
|
||||
|
||||
12.1 Compared to regular keyboard
|
||||
=================================
|
||||
The main advantage compared to a regular keyboard is to never have to
|
||||
leave the homerow.
|
||||
|
||||
Basic trade-off examples are: (①) on a regular keyboard you need to
|
||||
reach two rows up to press a number like ‛4’; (②) three rows up to reach
|
||||
an F-key like ‛F4’; (③) or move your hand entirely to reach the navigation
|
||||
cluster for ‛Up-Arrow’. On this Minivan 40% keyboard with this ‛Minifan’
|
||||
layout you (①) move either thumb sideways a little to hold down the
|
||||
number/symbols layer key, and then press down left index finger for ‛4’;
|
||||
(②) press and let go ‛Right-Shift’ to toggle the F-keys layer and then
|
||||
press down left index finger for ‛F4’; (③) press down left thumb on where
|
||||
it probably is resting, and then move left ring finger one row up to reach
|
||||
‛Up-Arrow’.
|
||||
|
||||
A downside is that you would be typing a non-standard keyboard, making
|
||||
it harder to adapt to regular keyboards. On the upside, this keyboard is
|
||||
small enough to take it with you. Plugging it into some other computer
|
||||
is only going to work, if that other computer is not using a language
|
||||
setting which changes too many keycodes, or if changing the language
|
||||
setting is not a problem.
|
||||
|
||||
In total the differences are probably marginal. It can be worth it if
|
||||
you are doing a lot of 10 finger typing. The change in efficiency might
|
||||
be similar to changing from Qwerty to Dvorak or another such optimized
|
||||
layout, although incomparably much easier to learn than changing from
|
||||
Qwerty to Dvorak (in author's personal experience). If the latter can
|
||||
take years, the former could take weeks to months. Keep in mind that
|
||||
you have the whole standard letters keymap where it used to be, plus the
|
||||
numbers with their shifted symbols are in predictable locations.
|
||||
|
||||
The hardest to learn out of the standard symbols, will be: /\=+|?, and
|
||||
to a lesser degree {}[]. These are now evenly spread out, rather than this
|
||||
mess you have under right little finger on regular keyboards.
|
||||
|
||||
13 Trouble shooting
|
||||
===================
|
||||
|
@ -1100,7 +1138,11 @@ another layer.
|
|||
|
||||
14 Why you want this layout
|
||||
===========================
|
||||
☞ This layout seems easy to learn and predictable.
|
||||
☞ This layout seems easy to learn and predictable. It is not personalized
|
||||
or idiosyncratic, but rather based on existing keyboards, typewriters
|
||||
and commonly used symbols in the supported languages. The key placement
|
||||
is as close to a regular keyboard as possible, unless there are clearly
|
||||
better placement choices.
|
||||
|
||||
☞ The normally most used layer after letters is “numbers & symbols”
|
||||
(123…, !@#…, []/…, called `_NSY`). This layer you can access by either
|
||||
|
@ -1145,39 +1187,37 @@ another layer.
|
|||
┇ ④
|
||||
|
||||
☞ Speed and text size measuring, including to set a maximum on your text input.
|
||||
These are features not part off regular keyboards.
|
||||
These are features not part of 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.
|
||||
|
||||
it easier to follow, and over the top much documentation as you can see.
|
||||
|
||||
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
|
||||
The evisceration may not have been worked out yet into the ultimate scrubbing of
|
||||
everything that may have become redundant, because it does complicate the code with
|
||||
a lot of #defines. Perhaps it should be done eventually, if there is an actual need.
|
||||
|
||||
➡ You can send bug reports to what seem useful channels, and/or contact e-mail. Thanks
|
||||
|
||||
16 Resources
|
||||
============
|
||||
This links to an external file, with some development resources like
|
||||
Gimp .xcf files, pre-compiled hex files, …
|
||||
|
||||
This links to an external file, with some additional resources.
|
||||
[Resources](http://socialism.nl/misc/minivan/ "Additional resources")
|
||||
|
||||
☞ Gimp .xcf files.
|
||||
☞ Some precompiled hex files.
|
||||
☞ Documentation in other formats.
|
||||
…
|
||||
|
||||
17 Author(s)
|
||||
============
|
||||
This keymap.c was edited from the Minivan default, original LED
|
||||
|
@ -1187,11 +1227,10 @@ Gimp .xcf files, pre-compiled hex files, …
|
|||
_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)
|
||||
make one.
|
||||
|
||||
Written on the Minivan: Jos Boersema. [contact](https://market.socialism.nl/author/ "get e-mail address there")
|
||||
If anyone forks this or whatever, feel free to drop me a note.
|
||||
|
||||
Contributions to this key map:
|
||||
- …
|
||||
|
|
|
@ -38,22 +38,36 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#define DIV10POINT TRUE // suggest to function write_number, to divide by 10 and print as a fraction: N.N
|
||||
|
||||
// Converts integer value to Unicode. Also handles 'descramble' Unicode mode for DVORAK_DESCRAMBLE_HALF.
|
||||
// Unicode is a hexadecimal string (character) representation of the value, with a pre- and post-fix.
|
||||
// Gives Unicode code points to the relevant QMK functions.
|
||||
// Handles Dvorak 'descramble' Unicode mode, if compiled (only tested on Linux).
|
||||
void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) {
|
||||
|
||||
long unsigned int input; // which argument to work on
|
||||
|
||||
# ifdef DVORAK_DESCRAMBLE // Do the letter descramble if needed.
|
||||
|
||||
char output[10]; // will hold the ascii for output
|
||||
int index; // count backwards 'to left' in the string
|
||||
long unsigned int bitmove; // move computation to next digit.
|
||||
long unsigned int work; // temporary value for computation
|
||||
|
||||
# endif
|
||||
|
||||
// What to work on
|
||||
if(shift_ison) input = shifted; // Trying to get everything possible here in this function, to reduce firmware size.
|
||||
else input = unshifted;
|
||||
|
||||
//if (input < 0) input *= -1; // positive value
|
||||
# ifndef DVORAK_DESCRAMBLE // Only normal mode
|
||||
|
||||
register_unicode ( (uint32_t) input ) ;
|
||||
|
||||
# else
|
||||
|
||||
if(_FULL_ != alternate){
|
||||
|
||||
register_unicode ( (uint32_t) input ) ; // normal Unicode mode
|
||||
|
||||
}else{ // Special Dvorak-descramble mode: 0-9=0-9, a=a, b=n, c=i, d=h, e=d, f=y
|
||||
|
||||
// Take the hex value 4 bits at a time, starting with the least significant, convert to ascii, store
|
||||
index = 9;
|
||||
|
@ -65,40 +79,22 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted)
|
|||
if (work < 0xA){ // numbers
|
||||
output[index] = work + 0x30; // pad to ASCII
|
||||
}else{ // alphas
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // Do the letter descramble if needed.
|
||||
if(_FULL_ == alternate){ // 0-9=0-9, a=a, b=n, c=i, d=h, e=d, f=y
|
||||
if (0xA == work) output[index] = 'a';
|
||||
if (0xB == work) output[index] = 'n';
|
||||
if (0xC == work) output[index] = 'i';
|
||||
if (0xD == work) output[index] = 'h';
|
||||
if (0xE == work) output[index] = 'd';
|
||||
if (0xF == work) output[index] = 'y';
|
||||
}else{
|
||||
output[index] = work - 9 + 0x40; // normal mode
|
||||
}
|
||||
# else // The above is not relevant for anything else.
|
||||
output[index] = work - 9 + 0x40; // normal mode
|
||||
# endif
|
||||
}
|
||||
bitmove *= 0x10; // next digit
|
||||
}
|
||||
|
||||
// Put character(s) out in correct mode
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // Do the letter descramble if needed.
|
||||
if (_FULL_ == alternate) { // This is the special 'descramble' output mode for a computer already set to Dvorak
|
||||
|
||||
SEND_STRING ( SS_DOWN(X_LCTRL) SS_DOWN(X_LSHIFT) "f" SS_UP(X_LSHIFT) SS_UP(X_LCTRL) ); // lead-in for Unicode on Linux, 'descramble' mode
|
||||
send_string (output + index); // pointer to argument with formatted string
|
||||
SEND_STRING ( " " ) ; // Ends the Unicode numerical input mode, replacing input with desired character (Linux)
|
||||
|
||||
}else{
|
||||
// normal QMK Unicode output mode
|
||||
send_unicode_hex_string (output + index); // pointer argument
|
||||
SEND_STRING ( " " ); // Ends the Unicode numerical input mode
|
||||
}
|
||||
|
||||
# else
|
||||
send_unicode_hex_string (output + index); // pointer argument
|
||||
# endif
|
||||
# endif // DVORAK_DESCRAMBLE mode for that Base layer & mode setting is compiled in
|
||||
|
||||
}
|
||||
|
||||
|
@ -144,6 +140,11 @@ enum custom_keycodes {
|
|||
CHOLTAP_LSHFT, // Go to <configurable> layer, or shift modifier.
|
||||
CHOLTAP_LAYR, // Go to _RAR layer, or right arrow
|
||||
|
||||
// Shifts which on tap produce a key
|
||||
|
||||
RSFT_TILDE,
|
||||
LSFT_DASH,
|
||||
|
||||
// Special macro to make F-keys one-shot or not.
|
||||
_FUN_STAY,
|
||||
|
||||
|
@ -378,7 +379,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
&&
|
||||
(keycode != CHOLTAP_ACCE) // _ACC layer (and others)
|
||||
&&
|
||||
(keycode != CHOLTAP_LAYR)) { // _RAR layer, or RAlt/Alt-Gr
|
||||
(keycode != RSFT_TILDE) // Shift on _NSY
|
||||
&&
|
||||
(keycode != LSFT_DASH) // Shift on _NSY
|
||||
&&
|
||||
(keycode != CHOLTAP_LAYR))
|
||||
{ // _RAR layer, or RAlt/Alt-Gr
|
||||
isolate_trigger = FALSE; // another key was pressed
|
||||
}
|
||||
}
|
||||
|
@ -625,7 +631,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
}else{ // key up
|
||||
|
||||
// Cycles through the modes
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // version Dvorak+Dvorak-descramble has 3 modes
|
||||
# ifdef DVORAK_DESCRAMBLE // version Dvorak+Dvorak-descramble has 3 modes
|
||||
if (_NORMAL_ == alternate) {
|
||||
alternate = _FULL_;// alternate layers
|
||||
default_layer_set (_ALT_BASE_MASK); // This is needed only for a rare case,
|
||||
|
@ -662,7 +668,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
}else{ // key up
|
||||
|
||||
// Cycles through the modes
|
||||
# ifdef DVORAK_DESCRAMBLE_HALF // version Dvorak+Dvorak-descramble has 3 modes
|
||||
# ifdef DVORAK_DESCRAMBLE // version Dvorak+Dvorak-descramble has 3 modes
|
||||
if (_NORMAL_ == alternate) {
|
||||
alternate = _FULL_;// alternate layers
|
||||
default_layer_set (_ALT_BASE_MASK);
|
||||
|
@ -701,8 +707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
// On BASE itself, that key is <Escape>.
|
||||
if (record->event.pressed) { // key down
|
||||
;
|
||||
}
|
||||
else { // key up
|
||||
}else{ // key up
|
||||
if (alternate) { // go to the alternate version (bit of a hack maybe, but all alternate
|
||||
// ... modes are non-zero)
|
||||
layer_move (_ALT_BASE);
|
||||
|
@ -715,8 +720,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case CTO_NUMS: // activates number-symbols layer
|
||||
if (record->event.pressed) { // key down
|
||||
;
|
||||
}
|
||||
else { // key up, so that upon key down the target layer isn't already activated, triggering that key on up
|
||||
}else{ // key up, so that upon key down the target layer isn't already activated, triggering that key on up
|
||||
if (alternate) { // go to the alternate version
|
||||
layer_move (_ALT_NSY);
|
||||
}else{
|
||||
|
@ -728,8 +732,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case CTO_ACCE: // Unicode layer
|
||||
if (record->event.pressed) { // key down
|
||||
;
|
||||
}
|
||||
else { // key up
|
||||
}else{ // key up
|
||||
|
||||
# ifndef REMOVE_ACC // This cuts out the whole _ACC layer.
|
||||
layer_move (_ACC); // activates normal accented layer
|
||||
|
@ -745,8 +748,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
case CTO_DRAW: // Unicode layer
|
||||
if (record->event.pressed) { // key down
|
||||
;
|
||||
}
|
||||
else { // key up
|
||||
}else{ // key up
|
||||
|
||||
# ifndef REMOVE_DRA // This cuts out the whole _DRA layer.
|
||||
layer_move (_DRA); // activates normal accented layer
|
||||
|
@ -1011,7 +1013,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
// Held medium long: _PAD, long: _MOV.
|
||||
// The reason to have a switch to _MOV on the left hand, is to be able to reach arrows on a toggle,
|
||||
// all by the left hand, when the right hand is on the mouse.
|
||||
if ((timer_elapsed (key_timer) <= 200)) { // tapped medium-long (milliseconds)
|
||||
if ((timer_elapsed (key_timer) <= 200)) { // tapped short (milliseconds)
|
||||
|
||||
# ifndef SWITCH_RSHIFT_FUN_RAR // user config to reverse what this key its timing toggles to
|
||||
|
||||
|
@ -1100,6 +1102,81 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|||
}
|
||||
break;
|
||||
|
||||
/*
|
||||
case RSFT_TILDE:
|
||||
|
||||
if (record->event.pressed) { // key down
|
||||
|
||||
SEND_STRING (SS_DOWN (X_RSFT));
|
||||
shift_ison = 1; // shift depressed
|
||||
|
||||
key_timer = timer_read ();
|
||||
isolate_trigger = TRUE; // keep track of whether another key gets pressed until key-up
|
||||
|
||||
}else{ // key up
|
||||
|
||||
SEND_STRING (SS_UP (X_RSFT));
|
||||
shift_ison = 0; // shift released
|
||||
|
||||
if (isolate_trigger) { // no other key was hit since key down
|
||||
|
||||
|
||||
// Held medium long: _PAD, long: _MOV.
|
||||
// The reason to have a switch to _MOV on the left hand, is to be able to reach arrows on a toggle,
|
||||
// all by the left hand, when the right hand is on the mouse.
|
||||
if ((timer_elapsed (key_timer) <= 200)) { // tapped short (milliseconds)
|
||||
|
||||
SEND_STRING ("~");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
*/
|
||||
|
||||
case RSFT_TILDE: // firmware size optimization, saves 36 bytes
|
||||
case LSFT_DASH:
|
||||
|
||||
if (record->event.pressed) { // key down
|
||||
|
||||
if (RSFT_TILDE == keycode) { // this is probably not needed, both can be left or right shift
|
||||
SEND_STRING (SS_DOWN (X_RSFT));
|
||||
}else{
|
||||
SEND_STRING (SS_DOWN (X_LSFT));
|
||||
}
|
||||
shift_ison = 1; // shift depressed
|
||||
|
||||
key_timer = timer_read ();
|
||||
isolate_trigger = TRUE; // keep track of whether another key gets pressed until key-up
|
||||
|
||||
}else{ // key up
|
||||
|
||||
if (RSFT_TILDE == keycode) {
|
||||
SEND_STRING (SS_UP (X_RSFT));
|
||||
}else{
|
||||
SEND_STRING (SS_UP (X_LSFT));
|
||||
}
|
||||
|
||||
shift_ison = 0; // shift released
|
||||
|
||||
if (isolate_trigger) { // no other key was hit since key down
|
||||
|
||||
|
||||
// Held medium long: _PAD, long: _MOV.
|
||||
// The reason to have a switch to _MOV on the left hand, is to be able to reach arrows on a toggle,
|
||||
// all by the left hand, when the right hand is on the mouse.
|
||||
if ((timer_elapsed (key_timer) <= 200)) { // tapped short (milliseconds)
|
||||
|
||||
if (RSFT_TILDE == keycode) {
|
||||
SEND_STRING ("~");
|
||||
}else{
|
||||
SEND_STRING ("-");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case _FUN_STAY: // toggles if the f-keys return _FUN layer to BASE after one press
|
||||
if (record->event.pressed) { // key down
|
||||
|
||||
|
|
|
@ -23,7 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
// Configuration:
|
||||
// ------------------------------------- ⬇ --------------------------------------
|
||||
|
||||
// (For the non-coders: “_Remove_” means to place ‛//’ in front of a line. The rest of the line becomes a comment.
|
||||
// (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.
|
||||
|
@ -77,9 +78,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
• 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
|
||||
• Switch _ACC/_BON ⬅➡ *left* side _NSY/_DRA hold keys
|
||||
• Switch _PAD ⬅➡ _MOV on Left Shift toggle
|
||||
• Switch _FUN ⬅➡ _RAR on Right Shift toggle
|
||||
• “Switch spacebars”: ‛Space-bar’ ⬅➡ “‛Enter’ + ‛layer-hold _MOV’”
|
||||
|
||||
-11- ➡ Eviscerations ( ② / ② ) ⬅
|
||||
• Removing the numbers pad _PAD layer
|
||||
|
@ -104,7 +106,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
* 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).
|
||||
//#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)
|
||||
|
||||
|
||||
|
@ -444,6 +446,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
* 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
|
||||
/*
|
||||
* • “Switch spacebars”: ‛Space-bar’ ⬅➡ “‛Enter’ + ‛layer-hold _MOV’”
|
||||
*
|
||||
* Recommended if you usually type ‛Space-bar’ with your left hand.
|
||||
* These keys also switch on _MOV (movement) layer. Page-Up goes one spot to the left.
|
||||
*/
|
||||
//#define SPACE_LEFT__ENTER_RIGHT // _Activate_ for ‛Space bar’ left, ‛Enter’ and ‛_MOV hold’ right hand.
|
||||
|
||||
|
||||
/* -11- ➡ Eviscerations ( ② / ② ) ⬅
|
||||
|
@ -521,11 +530,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
/* -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.
|
||||
* Leds off for the Default or Alternative Base Layer.
|
||||
* Implies: no indication on Default Base for: Caps-lock, typing speed,
|
||||
* typing amount done of a limit.
|
||||
* Speed / typing amount indicated by led will be visible by going to another layer.
|
||||
*/
|
||||
//#define LEDS_OFF_BASE_DEF // _Activate_ to make leds dark when in ‛Default Base’ layer.
|
||||
//
|
||||
//#define LEDS_OFF_BASE_ALT // _Activate_ to make leds dark when in ‛Alternative Base’ layer.
|
||||
|
||||
// ------------------------------------- ⬆ --------------------------------------
|
||||
// Below here no more comfortable configuration options.....
|
||||
|
@ -581,11 +593,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
# 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).
|
||||
// This triggers the compilation of Dvorak descramble mode.
|
||||
# ifdef BASE_DVORAK_DESCRAMBLE__ALT_BASE
|
||||
# define DVORAK_DESCRAMBLE_HALF
|
||||
# define DVORAK_DESCRAMBLE
|
||||
# endif
|
||||
|
||||
// Prevent likely erroneous configuration. If no 'Arrow' hardware layout, then not patching in an arrow cluster.
|
||||
|
@ -611,13 +621,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
# 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
|
||||
# else
|
||||
# define KC__XGUI KC_RGUI
|
||||
# define KC__YGUI KC_LGUI
|
||||
# endif
|
||||
|
||||
// Switch “spacebars”:
|
||||
# ifndef SPACE_LEFT__ENTER_RIGHT // standard
|
||||
# define LEFTCENTER_THUMB LT__MOV__KC_ENT
|
||||
# define RIGHTCENTER_THUMB KC_SPC
|
||||
# else
|
||||
# define LEFTCENTER_THUMB KC_SPC // reversed
|
||||
# define RIGHTCENTER_THUMB LT__MOV__KC_ENT
|
||||
# endif
|
||||
|
||||
// Define the layout macro for the amount of hardware keys.
|
||||
// These for Minivan are defined up in the code tree.
|
||||
|
|
Loading…
Reference in a new issue