From d2226c1e19a87102b2a5dd2ac218dbe696525d30 Mon Sep 17 00:00:00 2001 From: urob <978080+urob@users.noreply.github.com> Date: Wed, 22 Jun 2022 17:17:19 -0400 Subject: [PATCH] Unicode (proof of concept) --- config/base.keymap | 16 +++++++++++++++- config/unicode.dtsi | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 config/unicode.dtsi diff --git a/config/base.keymap b/config/base.keymap index 502aa07..acf2fe1 100644 --- a/config/base.keymap +++ b/config/base.keymap @@ -140,7 +140,7 @@ TODOs and ISSUES // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ &kp Z &kp X &kp C &kp D &kp V EXTRA_MID &kp K &kp H &kp COMMA &kp DOT &kp SEMI // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ - EXTRA_BOT_L &kp ESC < NAV SPACE < SYS TAB EXTRA_MID < FN RET &bs_del_num &ss_cw EXTRA_BOT_R + EXTRA_BOT_L < UC ESC < NAV SPACE < SYS TAB EXTRA_MID < FN RET &bs_del_num &ss_cw EXTRA_BOT_R // ╰─────────────╯ ╰─────────────┴──── ────────┴─────────────╯ ╰─────────────╯ ╰─────────────┴─────────────┴─────────────╯ ╰─────────────╯ >; }; @@ -201,6 +201,20 @@ TODOs and ISSUES >; }; + uc_layer { + bindings = < + // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + ___ ___ ___ ___ ___ EXTRA_MID ___ ___ ___ ___ ___ + // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &uc_alpha ___ ___ ___ ___ EXTRA_MID ___ ___ ___ ___ ___ + // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + ___ ___ ___ ___ ___ EXTRA_MID ___ ___ &uc_ae ___ ___ + // ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + EXTRA_BOT_L ___ ___ ___ EXTRA_MID ___ ___ ___ EXTRA_BOT_R + // ╰─────────────╯ ╰─────────────┴──── ────────┴─────────────╯ ╰─────────────╯ ╰─────────────┴─────────────┴─────────────╯ ╰─────────────╯ + >; + }; + }; }; diff --git a/config/unicode.dtsi b/config/unicode.dtsi new file mode 100644 index 0000000..33e50b8 --- /dev/null +++ b/config/unicode.dtsi @@ -0,0 +1,41 @@ +#define OS_LEAD &kp RALT &kp U // OS specific sequence to initialize unicode +#define OS_TRAIL &kp RET // OS specific sequence to terminate unicode + +#define UNICODE_MACRO(NAME, UNICODE_BINDING) \ + NAME: NAME { \ + wait-ms = <1>; \ + tap-ms = <5>; \ + compatible = "zmk,behavior-macro"; \ + label = "NAME"; \ + #binding-cells = <0>; \ + bindings = ; \ + }; + +#define UNI_ONE(NAME, U0, U1, U2, U3) \ + macros { \ + UNICODE_MACRO(uc_##NAME, &kp U0 &kp U1 &kp U2 &kp U3) \ + }; + +#define UNI_TWO(NAME, U0, U1, U2, U3, S0, S1, S2, S3) \ + macros { \ + UNICODE_MACRO(uc_0_##NAME, &kp U0 &kp U1 &kp U2 &kp U3) \ + UNICODE_MACRO(uc_1_##NAME, &kp S0 &kp S1 &kp S2 &kp S3) \ + }; \ + behaviors { \ + uc_##NAME: uc_##NAME { \ + compatible = "zmk,behavior-mod-morph"; \ + label = "uc_##NAME"; \ + #binding-cells = <0>; \ + bindings = <&uc_0_##NAME>, <&uc_1_##NAME>; \ + mods = ; \ + masked_mods = ; \ + }; \ + }; + + +// add some definitions here + +UNI_ONE(alpha, N0, N3, B, N1) + +UNI_TWO(ae, N0, N0, E, N4, N0, N0, C, N4) +