Add NOTED layout

This commit is contained in:
struckmb 2025-08-23 20:46:58 +02:00
commit 6022aded6a
6 changed files with 80 additions and 10 deletions

View file

@ -20,7 +20,7 @@ All base layers share the same thumb cluster:
(If the keyboard only has 2 keys on one side, the outermost key (marked with *) is missing) (If the keyboard only has 2 keys on one side, the outermost key (marked with *) is missing)
``` ```
* * * *
⎋ │ ↵ │ ⇥ │ │Rpt│Spc│ ⌦ ⎋ │ ↵ │ ⇥ │ │ ⌦ │Spc│Rpt
───┴─⇧─┴LOW┘ └RSE┴─⇧─┴─── ───┴─⇧─┴LOW┘ └RSE┴─⇧─┴───
``` ```
@ -44,6 +44,16 @@ All base layers share the same thumb cluster:
─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─ ─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─
``` ```
## NOTED
```
z │ y │ u │ a │ q p │ b │ m │ l │ f │(j)
───┼───┼───┼───┼─── ───┼───┼───┼───┼─── ───
c │ s │ i │ e │ o d │ t │ n │ r │ h │(ß)
(Σ)┼─⌥─┼─⌘─┼─⌃─┼─── ───┼─⌃─┼─⌘─┼─⌥─┼(Σ) ───
v │ x │ ü │ ä │ ö w │ g │ , │ . │ k │
─M─┴───┴───┴───┴─── ───┴───┴───┴───┴─M─
```
## Colemak (Mod DH, german adaption) ## Colemak (Mod DH, german adaption)
``` ```
q │ w │ f │ p │ b j │ l │ u │ y │ ö │(ü) q │ w │ f │ p │ b j │ l │ u │ y │ ö │(ü)

View file

@ -1,7 +1,8 @@
#define QWERTY_ENABLE #define QWERTY_ENABLE
#define BONE_ENABLE #define BONE_ENABLE
#define COLEMAK_DH_ENABLE #define NOTED_ENABLE
// #define COLEMAK_DH_ENABLE
/* Charybdis-specific features. */ /* Charybdis-specific features. */

View file

@ -77,6 +77,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef BONE_ENABLE #ifdef BONE_ENABLE
[LAYER_BONE] = LAYOUT_split_3x6_3_wrapper(_BONE_3x6_, _THUMBS_3_2_), [LAYER_BONE] = LAYOUT_split_3x6_3_wrapper(_BONE_3x6_, _THUMBS_3_2_),
#endif // ifdef BONE_ENABLE #endif // ifdef BONE_ENABLE
#ifdef NOTED_ENABLE
[LAYER_NOTED] = LAYOUT_split_3x6_3_wrapper(_NOTED_3x6_, _THUMBS_3_2_),
#endif // ifdef NOTED_ENABLE
#ifdef COLEMAK_DH_ENABLE #ifdef COLEMAK_DH_ENABLE
[LAYER_COLEMAK_DH] = LAYOUT_split_3x6_3_wrapper(_COLEMAK_DH_3x6_, _THUMBS_3_2_), [LAYER_COLEMAK_DH] = LAYOUT_split_3x6_3_wrapper(_COLEMAK_DH_3x6_, _THUMBS_3_2_),
#endif /* ifdef COLEMAK_DH_ENABLE */ #endif /* ifdef COLEMAK_DH_ENABLE */

View file

