From 1580cf38f6c94599366bda21dad508493f97608a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Struckmeier?= Date: Tue, 14 Jan 2025 17:41:19 +0100 Subject: [PATCH] A new test of HRM --- README.md | 27 +++++++++++++++++------- users/struckmb/config.h | 5 +++-- users/struckmb/struckmb.h | 44 +++++++++++++++++++++++---------------- 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 06521c25..b808ccce 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ First and last column keys on base layers for 6x3 keyboards, ``` ⌥/⌫│ │⌥/(X) ───┼─ ─┼───── - ⌃/⎋│ (...other keys...) │⌃/(X) + Σ/⎋│ (...other keys...) │Σ/(X) ───┼─ ─┼───── ⌘/▤│ │⌘/ ↵ ``` @@ -29,7 +29,7 @@ All base layers share the same thumb cluster: q │ w │ e │ r │ t z │ u │ i │ o │ p │(ü) ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── a │ s │ d │ f │ g h │ j │ k │ l │ ö │(ä) - ─Σ─┼───┼───┼───┼─── ───┼───┼───┼───┼─Σ─ ─── + (Σ)┼─⌥─┼─⌘─┼─⌃─┼─── ───┼─⌃─┼─⌘─┼─⌥─┼(Σ) ─── y │ x │ c │ v │ b n │ m │ , │ . │ ß │ ─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─ ``` @@ -39,7 +39,7 @@ All base layers share the same thumb cluster: j │ d │ u │ a │ x p │ h │ l │ m │ w │(ß) ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── c │ t │ i │ e │ o b │ n │ r │ s │ g │(q) - ─Σ─┼───┼───┼───┼─── ───┼───┼───┼───┼─Σ─ ─── + (Σ)┼─⌥─┼─⌘─┼─⌃─┼─── ───┼─⌃─┼─⌘─┼─⌥─┼(Σ) ─── f │ v │ ü │ ä │ ö y │ z │ , │ . │ k │ ─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─ ``` @@ -49,7 +49,7 @@ All base layers share the same thumb cluster: q │ w │ f │ p │ b j │ l │ u │ y │ ö │(ü) ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── a │ r │ s │ t │ g m │ n │ e │ i │ o │(ä) - ─Σ─┼───┼───┼───┼─── ───┼───┼───┼───┼─Σ─ ─── + (Σ)┼─⌥─┼─⌘─┼─⌃─┼─── ───┼─⌃─┼─⌘─┼─⌥─┼(Σ) ─── z │ x │ c │ d │ v k │ h │ , │ . │ ß │ ─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─ ``` @@ -89,11 +89,11 @@ All base layers share the same thumb cluster: ## Raise (Navigation and control keys) (the home row modifiers on the right are sticky) ``` - (⌥)│PUp│BSp│ ↑ │Del│Ins Prv│Stp│Ply│AGr│Nxt│(⌥) + (⌥)│Esc│BSp│ ↑ │Del│PUp Prv│Stp│Ply│AGr│Nxt│(⌥) ─── ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── (⌃)│Hme│ ← │ ↓ │ → │End * Meh│Sft│ ⌃ │ ⌥ │ ⌘ │(⌃) ─── ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── - (⌘)│Esc│Cut│Cpy│Pst│PDn PSc│CWT│Pse│Ejt│SLk│(⌘) + (⌘)│Ins│Cut│Cpy│Pst│PDn PSc│CWT│Pse│Ejt│SLk│(⌘) ───┌───┬───┐ ┌───┬───┐─── Prv│V -│V ×│ │(v)│V +│Nxt ───└─⇧─┴ATT┘ └───┴─⇧─┘─── @@ -114,7 +114,7 @@ All base layers share the same thumb cluster: ## Attic (Adjustments and missing stuff) ``` - │QBt│ECl│LAs│LAr│APP ¡ │ ‹ │ « │ » │ › │(§) + │QBt│ECl│LAs│LAr│APP ¡ │ ‹ │ « │ » │ › │QBt ─── ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── │LyG│Ly←│Ly→│BsL│MDX ¿ │ • │ ‚ │ ‘ │ ’ │(…) ─── ───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ─── @@ -122,4 +122,15 @@ All base layers share the same thumb cluster: ───┌───┬───┐ ┌───┬───┐─── LSf│Br-│(v)│ │(v)│Br+│RSf ───└─⇧─┴───┘ └───┴─⇧─┘─── -``` +`` +# Portfolio +Currently my board contains the following beauties: +1. Redox (03/2021) (ready assembled) +1. Kyria rev.2 (05/2021) +1. dracuLad w/ Pimorini (08/2022) +1. Iris rev.6 (08/2022) +1. Paintbrush (10/2022) +1. [never worked: Aurora sweep (wireless) (03/2023)] +1. Cantor (11/2023) +1. Corne (wireless) (01/2025) + diff --git a/users/struckmb/config.h b/users/struckmb/config.h index 755fdb13..872c0dae 100644 --- a/users/struckmb/config.h +++ b/users/struckmb/config.h @@ -30,9 +30,10 @@ # endif // DYNAMIC_TAPPING_TERM_ENABLE #else // Tap-hold settings -# define TAPPING_TERM 170 -# define TAP_CODE_DELAY 20 +# define TAPPING_TERM 300 +# define QUICK_TAP_TERM 175 # define PERMISSIVE_HOLD +# define TAP_CODE_DELAY 20 # define TAPPING_FORCE_HOLD # define ONESHOT_TAP_TOGGLE 3 #endif // TAP_DANCE_ENABLED diff --git a/users/struckmb/struckmb.h b/users/struckmb/struckmb.h index 301ac8d4..03e4f503 100644 --- a/users/struckmb/struckmb.h +++ b/users/struckmb/struckmb.h @@ -163,17 +163,19 @@ void symL_reset(tap_dance_state_t *state, void *user_data); void symR_finished(tap_dance_state_t *state, void *user_data); void symR_reset(tap_dance_state_t *state, void *user_data); #endif // TAP_DANCE_ENABLE +#define HRML(k1, k2, k3) LALT_T(k1), LGUI_T(k2), LCTL_T(k3) +#define HRMR(k1, k2, k3) LCTL_T(k1), LGUI_T(k2), LALT_T(k3) // /// // /* KEYMAPS */ // /// // /* first and last column base layer keys for 6x3 keyboards */ // Base layers #define _BASE_L_1_ LALT_T(KC_BSPC) -#define _BASE_L_2_ LCTL_T(KC_ESC) +#define _BASE_L_2_ SY_L(KC_ESC) #define _BASE_L_3_ LGUI_T(KC_APP) // R1 and R2 depend on layout #define _BASE_R_1_(kc) LALT_T(kc) -#define _BASE_R_2_(kc) RCTL_T(kc) +#define _BASE_R_2_(kc) SY_R(kc) #define _BASE_R_3_(kc) RGUI_T(kc) // Additional layers #define _ADD_L_1_ KC_LALT @@ -195,18 +197,20 @@ void symR_reset(tap_dance_state_t *state, void *user_data); #ifdef QWERTY_ENABLE /* QWERTY layout */ +# define __HRM__QL2_4_ HRML(DE_S, DE_D, DE_F), DE_G +# define _HRM_QR2_4_ DE_H, HRMR(DE_J, DE_K, DE_L) # define _QL1_5_ DE_Q, DE_W, DE_E, DE_R, DE_T -# define _QL2_5_ SY_L(DE_A), DE_S, DE_D, DE_F, DE_G +# define _QL2_5_ SY_L(DE_A), __HRM__QL2_4_ # define _QL3_5_ MS(DE_Y), DE_X, DE_C, DE_V, DE_B # define _QR1_5_ DE_Z, DE_U, DE_I, DE_O, DE_P -# define _QR2_5_ DE_H, DE_J, DE_K, DE_L, SY_R(DE_ODIA) +# define _QR2_5_ _HRM_QR2_4_, SY_R(DE_ODIA) # define _QR3_5_ DE_N, DE_M, DE_COMM, DE_DOT, MS(DE_SS) // # define _QL1_6_ _BASE_L_1_, _QL1_5_ -# define _QL2_6_ _BASE_L_2_, _QL2_5_ +# define _QL2_6_ _BASE_L_2_, DE_A, __HRM__QL2_4_ # define _QL3_6_ _BASE_L_3_, _QL3_5_ # define _QR1_6_ _QR1_5_, _BASE_R_1_(DE_UDIA) -# define _QR2_6_ _QR2_5_, _BASE_R_2_(DE_ADIA) +# define _QR2_6_ _HRM_QR2_4_, DE_ODIA, _BASE_R_2_(DE_ADIA) # define _QR3_6_ _QR3_5_, _BASE_R_3_(KC_ENT) // # define _QWERTY_3x5_ _QL1_5_, _QR1_5_, _QL2_5_, _QR2_5_, _QL3_5_, _QR3_5_ @@ -215,18 +219,20 @@ void symR_reset(tap_dance_state_t *state, void *user_data); #ifdef BONE_ENABLE /* BONE layout */ +# define __HRM__BL2_4_ HRML(DE_T, DE_I, DE_E), DE_O +# define __HRM__BR2_4_ DE_B, HRMR(DE_N, DE_R, DE_S) # define _BL1_5_ DE_J, DE_D, DE_U, DE_A, DE_X -# define _BL2_5_ SY_L(DE_C), DE_T, DE_I, DE_E, DE_O +# define _BL2_5_ SY_L(DE_C), __HRM__BL2_4_ # define _BL3_5_ MS(DE_F), DE_V, DE_UDIA, DE_ADIA, DE_ODIA # define _BR1_5_ DE_P, DE_H, DE_L, DE_M, DE_W -# define _BR2_5_ DE_B, DE_N, DE_R, DE_S, SY_R(DE_G) +# define _BR2_5_ __HRM__BR2_4_, SY_R(DE_G) # define _BR3_5_ DE_Y, DE_Z, DE_COMM, DE_DOT, MS(DE_K) // # define _BL1_6_ _BASE_L_1_, _BL1_5_ -# define _BL2_6_ _BASE_L_2_, _BL2_5_ +# define _BL2_6_ _BASE_L_2_, DE_C, __HRM__BL2_4_ # define _BL3_6_ _BASE_L_3_, _BL3_5_ # define _BR1_6_ _BR1_5_, _BASE_R_1_(DE_SS) -# define _BR2_6_ _BR2_5_, _BASE_R_2_(DE_Q) +# define _BR2_6_ __HRM__BR2_4_, DE_G, _BASE_R_2_(DE_Q) # define _BR3_6_ _BR3_5_, _BASE_R_3_(KC_ENT) // # define _BONE_3x5_ _BL1_5_, _BR1_5_, _BL2_5_, _BR2_5_, _BL3_5_, _BR3_5_ @@ -235,18 +241,20 @@ void symR_reset(tap_dance_state_t *state, void *user_data); #ifdef COLEMAK_DH_ENABLE /* Colemak Mod-DH layout (german adaption) */ +# define __HRM__CL2_4_ HRML(DE_R, DE_S, DE_T), DE_G +# define __HRM__CR2_4_ DE_M, HRMR(DE_N, DE_E, DE_I) # define _CL1_5_ DE_Q, DE_W, DE_F, DE_P, DE_B -# define _CL2_5_ SY_L(DE_A), DE_R, DE_S, DE_T, DE_G +# define _CL2_5_ SY_L(DE_A), __HRM__CL2_4_ # define _CL3_5_ MS(DE_Z), DE_X, DE_C, DE_D, DE_V # define _CR1_5_ DE_J, DE_L, DE_U, DE_Y, DE_ODIA -# define _CR2_5_ DE_M, DE_N, DE_E, DE_I, SY_R(DE_O) +# define _CR2_5_ __HRM__CR2_4_, SY_R(DE_O) # define _CR3_5_ DE_K, DE_H, DE_COMM, DE_DOT, MS(DE_SS) // # define _CL1_6_ _BASE_L_1_, _CL1_5_ -# define _CL2_6_ _BASE_L_2_, _CL2_5_ +# define _CL2_6_ _BASE_L_2_, DE_A, __HRM__CL2_4_ # define _CL3_6_ _BASE_L_3_, _CL3_5_ # define _CR1_6_ _BR1_5_, _BASE_R_1_(DE_SS) -# define _CR2_6_ _BR2_5_, _BASE_R_2_(DE_Q) +# define _CR2_6_ __HRM__CR2_4_, DE_Q, SY_R(DE_O) # define _CR3_6_ _BR3_5_, _BASE_R_3_(KC_ENT) // # define _COLEMAK_DH_3x5_ _CL1_5_, _CR1_5_, _CL2_5_, _CR2_5_, _CL3_5_, _CR3_5_ @@ -319,8 +327,8 @@ void symR_reset(tap_dance_state_t *state, void *user_data); # define _PL1_5_ KC_WH_D, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX # define _PL2_5_ KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5 # define _PL3_5_ S_C_TAB, KC_CUT, KC_COPY, KC_PSTE, KC_WH_U -# define _PR1_5_ XXXXXXX, XXXXXXX, MS_CSB1, OSM_AGR, XXXXXXX -# define _PR2_5_ OSM_MEH, OSM_SFT, OSM_CTL, OSM_ALT, OSM_GUI +# define _PR1_5_ XXXXXXX, OSM_SFT, MS_CSB1, OSM_AGR, XXXXXXX +# define _PR2_5_ OSM_MEH, OSM_CTL, OSM_GUI, OSM_ALT, XXXXXXX # define _PR3_5_ XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, C___TAB // # define _PL1_6_ _ADD_L_1_, _PL1_5_ @@ -363,9 +371,9 @@ void symR_reset(tap_dance_state_t *state, void *user_data); #define _LOWER_3x6_ _LL1_6_, _LR1_6_, _LL2_6_, _LR2_6_, _LL3_6_, _LR3_6_ /* Raise: Control + Navigation layer */ -#define _RL1_5_ KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_INS +#define _RL1_5_ KC_ESC, KC_BSPC, KC_UP, KC_DEL, KC_PGUP #define _RL2_5_ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END -#define _RL3_5_ KC_ESC, KC_CUT, KC_COPY, KC_PSTE, KC_PGDN +#define _RL3_5_ KC_INS, KC_CUT, KC_COPY, KC_PSTE, KC_PGDN #define _RR1_5_ KC_MPRV, KC_MSTP, KC_MPLY, OSM_AGR, KC_MNXT #define _RR2_5_ OSM_MEH, OSM_SFT, OSM_CTL, OSM_ALT, OSM_GUI #define _RR3_5_ KC_PSCR, CW_TOGG, KC_PAUS, KC_EJCT, KC_SCRL