From c9b7f88ea2f18813da6c026e14e9d443fd5b5390 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Sun, 28 Mar 2021 14:02:04 +0200 Subject: [PATCH 01/19] Does ~, -, as costum macros on _NSY. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The problems where: ① When pressing Shift on _NSY when going to _DRA, the shift did not register, because that Shift was a QMK hold/tap macro, which does not register the Shift as it is done in this keymap. ② This also solves the long existing ~ imperfection, so that it now can be pressed without Shift. The documentation has not yet been updated. --- .../minivan/keymaps/josjoha/base_dvorak.c | 4 +- .../minivan/keymaps/josjoha/config.h | 11 +-- .../keymaps/josjoha/minifan_config_compact.h | 4 +- .../minivan/keymaps/josjoha/unicode_macros.c | 73 ++++++++++++++++++- 4 files changed, 82 insertions(+), 10 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c index be9685632c4e..79c63b9e0819 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c @@ -163,7 +163,9 @@ along with this program. If not, see . // , -*- , , , , <|,> , , , , , , 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_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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h index eff0c2fa694e..d97f3ca43c51 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h @@ -19,20 +19,21 @@ along with this program. If not, see . #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) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h index a48095f5134b..bc0364697a45 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h @@ -27,12 +27,12 @@ along with this program. If not, see . //#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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index f21379248431..a7812c19d641 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c @@ -144,6 +144,11 @@ enum custom_keycodes { CHOLTAP_LSHFT, // Go to 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 +383,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 } } @@ -1011,7 +1021,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 @@ -1099,6 +1109,65 @@ 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 LSFT_DASH: + + 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 _FUN_STAY: // toggles if the f-keys return _FUN layer to BASE after one press if (record->event.pressed) { // key down From e977e6928b606cc93c164b21d374d2ac90a05e2f Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Mon, 5 Apr 2021 10:48:33 +0200 Subject: [PATCH 02/19] Updated documentation for previous commit: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “Does ~, `, as …”. A fair amount of graphics files needed to be updated, by removing ‛`’ from the _NSY layer shift key. --- .../minivan/keymaps/josjoha/base_colemak.c | 4 +- .../minivan/keymaps/josjoha/base_colemak.md | 6 +-- .../minivan/keymaps/josjoha/base_dvorak.c | 4 +- .../minivan/keymaps/josjoha/base_dvorak.md | 8 ++-- .../keymaps/josjoha/base_dvorak_descramble.c | 4 +- .../keymaps/josjoha/base_dvorak_descramble.md | 8 ++-- .../minivan/keymaps/josjoha/base_qwerty.c | 6 +-- .../minivan/keymaps/josjoha/base_qwerty.md | 8 ++-- .../keymaps/josjoha/base_qwerty_basearrow.c | 18 +++++-- .../keymaps/josjoha/base_qwerty_basearrow.md | 6 +-- .../minivan/keymaps/josjoha/base_workman.c | 4 +- .../minivan/keymaps/josjoha/base_workman.md | 6 +-- .../minivan/keymaps/josjoha/readme.md | 40 +++++++++------- .../minivan/keymaps/josjoha/unicode_macros.c | 48 ++++++++++++------- .../minivan/keymaps/josjoha/user_config.h | 2 +- 15 files changed, 97 insertions(+), 75 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c index d4fe3482682f..5f4f7db06bbe 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c @@ -149,7 +149,7 @@ along with this program. If not, see . -*- <|> //(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 . // , -*- , , , , <|,> , , , , , , 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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.md index 1cafd7ddf1a1..e09532babd0e 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.md @@ -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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c index 79c63b9e0819..c0c2232af83f 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c @@ -150,7 +150,7 @@ along with this program. If not, see . -*- <|> //(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,9 +163,7 @@ along with this program. If not, see . // , -*- , , , , <|,> , , , , , , 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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.md index 0dabcc7ade1b..fb2c48b869d0 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.md @@ -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) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c index 78ad63ca6497..f9241e8f250a 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c @@ -188,7 +188,7 @@ along with this program. If not, see . -*- <|> //(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 . // , -*- , , , , <|,> , , , , -*- , , 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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.md index 74b69f7ed61c..c9a81fc08246 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.md @@ -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) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c index 472233073f60..f420611b1286 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c @@ -150,7 +150,7 @@ along with this program. If not, see . -*- <|> //(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 . // 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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md index b140981ec3b6..305cc038d995 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md @@ -14,7 +14,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 +23,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) ============= @@ -78,7 +78,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 @@ -95,6 +95,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) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c index 10ef88b4d3bd..4d56fdcd4091 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c @@ -189,7 +189,7 @@ along with this program. If not, see . -*- <|> //(toggle) Access on _FUN BASE ! @ # $ % | ^ & * ( ) Del Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) /? - -+LSht [{ ]} -_ \| =+ | + | _ { } `~+RSht + -+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // `~ also 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 . // , 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 . // , , -*- , <|,> , -*- , , // <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. ), /* ⬆⬇ */ diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md index f90ba309cc87..6983e0e61153 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md @@ -54,7 +54,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 +63,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 +118,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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c index bc157d69e8c3..5330ef56299a 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c @@ -151,7 +151,7 @@ along with this program. If not, see . -*- <|> //(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 . // , -*- , , , , <|,> , , , , , , 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 ) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.md index 66e7a21bb8e9..2d68e2ea06c0 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.md @@ -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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 534f8b30cac4..e51d0d307f62 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -62,11 +62,11 @@ keyboard, speed and text size measuring. 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) +![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 ========================== @@ -203,7 +203,7 @@ For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad ---------------- 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) +![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_1500_vg.jpg) You can switch between the default base layer (typically letters), and another base layer, the alternate base layer (also typically letters), @@ -240,13 +240,13 @@ layer with what is the ‛Enter’ key on Base. ![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) @@ -277,6 +277,8 @@ Layer: `_RAR` 4.4 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 index>middl>ring> pinky>pinky2> // Keys by finger @@ -1061,7 +1063,7 @@ 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) 13 Trouble shooting =================== @@ -1100,7 +1102,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,23 +1151,17 @@ 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.) @@ -1170,11 +1170,14 @@ another layer. 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. + ➡ 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 like +☞ Video documentation, +☞ Gimp .xcf files, +☞ Some pre-compiled hex files, … [Resources](http://socialism.nl/misc/minivan/ "Additional resources") @@ -1187,11 +1190,12 @@ 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%”. + make one. ![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") + If anyone forks this or whatever, feel free to drop me a note. Contributions to this key map: - … diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index a7812c19d641..3cbcfadd0d37 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c @@ -43,7 +43,7 @@ along with this program. If not, see . void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) { long unsigned int input; // which argument to work on - char output[10] ; // will hold the ascii for output + 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 @@ -87,9 +87,9 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) # 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 ( 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) + SEND_STRING ( " " ); // Ends the Unicode numerical input mode, replacing input with desired character (Linux) }else{ // normal QMK Unicode output mode @@ -105,7 +105,7 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) // Wrapper for unicode keys that do have the same on shift. void unicode_hex2output_single (long unsigned int either) { - unicode_hex2output (either, either) ; + unicode_hex2output (either, either); } @@ -447,7 +447,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { added += write_number ((long int)((speed*12)/10), FALSE); // writes the speed send_string ("wpm"); // +3 character written if (0 != speed_batches) { - long int average_times_ten ; + long int average_times_ten; average_times_ten =(long int) ((speed_add * 12) / speed_batches); // *12 converts k/s to wpm send_string (";"); // +① '' @@ -468,7 +468,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { added += write_number ((long int)(speed/10), FALSE); // writes the speed send_string ("k/s"); // +3 character written if (0 != speed_batches) { - long int average_times_ten ; + long int average_times_ten; average_times_ten =(long int) (speed_add / speed_batches); send_string (";"); // +① '' @@ -711,8 +711,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // On BASE itself, that key is . 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); @@ -725,8 +724,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{ @@ -738,8 +736,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 @@ -755,8 +752,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 @@ -1109,6 +1105,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } break; + +/* case RSFT_TILDE: if (record->event.pressed) { // key down @@ -1138,12 +1136,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } break; +*/ + case RSFT_TILDE: // firmware size optimization, saves 36 bytes case LSFT_DASH: if (record->event.pressed) { // key down - SEND_STRING (SS_DOWN (X_RSFT)); + 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 (); @@ -1151,7 +1155,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }else{ // key up - SEND_STRING (SS_UP (X_RSFT)); + 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 @@ -1162,8 +1171,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // all by the left hand, when the right hand is on the mouse. if ((timer_elapsed (key_timer) <= 200)) { // tapped short (milliseconds) - SEND_STRING ("-"); - + if (RSFT_TILDE == keycode) { + SEND_STRING ("~"); + }else{ + SEND_STRING ("-"); + } } } } diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h index aad9ec2339c0..72cd15a6a6c6 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h @@ -104,7 +104,7 @@ along with this program. If not, see . * 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) From 9812a4bac520826368c47a80e8207ef2c9de7f3a Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Mon, 5 Apr 2021 16:21:56 +0200 Subject: [PATCH 03/19] Added #define LEDS_OFF_BASE_ALT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leds always off on ‛Alternative Base’ user configuration option. --- .../minivan/keymaps/josjoha/keymap.c | 38 ++++++++++++------- .../keymaps/josjoha/minifan_config_compact.h | 1 + .../minivan/keymaps/josjoha/readme.md | 2 - .../minivan/keymaps/josjoha/user_config.h | 9 +++-- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index 035cdfdb3b8f..296562897dfc 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -471,7 +471,13 @@ void set_led_colors_ (layer_state_t state) { // Alternate BASE layer (alternate) else if (layer_state_cmp (state, _ALT_BASE)) { -# if !defined(BASE_NUMPAD__ALT_BASE) // Normal led colors for ‛regular’ base layers like Dvorak, Qwerty. +# 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) { led2r = 255; // Brighter version to indicate capslock @@ -482,32 +488,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 +525,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 } diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h index bc0364697a45..f60a8510db68 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h @@ -100,3 +100,4 @@ along with this program. If not, see . #define FULL_BON_4THROW #define LEDS_OFF_BASE_DEF + #define LEDS_OFF_BASE_ALT diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index e51d0d307f62..45aacb91d6c8 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -1192,8 +1192,6 @@ This links to an external file, with some additional resources like The goal became to make a good keymap for everyone without the time to make one. -![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") If anyone forks this or whatever, feel free to drop me a note. diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h index 72cd15a6a6c6..e204bda8a2ee 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h @@ -521,11 +521,14 @@ along with this program. If not, see . /* -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..... From ba4748550341c1d8c9e6b166fbf44e5ee12ae38c Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Tue, 6 Apr 2021 12:30:57 +0200 Subject: [PATCH 04/19] =?UTF-8?q?Readme=20improvement.=20Option=20switch?= =?UTF-8?q?=20=E2=80=9Cspacebars=E2=80=9D.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Messed a little with some babble in readme about keyboard efficiency. Space is the most used key, it is difficult to change if you are used to typing it with the other thumb. Hence added an option to switch the meaning of the “space bars” keys (center on thumbs row). --- .../minivan/keymaps/josjoha/base_colemak.c | 24 ++-- .../minivan/keymaps/josjoha/base_dvorak.c | 24 ++-- .../keymaps/josjoha/base_dvorak_descramble.c | 24 ++-- .../minivan/keymaps/josjoha/base_qwerty.c | 24 ++-- .../keymaps/josjoha/base_qwerty_basearrow.c | 34 ++--- .../minivan/keymaps/josjoha/base_workman.c | 24 ++-- .../minivan/keymaps/josjoha/keymap.c | 6 + .../keymaps/josjoha/minifan_config_compact.h | 3 +- .../minivan/keymaps/josjoha/readme.md | 121 ++++++++++++------ .../minivan/keymaps/josjoha/user_config.h | 39 ++++-- 10 files changed, 192 insertions(+), 131 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c index 5f4f7db06bbe..38b4c3713899 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_colemak.c @@ -106,25 +106,25 @@ along with this program. If not, see . # 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 ) -# endif - -# ifdef MORE_KEY__ARROW - , MORE_key2 -# endif - - , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + +# ifdef MORE_KEY__ARROW + , MORE_key2 +# endif + + , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c index c0c2232af83f..22f62cc83130 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak.c @@ -107,25 +107,25 @@ along with this program. If not, see . , 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 ) -# endif - -# ifdef MORE_KEY__ARROW - , MORE_key2 -# endif - - , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + +# ifdef MORE_KEY__ARROW + , MORE_key2 +# endif + + , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c index f9241e8f250a..c686704a4b80 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_dvorak_descramble.c @@ -149,25 +149,25 @@ along with this program. If not, see . , 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 ) -# endif - -# ifdef MORE_KEY__ARROW - , MORE_key2 -# endif - - , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + +# ifdef MORE_KEY__ARROW + , MORE_key2 +# endif + + , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c index f420611b1286..0814070f3d30 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.c @@ -107,25 +107,25 @@ along with this program. If not, see . , 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 ) -# endif - -# ifdef MORE_KEY__ARROW - , MORE_key2 -# endif - - , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + +# ifdef MORE_KEY__ARROW + , MORE_key2 +# endif + + , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c index 4d56fdcd4091..c15079a84cdf 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c @@ -141,30 +141,30 @@ along with this program. If not, see . , 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 ) -# endif - - , KC_LEFT - // , KC__YGUI - -# ifdef MORE_KEY__ARROW - , KC_DOWN - // , MORE_key2 -# endif - - , KC_RIGHT - // , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + + , KC_LEFT + // , KC__YGUI + +# ifdef MORE_KEY__ARROW + , KC_DOWN + // , MORE_key2 +# endif + + , KC_RIGHT + // , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c index 5330ef56299a..3a2f4eaa4f79 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_workman.c @@ -108,25 +108,25 @@ along with this program. If not, see . , 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 ) -# endif - -# ifdef MORE_KEY__ARROW - , MORE_key2 -# endif - - , CHOLTAP_LAYR -// , , , <|,> , , , -// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> + , MO ( _FUN ) +# endif + +# ifdef MORE_KEY__ARROW + , MORE_key2 +# endif + + , CHOLTAP_LAYR +// , , , <|,> , , , +// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1> ), diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index 296562897dfc..7b283fce9326 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -1106,7 +1106,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { , TRANS_MIDLEFT # endif + +# ifndef SPACE_LEFT__ENTER_RIGHT // standard , KC_PGUP +# else // reversed, need space for transparent layer switch + , _______ +# endif + # ifdef TRANSMINIVAN_RIGHTSIDE , TRANS_RIGHT diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h index f60a8510db68..89d426b14050 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h @@ -74,13 +74,14 @@ along with this program. If not, see . #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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 45aacb91d6c8..286be919cd40 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -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,13 +54,27 @@ 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. + +☑ _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) @@ -116,7 +130,7 @@ in `./user_config.h`. 3 Base layouts ============== -Layouts are presented here in a sort of simplified keycaps view. If a +Layouts are presented here in a sort of simplified key caps view. If a base layer pair has its own user configuration options, they are located in `./base_NAME.h`. @@ -186,20 +200,7 @@ 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. @@ -231,10 +232,10 @@ with `./base_…` (links below). • 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` +artifacts, 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) @@ -275,7 +276,7 @@ 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. @@ -598,7 +599,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 @@ -642,7 +643,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. @@ -671,7 +672,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. @@ -772,7 +773,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). @@ -786,7 +787,7 @@ reprogramming the source code). 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 +completed batch of 25 key presses 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. @@ -951,7 +952,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. @@ -1038,8 +1039,8 @@ 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. @@ -1065,6 +1066,42 @@ another layer. ![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 =================== • Compiling @@ -1166,8 +1203,8 @@ another layer. 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 @@ -1177,7 +1214,7 @@ another layer. This links to an external file, with some additional resources like ☞ Video documentation, ☞ Gimp .xcf files, -☞ Some pre-compiled hex files, … +☞ Some precompiled hex files, … [Resources](http://socialism.nl/misc/minivan/ "Additional resources") diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h index e204bda8a2ee..fefd48ff60eb 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h @@ -23,11 +23,12 @@ along with this program. If not, see . // Configuration: // ------------------------------------- ⬇ -------------------------------------- - // (For the non-coders: “_Remove_” means to place ‛//’ in front of a line. The rest of the line becomes a comment. - // Placing ‛//’ in front of a line, means whatever follows it will be ignored during compilation. - // “_Activate_” means to *delete* the two ‛//’ in front. Now the rest of the line *will* be compiled - // /* ... */ is another a way to turn “...” into being a comment which is ignored during compilation. - // (The documentation here is geared toward people who have no understanding about programming.) + // (For the non-coders: + // “_Remove_” means to place ‛//’ in front of a line. The rest of the line becomes a comment. + // Placing ‛//’ in front of a line, means whatever follows it will be ignored during compilation. + // “_Activate_” means to *delete* the two ‛//’ in front. Now the rest of the line *will* be compiled + // /* ... */ is another a way to turn “...” into being a comment which is ignored during compilation. + // (The documentation here is geared toward people who have no understanding about programming.) /* -------------------------------------------------------------------------------------- @@ -77,9 +78,10 @@ along with this program. If not, see . • 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 @@ -444,6 +446,15 @@ along with this program. If not, see . * 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. + * You will loose the Page-Up on that key in the _MOV (movement) layer. + * It becomes ‛Transparent’ (TRNS). This will not affect the rest of the + * _MOV layer, or any of the navigation clusters or other Page-Up keys there. + */ +//#define SPACE_LEFT__ENTER_RIGHT // _Activate_ to have ‛Space bar’ on left hand, ‛Enter’ on right hand /* -11- ➡ Eviscerations ( ② / ② ) ⬅ @@ -614,13 +625,19 @@ along with this program. If not, see . # 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. From d3ee7aafeb03445fdd8f026cc26af4fa6baf49a4 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Tue, 6 Apr 2021 13:05:45 +0200 Subject: [PATCH 05/19] PageUp on _MOV layer if Spacebar Switched This somewhat loose Page-Up on _MOV was previously sacrificed, to make room for TRNS, but that is unnecessary. --- .../thevankeyboards/minivan/keymaps/josjoha/keymap.c | 11 +++++++++-- .../minivan/keymaps/josjoha/user_config.h | 6 ++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index 7b283fce9326..fafd690c6056 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -1100,7 +1100,14 @@ 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 @@ -1109,7 +1116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # ifndef SPACE_LEFT__ENTER_RIGHT // standard , KC_PGUP -# else // reversed, need space for transparent layer switch +# else // reversed, layer switch on Base , _______ # endif diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h index fefd48ff60eb..df3383d0dad5 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h @@ -450,11 +450,9 @@ along with this program. If not, see . * • “Switch spacebars”: ‛Space-bar’ ⬅➡ “‛Enter’ + ‛layer-hold _MOV’” * * Recommended if you usually type ‛Space-bar’ with your left hand. - * You will loose the Page-Up on that key in the _MOV (movement) layer. - * It becomes ‛Transparent’ (TRNS). This will not affect the rest of the - * _MOV layer, or any of the navigation clusters or other Page-Up keys there. + * These keys also switch on _MOV (movement) layer. Page-Up goes one spot to the left. */ -//#define SPACE_LEFT__ENTER_RIGHT // _Activate_ to have ‛Space bar’ on left hand, ‛Enter’ on right hand +//#define SPACE_LEFT__ENTER_RIGHT // _Activate_ for ‛Space bar’ left, ‛Enter’ and ‛_MOV hold’ right hand. /* -11- ➡ Eviscerations ( ② / ② ) ⬅ From b0c033a5934a62b517c481217773d9219154ec2f Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Tue, 6 Apr 2021 14:26:52 +0200 Subject: [PATCH 06/19] =?UTF-8?q?Added=20arrow=20for=20=E2=80=9BOther=20Ba?= =?UTF-8?q?se=E2=80=99=20on=20=5FRAR=20in=20graphics.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This arrow was missing. --- .../minivan/keymaps/josjoha/readme.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 286be919cd40..536782c84caa 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -202,15 +202,18 @@ For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad 4.1 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_vg.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 graphic below shows how layers are reached from the ‛Default base’ layer. +Transparent keys on layers allow for additional switching, such as for +example returning to ‛Base’ layer from a toggled `_MOV` layer, using the +same key which is a _hold_ layer switch to `_MOV` on ‛Base’. + +![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_2000_vh.jpg) + +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’. The Base layers and their numbers layer are detailed in files beginning with `./base_…` (links below). From 734c9af228ee74b0365b60f237d89384b6b34408 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Tue, 6 Apr 2021 14:29:25 +0200 Subject: [PATCH 07/19] See previous (same). --- .../thevankeyboards/minivan/keymaps/josjoha/readme.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 536782c84caa..8a63e2004b86 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -215,9 +215,6 @@ 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’. -The Base layers and their numbers layer are detailed in files beginning -with `./base_…` (links below). - Layer overview: Defined in: • Default Letters / Base ┓ @@ -234,10 +231,6 @@ 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 -artifacts, allowing for example to go back to ‛Base’ from a toggled `_MOV` -layer with what is the ‛Enter’ key on Base. - 4.2 Layout in graphics ---------------------- From cc9711661b49597d72309ecb863352d71be52484 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Tue, 6 Apr 2021 16:15:14 +0200 Subject: [PATCH 08/19] =?UTF-8?q?Arrows=20for=20artifact=20layer=20switchi?= =?UTF-8?q?ng=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … in graphics chapter 4.1. --- .../thevankeyboards/minivan/keymaps/josjoha/readme.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 8a63e2004b86..af1d71e9da08 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -203,11 +203,14 @@ For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad 4.1 Layer access ---------------- The graphic below shows how layers are reached from the ‛Default base’ layer. -Transparent keys on layers allow for additional switching, such as for -example returning to ‛Base’ layer from a toggled `_MOV` layer, using the -same key which is a _hold_ layer switch to `_MOV` on ‛Base’. -![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_2000_vh.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. + +![Minivan layout Image associations](http://socialism.nl/misc/minivan/minivan-default-base-layer-activation_2000_vi.jpg) 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 From fdf612c4f400ae0ec05cb347bb4d777a5a7c0d11 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Wed, 7 Apr 2021 17:39:02 +0200 Subject: [PATCH 09/19] Added Qwerty manual `~ /? issue with Base-Arrow Qwerty Base-Arrow compilation changes the regular Qwerty layout, which could be confusing. Made it clearer why this is happening. --- .../minivan/keymaps/josjoha/base_qwerty.md | 33 +++++++++++++++++-- .../keymaps/josjoha/base_qwerty_basearrow.c | 2 +- .../keymaps/josjoha/base_qwerty_basearrow.md | 20 ++++++----- .../minivan/keymaps/josjoha/readme.md | 12 +++---- 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md index 305cc038d995..39ec451991b3 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md @@ -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 -------------- @@ -77,9 +105,8 @@ Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>) 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 - ^^ ^ // 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 diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c index c15079a84cdf..674f16c85a83 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.c @@ -189,7 +189,7 @@ along with this program. If not, see . -*- <|> //(toggle) Access on _FUN BASE ! @ # $ % | ^ & * ( ) Del Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) /? - -+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // `~ also on _BON + -+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht // `~ on _BON ^^ ^ // Only differences with normal version _..._NSY --------------------------------------------------------------------------- Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md index 6983e0e61153..889633714a00 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.md @@ -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 -------------- diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index af1d71e9da08..5169427b8f03 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -113,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](./user_config.h) (or `![./minifan_config_compact.h](./minifan_config_compact.h)`) > cd […]/qmk_firmware > make thevankeyboards/minivan:josjoha > su @@ -126,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 ============== @@ -728,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 ================== @@ -981,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 @@ -1000,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.) @@ -1044,7 +1044,7 @@ 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. From 8f1e9b53503d942980941d4a61730201fe8d5df1 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Wed, 7 Apr 2021 17:45:47 +0200 Subject: [PATCH 10/19] Removing help text. The manual already said it, and the documentation here is probably already about 10 times too much. --- .../minivan/keymaps/josjoha/base_qwerty_basearrow.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h index bb5ab5ae2f2f..74aa563b42f2 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h @@ -25,16 +25,11 @@ along with this program. If not, see . /* • 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. From a119e40472c4679f42ae9185c5947a9498673eee Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Wed, 7 Apr 2021 17:49:49 +0200 Subject: [PATCH 11/19] correction markdown links --- .../thevankeyboards/minivan/keymaps/josjoha/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 5169427b8f03..4ae7421ef92d 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -113,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](./user_config.h) (or `![./minifan_config_compact.h](./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 @@ -1019,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 @@ -1049,7 +1049,7 @@ 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 From c7fc4e9cb2697d1fbd42499185d7c5f027aecaae Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Wed, 7 Apr 2021 18:07:29 +0200 Subject: [PATCH 12/19] Saturation of arrows in Qwerty-Arrow Keycaps view, saturation was off a little ;-) --- keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 4ae7421ef92d..e014f7d2729c 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -148,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) ⬅ From 1bac2b21f752a80817a55dc0477c14922a44ed28 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Wed, 7 Apr 2021 19:47:52 +0200 Subject: [PATCH 13/19] ` needed backslash for markdown --- .../minivan/keymaps/josjoha/base_qwerty.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md index 39ec451991b3..6eda191754a0 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty.md @@ -11,21 +11,21 @@ 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). +‛\`’ 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 +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 +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’. From a1213868f7c30798daf94e7d2d488ec5ca03125b Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Thu, 8 Apr 2021 10:23:03 +0200 Subject: [PATCH 14/19] =?UTF-8?q?=E2=89=A0=20video?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thevankeyboards/minivan/keymaps/josjoha/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index e014f7d2729c..91735bdf335a 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -1210,13 +1210,13 @@ mess you have under right little finger on regular keyboards. 16 Resources ============ -This links to an external file, with some additional resources like -☞ Video documentation, -☞ Gimp .xcf files, -☞ Some precompiled 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, + ☞ … + 17 Author(s) ============ This keymap.c was edited from the Minivan default, original LED From d7eb5f8cd8e9ff54bc51e8f8153b19fd50503cae Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Thu, 8 Apr 2021 10:25:09 +0200 Subject: [PATCH 15/19] pdf manual note --- keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 91735bdf335a..7787a80b7414 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -1215,6 +1215,7 @@ This links to an external file, with some additional resources. ☞ Gimp .xcf files, ☞ Some precompiled hex files, + ☞ PDF format of this manual ☞ … 17 Author(s) From 883ca06bcc72fc7c24127037f864109459079417 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Thu, 15 Apr 2021 19:54:07 +0200 Subject: [PATCH 16/19] minor details --- .../thevankeyboards/minivan/keymaps/josjoha/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index 7787a80b7414..c4d04a9330b2 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -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_ @@ -1213,10 +1213,10 @@ mess you have under right little finger on regular keyboards. 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, - ☞ PDF format of this manual - ☞ … + ☞ Gimp .xcf files. + ☞ Some precompiled hex files. + ☞ Documentation in other formats. + ☞ Whatever else I might think off. 17 Author(s) ============ From 33f7e5521617a4a9fe040be755d9c9d00aa71b6e Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Fri, 16 Apr 2021 08:07:39 +0200 Subject: [PATCH 17/19] =?UTF-8?q?Removed=20a=20reference=20to=20=E2=80=9CI?= =?UTF-8?q?=E2=80=9D=20in=20readme.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md index c4d04a9330b2..1d2ad90feae5 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md @@ -1216,7 +1216,7 @@ This links to an external file, with some additional resources. ☞ Gimp .xcf files. ☞ Some precompiled hex files. ☞ Documentation in other formats. - ☞ Whatever else I might think off. + … 17 Author(s) ============ From a76fecf2468dd52563f4b16358ce5cd47538c414 Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Sun, 18 Apr 2021 10:41:03 +0200 Subject: [PATCH 18/19] Removed send_unicode_hex_string() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Inserted register_unicode() • Corrected comment symbol mistake in config.h (thx fauxpark) --- .../minivan/keymaps/josjoha/config.h | 2 +- .../minivan/keymaps/josjoha/unicode_macros.c | 63 +++++++++---------- 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h index d97f3ca43c51..809842278484 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/config.h @@ -19,7 +19,7 @@ along with this program. If not, see . #pragma once -#define LAYER_STATE_16BIT # This saves more than 400 bytes on the hex file +#define LAYER_STATE_16BIT // This saves more than 400 bytes on the hex file // place overrides here diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index 3cbcfadd0d37..f026d6db544d 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c @@ -40,64 +40,63 @@ along with this program. If not, see . // 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. +// (Note: this whole function is superfluous if Dvorak-descramble is not compiled.) void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) { long unsigned int input; // which argument to work on + +# ifdef DVORAK_DESCRAMBLE_HALF // 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 - - // Take the hex value 4 bits at a time, starting with the least significant, convert to ascii, store - index = 9; - output[index] = '\0'; // terminator - bitmove = 0x1; - while ((work = (input / bitmove)) && (index >= 0)) { - index --; - work &= 0xF; - 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 +# ifndef DVORAK_DESCRAMBLE_HALF // Only normal mode + + register_unicode ( (uint32_t) input ) ; + +# else // DVORAK_DESCRAMBLE_HALF mode for that Base layer & mode setting is compiled in + + 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; + output[index] = '\0'; // terminator + bitmove = 0x1; + while ((work = (input / bitmove)) && (index >= 0)) { + index --; + work &= 0xF; + if (work < 0xA){ // numbers + output[index] = work + 0x30; // pad to ASCII + }else{ // alphas 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 } - 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 - + + // Put character(s) out in correct mode + 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 } -# else - send_unicode_hex_string (output + index); // pointer argument # endif } From 15567d97f00e3de6a12a25fd9560c67bbf161ede Mon Sep 17 00:00:00 2001 From: Jos Boersema Date: Sun, 18 Apr 2021 16:46:59 +0200 Subject: [PATCH 19/19] Bit of cleanup regarding previous commit. Removing send_unicode_hex_string(). --- .../minivan/keymaps/josjoha/keymap.c | 8 ++++--- .../minivan/keymaps/josjoha/unicode_macros.c | 21 ++++++++----------- .../minivan/keymaps/josjoha/user_config.h | 6 ++---- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c index fafd690c6056..09a9b7d93da1 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c @@ -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; diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index f026d6db544d..d711c86f9bbd 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c @@ -38,14 +38,13 @@ along with this program. If not, see . #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. -// (Note: this whole function is superfluous if Dvorak-descramble is not compiled.) +// 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_HALF // Do the letter descramble if needed. +# 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 @@ -58,11 +57,11 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) if(shift_ison) input = shifted; // Trying to get everything possible here in this function, to reduce firmware size. else input = unshifted; -# ifndef DVORAK_DESCRAMBLE_HALF // Only normal mode +# ifndef DVORAK_DESCRAMBLE // Only normal mode register_unicode ( (uint32_t) input ) ; -# else // DVORAK_DESCRAMBLE_HALF mode for that Base layer & mode setting is compiled in +# else if(_FULL_ != alternate){ @@ -90,14 +89,12 @@ void unicode_hex2output (long unsigned int unshifted, long unsigned int shifted) bitmove *= 0x10; // next digit } - // Put character(s) out in correct mode - 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) + SEND_STRING ( " " ); // Ends the Unicode numerical input mode } -# endif +# endif // DVORAK_DESCRAMBLE mode for that Base layer & mode setting is compiled in } @@ -634,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, @@ -671,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); diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h index df3383d0dad5..293fd15a0630 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h @@ -593,11 +593,9 @@ along with this program. If not, see . # 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.