@ -34,6 +34,9 @@ void symL_finished(tap_dance_state_t *state, void *user_data) {
# ifdef BONE_ENABLE # ifdef BONE_ENABLE
if (LAYER_BONE == current_layer) register_code16(DE_C); if (LAYER_BONE == current_layer) register_code16(DE_C);
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) register_code16(DE_C);
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) register_code16(DE_A); if (LAYER_COLEMAK_DH == current_layer) register_code16(DE_A);
# endif // COLEMAK_DH_ENABLE # endif // COLEMAK_DH_ENABLE
@ -51,6 +54,12 @@ void symL_finished(tap_dance_state_t *state, void *user_data) {
register_code16(DE_C); register_code16(DE_C);
} }
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) {
tap_code16(DE_C);
register_code16(DE_C);
}
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) { if (LAYER_COLEMAK_DH == current_layer) {
tap_code16(DE_A); tap_code16(DE_A);
@ -78,6 +87,9 @@ void symL_reset(tap_dance_state_t *state, void *user_data) {
# ifdef BONE_ENABLE # ifdef BONE_ENABLE
if (LAYER_BONE == current_layer) unregister_code16(DE_C); if (LAYER_BONE == current_layer) unregister_code16(DE_C);
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) unregister_code16(DE_C);
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) unregister_code16(DE_A); if (LAYER_COLEMAK_DH == current_layer) unregister_code16(DE_A);
# endif // COLEMAK_DH_ENABLE # endif // COLEMAK_DH_ENABLE
@ -102,6 +114,9 @@ void symR_finished(tap_dance_state_t *state, void *user_data) {
# ifdef BONE_ENABLE # ifdef BONE_ENABLE
if (LAYER_BONE == current_layer) register_code16(DE_G); if (LAYER_BONE == current_layer) register_code16(DE_G);
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) register_code16(DE_G);
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) register_code16(DE_O); if (LAYER_COLEMAK_DH == current_layer) register_code16(DE_O);
# endif // COLEMAK_DH_ENABLE # endif // COLEMAK_DH_ENABLE
@ -119,6 +134,12 @@ void symR_finished(tap_dance_state_t *state, void *user_data) {
register_code16(DE_G); register_code16(DE_G);
} }
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) {
tap_code16(DE_G);
register_code16(DE_G);
}
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) { if (LAYER_COLEMAK_DH == current_layer) {
tap_code16(DE_O); tap_code16(DE_O);
@ -146,6 +167,9 @@ void symR_reset(tap_dance_state_t *state, void *user_data) {
# ifdef BONE_ENABLE # ifdef BONE_ENABLE
if (LAYER_BONE == current_layer) unregister_code16(DE_G); if (LAYER_BONE == current_layer) unregister_code16(DE_G);
# endif // BONE_ENABLE # endif // BONE_ENABLE
# ifdef NOTED_ENABLE
if (LAYER_NOTED == current_layer) unregister_code16(DE_G);
# endif // NOTED_ENABLE
# ifdef COLEMAK_DH_ENABLE # ifdef COLEMAK_DH_ENABLE
if (LAYER_COLEMAK_DH == current_layer) unregister_code16(DE_O); if (LAYER_COLEMAK_DH == current_layer) unregister_code16(DE_O);
# endif // COLEMAK_DH_ENABLE # endif // COLEMAK_DH_ENABLE

View file

@ -3,6 +3,7 @@
// // select at least on of these base layers // // select at least on of these base layers
// #define QWERTY_ENABLE // #define QWERTY_ENABLE
// #define BONE_ENABLE // #define BONE_ENABLE
// #define NOTED_ENABLE
// #define COLEMAK_DH_ENABLE // #define COLEMAK_DH_ENABLE
// // some additionl layers can be added // // some additionl layers can be added

View file

@ -4,9 +4,11 @@
#ifndef QWERTY_ENABLE #ifndef QWERTY_ENABLE
# ifndef BONE_ENABLE # ifndef BONE_ENABLE
# ifndef NOTED_ENABLE
# ifndef COLEMAK_DH_ENABLE # ifndef COLEMAK_DH_ENABLE
# fail // at least one base layer has to be enabled! # fail // at least one base layer has to be enabled!
# endif // !COLEMAK_DH_ENABLE # endif // !COLEMAK_DH_ENABLE
# endif // !NOTED_ENABLE
# endif // !BONE_ENABLE # endif // !BONE_ENABLE
#endif // !QWERTY_ENABLE #endif // !QWERTY_ENABLE
@ -19,6 +21,9 @@ enum userspace_layers {
#ifdef BONE_ENABLE #ifdef BONE_ENABLE
LAYER_BONE, LAYER_BONE,
#endif /* ifdef BONE_ENABLE */ #endif /* ifdef BONE_ENABLE */
#ifdef NOTED_ENABLE
LAYER_NOTED,
#endif /* ifdef NOTED_ENABLE */
#ifdef COLEMAK_DH_ENABLE #ifdef COLEMAK_DH_ENABLE
LAYER_COLEMAK_DH, LAYER_COLEMAK_DH,
#endif /* ifdef COLEMAK_DH_ENABLE */ #endif /* ifdef COLEMAK_DH_ENABLE */
@ -85,6 +90,9 @@ enum userspace_custom_keycodes {
#ifndef BONE_ENABLE #ifndef BONE_ENABLE
# define LAYER_BONE 0 # define LAYER_BONE 0
#endif // ifndef BONE_ENABLE #endif // ifndef BONE_ENABLE
#ifndef NOTED_ENABLE
# define LAYER_NOTED 0
#endif // ifndef NOTED_ENABLE
#ifndef COLEMAK_DH_ENABLE #ifndef COLEMAK_DH_ENABLE
# define LAYER_COLEMAK_DH 0 # define LAYER_COLEMAK_DH 0
#endif // ifndef COLEMAK_DH_ENABLE #endif // ifndef COLEMAK_DH_ENABLE
@ -105,6 +113,7 @@ enum userspace_custom_keycodes {
// sticky layers (withstands reset): // sticky layers (withstands reset):
#define DL_QWER PDF(LAYER_QWERTY) #define DL_QWER PDF(LAYER_QWERTY)
#define DL_BONE PDF(LAYER_BONE) #define DL_BONE PDF(LAYER_BONE)
#define DL_NOTE PDF(LAYER_NOTED)
#define DL_CODH PDF(LAYER_COLEMAK_DH) #define DL_CODH PDF(LAYER_COLEMAK_DH)
// non-sticky layers (return to saved after reset): // non-sticky layers (return to saved after reset):
#define DL_GAME DF(LAYER_GAME) #define DL_GAME DF(LAYER_GAME)
@ -249,6 +258,28 @@ void symR_reset(tap_dance_state_t *state, void *user_data);
# define _BONE_3x6_ _BL1_6_, _BR1_6_, _BL2_6_, _BR2_6_, _BL3_6_, _BR3_6_ # define _BONE_3x6_ _BL1_6_, _BR1_6_, _BL2_6_, _BR2_6_, _BL3_6_, _BR3_6_
#endif // BONE_ENABLE #endif // BONE_ENABLE
#ifdef NOTED_ENABLE
/* NOTED layout */
# define __HRM__NL2_4_ HRML(DE_S, DE_I, DE_E), DE_O
# define __HRM__NR2_4_ DE_D, HRMR(DE_T, DE_N, DE_R)
# define _NL1_5_ DE_Z, DE_Y, DE_U, DE_A, DE_Q
# define _NL2_5_ SY_L(DE_C), __HRM__NL2_4_
# define _NL3_5_ MS(DE_V), DE_X, DE_UDIA, DE_ADIA, DE_ODIA
# define _NR1_5_ DE_P, DE_B, DE_M, DE_L, DE_F
# define _NR2_5_ __HRM__NR2_4_, SY_R(DE_H)
# define _NR3_5_ DE_W, DE_G, DE_COMM, DE_DOT, MS(DE_K)
//
# define _NL1_6_ _BASE_L_1_, _NL1_5_
# define _NL2_6_ _BASE_L_2_, DE_C, __HRM__NL2_4_
# define _NL3_6_ _BASE_L_3_, _NL3_5_
# define _NR1_6_ _NR1_5_, _BASE_R_1_(DE_J)
# define _NR2_6_ __HRM__NR2_4_, DE_H, _BASE_R_2_(DE_SS)
# define _NR3_6_ _NR3_5_, _BASE_R_3_(KC_ENT)
//
# define _NOTED_3x5_ _NL1_5_, _NR1_5_, _NL2_5_, _NR2_5_, _NL3_5_, _NR3_5_
# define _NOTED_3x6_ _NL1_6_, _NR1_6_, _NL2_6_, _NR2_6_, _NL3_6_, _NR3_6_
#endif // NOTED_ENABLE
#ifdef COLEMAK_DH_ENABLE #ifdef COLEMAK_DH_ENABLE
/* Colemak Mod-DH layout (german adaption) */ /* Colemak Mod-DH layout (german adaption) */
# define __HRM__CL2_4_ HRML(DE_R, DE_S, DE_T), DE_G # define __HRM__CL2_4_ HRML(DE_R, DE_S, DE_T), DE_G
@ -263,9 +294,9 @@ void symR_reset(tap_dance_state_t *state, void *user_data);
# define _CL1_6_ _BASE_L_1_, _CL1_5_ # define _CL1_6_ _BASE_L_1_, _CL1_5_
# define _CL2_6_ _BASE_L_2_, DE_A, __HRM__CL2_4_ # define _CL2_6_ _BASE_L_2_, DE_A, __HRM__CL2_4_
# define _CL3_6_ _BASE_L_3_, _CL3_5_ # define _CL3_6_ _BASE_L_3_, _CL3_5_
# define _CR1_6_ _BR1_5_, _BASE_R_1_(DE_SS) # define _CR1_6_ _CR1_5_, _BASE_R_1_(DE_SS)
# define _CR2_6_ __HRM__CR2_4_, DE_Q, SY_R(DE_O) # define _CR2_6_ __HRM__CR2_4_, DE_Q, SY_R(DE_O)
# define _CR3_6_ _BR3_5_, _BASE_R_3_(KC_ENT) # define _CR3_6_ _CR3_5_, _BASE_R_3_(KC_ENT)
// //
# define _COLEMAK_DH_3x5_ _CL1_5_, _CR1_5_, _CL2_5_, _CR2_5_, _CL3_5_, _CR3_5_ # define _COLEMAK_DH_3x5_ _CL1_5_, _CR1_5_, _CL2_5_, _CR2_5_, _CL3_5_, _CR3_5_
# define _COLEMAK_DH_3x6_ _CL1_6_, _CR1_6_, _CL2_6_, _CR2_6_, _CL3_6_, _CR3_6_ # define _COLEMAK_DH_3x6_ _CL1_6_, _CR1_6_, _CL2_6_, _CR2_6_, _CL3_6_, _CR3_6_