diff --git a/build.yaml b/build.yaml index 8472a2f2..5a23d393 100644 --- a/build.yaml +++ b/build.yaml @@ -29,6 +29,8 @@ include: shield: wizzades_right - board: nice_nano_v2 shield: asfoora + - board: nice_nano_v2 + shield: wasfoora - board: seeeduino_xiao_ble shield: rommana_left rgbled_widget - board: seeeduino_xiao_ble diff --git a/config/base30.keymap b/config/base30.keymap index 748d373a..b149f1dd 100644 --- a/config/base30.keymap +++ b/config/base30.keymap @@ -119,6 +119,10 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ ¯o_nav &kp SPACE &skq LSHIFT ¯o_sym // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; @@ -135,6 +139,10 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ &trans &trans &trans &trans // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; @@ -151,6 +159,10 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ &trans &trans &trans &trans // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; @@ -167,6 +179,10 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ ¯o_navW &kp SPACE &skq LSHIFT ¯o_symW // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; @@ -185,6 +201,10 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ ¯o_navW &kp SPACE &skq LSHIFT ¯o_symW // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; @@ -201,7 +221,12 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ &trans &trans &trans &trans // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif >; + #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; #endif @@ -217,7 +242,13 @@ // ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ &trans &trans &trans &trans // ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + + #ifdef FIVEWAY + &kp C &kp G &kp D &kp L &kp O + #endif + >; + #ifdef ENCODERS sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP &inc_dec_kp PG_UP PG_DN>; #endif diff --git a/config/boards/shields/wasfoora/Kconfig.defconfig b/config/boards/shields/wasfoora/Kconfig.defconfig new file mode 100644 index 00000000..461081ce --- /dev/null +++ b/config/boards/shields/wasfoora/Kconfig.defconfig @@ -0,0 +1,9 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if SHIELD_WASFOORA + +config ZMK_KEYBOARD_NAME + default "Wasfoora" + +endif diff --git a/config/boards/shields/wasfoora/Kconfig.shield b/config/boards/shields/wasfoora/Kconfig.shield new file mode 100644 index 00000000..c561063c --- /dev/null +++ b/config/boards/shields/wasfoora/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2021 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config SHIELD_WASFOORA + def_bool $(shields_list_contains,wasfoora) diff --git a/config/boards/shields/wasfoora/asfoora.conf b/config/boards/shields/wasfoora/asfoora.conf new file mode 100644 index 00000000..3c6c73c0 --- /dev/null +++ b/config/boards/shields/wasfoora/asfoora.conf @@ -0,0 +1,24 @@ +CONFIG_EC11=y +CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y + +# increase bluetooth signal power +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y + +# enable deep sleep support +CONFIG_ZMK_SLEEP=y + +# "Eager Debouncing" +# Trying to lower the input lag. +CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1 +CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5 + +# the keyboard disconnects from bluetooth. +# uses very little power, but it may take +# a few seconds to reconnect after waking. +# 1.800.000 ms = 30 minutes +CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 + +# Better compatibility with iPadOS +CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y + +CONFIG_ZMK_COMBO_MAX_COMBOS_PER_KEY=20 diff --git a/config/boards/shields/wasfoora/asfoora.keymap b/config/boards/shields/wasfoora/asfoora.keymap new file mode 100644 index 00000000..664ff624 --- /dev/null +++ b/config/boards/shields/wasfoora/asfoora.keymap @@ -0,0 +1,4 @@ +#define FIVEWAY + +#include "../../../base30.keymap" + diff --git a/config/boards/shields/wasfoora/asfoora.keymap.bak b/config/boards/shields/wasfoora/asfoora.keymap.bak new file mode 100644 index 00000000..018914ce --- /dev/null +++ b/config/boards/shields/wasfoora/asfoora.keymap.bak @@ -0,0 +1,207 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +#define HDN 0 +#define APT 1 +#define NAV 2 +#define SYM 3 +#define HDNW 4 +#define APTW 5 +#define NAVW 6 +#define SYMW 7 + +#define SK(KEY) &nk KEY KEY + +&sk { + release-after-ms = <60000>; +}; + +&caps_word { + continue-list = ; +}; + +/* KEY POSITIONS + + ╭────────────────────╮ ╭────────────────────╮ + │ 0 1 2 3 4 │ │ 5 6 7 8 9 │ + │ 10 11 12 13 14 │ │ 15 16 17 18 19 │ + │ 20 21 22 │ │ 23 24 25 │ + ╰───────────╮ 26 27 │ │ 28 29 ╭───────────╯ + ╰────────╯ ╰────────╯ */ + +/ { + + behaviors { + + // Sticky key on tap, normal key on hold + // Useful for modifier-clicking without the modifier remaining active + nk: not_so_sticky_key { + compatible = "zmk,behavior-hold-tap"; + label = "NOT_SO_STICKY_KEY"; + #binding-cells = <2>; + tapping_term_ms = <250>; + flavor = "tap-preferred"; + bindings = <&kp>, <&sk>; + }; + + skq: sticky_key_quick_release { + compatible = "zmk,behavior-sticky-key"; + label = "STICKY_KEY_QUICK_RELEASE"; + #binding-cells = <1>; + bindings = <&kp>; + quick-release; + release-after-ms = <750>; + }; + + lal: layer-alpha { + compatible = "zmk,behavior-hold-tap"; + label = "LAYER_ALPHA"; + #binding-cells = <2>; + flavor = "balanced"; + tapping-term-ms = <170>; + quick-tap-ms = <100>; + global-quick-tap; + bindings = <&mo>, <&kp>; + }; + + combos { + #include "combos30.dtsi" + }; + macros { + #include "macros.dtsi" + }; + }; + + keymap { + compatible = "zmk,keymap"; + + hands_down { + label = "HDN"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp W &kp F &kp M &kp P &kp B &kp COMMA &kp X &kp SQT &kp J &kp K + &kp R &kp S &kp N &kp T &kp G &kp DOT &kp A &kp E &kp I &kp H + &kp C &kp L &kp D &kp SLASH &kp SLASH &kp U &kp O &kp Y +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + ¯o_nav &kp SPACE &skq LSHIFT ¯o_sym +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + + apt { + label = "APT"; + bindings = < +// [z] +// w f g p b x j , . ' +// r s t h k m n e i a +// c y d l o u +// [v][q] + +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp W &kp F &kp G &kp P &kp B &kp X &kp J &kp COMMA &kp DOT &kp SQT +// ├──── ─────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp R &kp S &kp T &kp H &kp K &kp M &kp N &kp E &kp I &kp A +// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp C &kp Y &kp D &kp SLASH &kp SLASH &kp L &kp O &kp U +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + ¯o_nav &kp SPACE &skq LSHIFT ¯o_sym +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + }; + + navigation { + label = "NAV"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp LC(LA(LS(P))) &kp ENTER &kp BACKSPACE &kp TAB &kp DELETE &kp LA(BACKSPACE) &none &kp UP &kp LG(Q) &kp LA(LC(LS(LG(K)))) + SK(LCTRL) SK(LALT) SK(LGUI) SK(LSHIFT) &kp LG(A) &kp LG(A) &kp LEFT &kp DOWN &kp RIGHT &kp LA(LC(LS(LG(Y)))) + &kp LG(X) &kp LG(C) &kp LG(V) &kp SLASH &kp SLASH &kp ENTER &kp BACKSPACE &kp TAB +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + &trans &trans &trans &trans +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + + symbols { + label = "SYM"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp TILDE &kp N9 &kp N8 &kp N7 &kp EQUAL &kp COMMA &kp SEMI &kp COLON &kp BSLH &kp GRAVE + &kp N3 &kp N2 &kp N1 &kp N0 &kp MINUS &kp DOT SK(LSHIFT) SK(LGUI) SK(LALT) SK(LCTRL) + &kp N6 &kp N5 &kp N4 &kp SLASH &kp SLASH &kp QMARK &kp EXCL &kp SLASH +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + &trans &trans &trans &trans +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + + hands_down_windows { + label = "HDNW"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp W &kp F &kp M &kp P &kp B &kp COMMA &kp X &kp SQT &kp J &kp K + &kp R &kp S &kp N &kp T &kp G &kp DOT &kp A &kp E &kp I &kp H + &kp C &kp L &kp D &kp SLASH &kp SLASH &kp U &kp O &kp Y +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + ¯o_navW &kp SPACE &skq LSHIFT ¯o_symW +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + + aptw { + label = "APTW"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp W &kp F &kp G &kp P &kp B &kp X &kp J &kp COMMA &kp DOT &kp SQT +// ├──── ─────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp R &kp S &kp T &kp H &kp K &kp M &kp N &kp E &kp I &kp A +// ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp C &kp Y &kp D &kp SLASH &kp SLASH &kp L &kp O &kp U +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + ¯o_navW &kp SPACE &skq LSHIFT ¯o_symW +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + + navigation_windows { + label = "NAVW"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ +&kp LC(LA(LS(P))) &kp ENTER &kp BACKSPACE &kp TAB &kp DELETE &kp LC(BACKSPACE) &kp F2 &kp UP &kp LA(F4) &none + SK(LGUI) SK(LALT) SK(LCTRL) SK(LSHIFT) &kp LC(A) &kp LC(A) &kp LEFT &kp DOWN &kp RIGHT &kp LA(F10) + &kp LC(X) &kp LC(C) &kp LC(V) &kp SLASH &kp SLASH &kp ENTER &kp BACKSPACE &kp TAB +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + &trans &trans &trans &trans +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + }; + + symbols_windows { + label = "SYMW"; + bindings = < +// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp TILDE &kp N9 &kp N8 &kp N7 &kp EQUAL &kp COMMA &kp SEMI &kp COLON &kp BSLH &kp GRAVE + &kp N3 &kp N2 &kp N1 &kp N0 &kp MINUS &kp DOT SK(LSHIFT) SK(LCTRL) SK(LALT) SK(LGUI) + &kp N6 &kp N5 &kp N4 &kp SLASH &kp SLASH &kp QMARK &kp EXCL &kp SLASH +// ╰─────────────┴─────────────┼─────────────┤ ├─────────────┼─────────────┴─────────────╯ + &trans &trans &trans &trans +// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯ + >; + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; + }; + }; + +}; \ No newline at end of file diff --git a/config/boards/shields/wasfoora/asfoora.overlay b/config/boards/shields/wasfoora/asfoora.overlay new file mode 100644 index 00000000..089fc275 --- /dev/null +++ b/config/boards/shields/wasfoora/asfoora.overlay @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,matrix_transform = &default_transform; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <8>; + rows = <5>; + map = < + RC(2,0) RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(2,7) + RC(3,0) RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(3,7) + RC(3,1) RC(2,1) RC(2,2) RC(2,5) RC(2,6) RC(3,6) + RC(3,2) RC(3,3) RC(3,4) RC(3,5) + + RC(0,2) RC(1,2) RC(2,3) RC(3,4) RC(4,5) + + >; + }; + + kscan0: kscan_0 { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + diode-direction = "row2col"; + + col-gpios + = <&pro_micro 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + + row-gpios + = <&pro_micro 6 GPIO_ACTIVE_HIGH> + , <&pro_micro 7 GPIO_ACTIVE_HIGH> + , <&pro_micro 8 GPIO_ACTIVE_HIGH> + , <&pro_micro 9 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + ; + }; + +}; diff --git a/config/boards/shields/wasfoora/combos30.dtsi b/config/boards/shields/wasfoora/combos30.dtsi new file mode 100644 index 00000000..f1ddff45 --- /dev/null +++ b/config/boards/shields/wasfoora/combos30.dtsi @@ -0,0 +1,84 @@ +/* KEY POSITIONS + + ╭────────────────────╮ ╭────────────────────╮ + │ 0 1 2 3 4 │ │ 5 6 7 8 9 │ + │ 10 11 12 13 14 │ │ 15 16 17 18 19 │ + │ 20 21 22 23 │ │ 24 25 26 27 │ + ╰───────────╮ 28 29 │ │ 30 31 ╭───────────╯ + ╰────────╯ ╰────────╯ */ + +compatible = "zmk,combos"; + +#define COMBO(NAME, BINDINGS, KEYPOS, LAYERS) \ + combo_##NAME { \ + bindings = ; \ + timeout-ms = <30>; \ + key-positions = ; \ + layers = ; \ + }; + +#define GCOMBO(NAME, BINDINGS, KEYPOS) \ + combo_##NAME { \ + bindings = ; \ + timeout-ms = <30>; \ + key-positions = ; \ + }; + +#define ALPHA_ALL HDN HDNW APT APTW +#define ALPHA_MAC HDN APT +#define ALPHA_WIN HDNW APTW + +/* Missing Alphas */ +COMBO(Q, &kp Q, 21 22, ALPHA_ALL) // Q +COMBO(Z, &kp Z, 1 2, ALPHA_ALL) // Z +COMBO(V, &kp V, 20 21, ALPHA_ALL) // V + +/* Brackets */ +COMBO(left_bracket, &kp LBKT, 1 11, ALPHA_ALL) +COMBO(right_bracket, &kp RBKT, 8 18, ALPHA_ALL) +COMBO(left_parenthesis, &kp LPAR, 2 12, ALPHA_ALL) +COMBO(right_parenthesis, &kp RPAR, 7 17, ALPHA_ALL) +COMBO(left_brace, &kp LBRC, 3 13, ALPHA_ALL) +COMBO(right_brace, &kp RBRC, 6 16, ALPHA_ALL) + +/* Text */ +COMBO(caps_word, &caps_word, 27 28, ALPHA_ALL) + +/* Mac */ +COMBO(redo, &kp LG(LS(Z)), 3 4, ALPHA_MAC) +COMBO(undo, &kp LG(Z), 13 14, ALPHA_MAC) +COMBO(delete_word, &kp LA(BACKSPACE), 2 12, NAV) + +/* Win */ +COMBO(redow, &kp LC(Y), 3 4, ALPHA_WIN) +COMBO(undow, &kp LC(Z), 13 14, ALPHA_WIN) +COMBO(delete_wordw, &kp LC(BACKSPACE), 2 12, NAVW) + +/* misc */ +COMBO(esc, &kp ESC, 22 28, ALPHA_ALL) +COMBO(launcher, &kp LG(SPACE), 20 22, ALPHA_ALL) +COMBO(clipboard_manager, &kp LG(LC(LA(LS(Z)))), 20 21 22, ALPHA_ALL) +COMBO(key_repeat_r, &key_repeat, 15 23, ALPHA_ALL) +COMBO(key_repeat_l, &key_repeat, 14 22, ALPHA_ALL) + + /* Mac */ +COMBO(lock_screen, &kp LG(LC(Q)), 6 7 8, NAV) +COMBO(sym1h, ¯o_sym, 28 29, ALPHA_MAC) + + /* Win */ +COMBO(lock_screenw, &kp LG(L), 6 7 8, NAVW) +COMBO(sym1hw, ¯o_symW, 28 29, ALPHA_WIN) + +/* bluetooth */ +COMBO(bt_clear, &bt BT_CLR, 0 14, NAV NAVW) +COMBO(bt_0, &bt BT_SEL 0, 0 1, NAV NAVW) +COMBO(bt_1, &bt BT_SEL 1, 1 2, NAV NAVW) +COMBO(bt_2, &bt BT_SEL 2, 2 3, NAV NAVW) +COMBO(bt_3, &bt BT_SEL 3, 3 4, NAV NAVW) + +/* mac | win */ +GCOMBO(switch_to_HDN_mac, &to HDN, 0 10 28) +GCOMBO(switch_to_HDN_win, &to HDNW, 9 19 31) + +GCOMBO(switch_to_APT_mac, &to APT, 1 11 28) +GCOMBO(switch_to_APT_win, &to APTW, 8 18 31) \ No newline at end of file diff --git a/config/boards/shields/wasfoora/macros.dtsi b/config/boards/shields/wasfoora/macros.dtsi new file mode 100644 index 00000000..d7a494f5 --- /dev/null +++ b/config/boards/shields/wasfoora/macros.dtsi @@ -0,0 +1,20 @@ +/* Macro macro: */ +#define str(s) #s +#define MACRO(NAME, BINDINGS, WAITMS, TAPMS) \ + macro_##NAME: macro_##NAME { \ + compatible = "zmk,behavior-macro"; \ + label = str(macro_##NAME); \ + #binding-cells = <0>; \ + wait-ms = ; \ + tap-ms = ; \ + bindings = ; \ + }; + +/* macro: */ +MACRO(nav, ¯o_tap &kp K_CANCEL ¯o_press &mo NAV ¯o_pause_for_release ¯o_release &mo NAV, 0, 0) +MACRO(sym, ¯o_tap &kp K_CANCEL ¯o_press &mo SYM ¯o_pause_for_release ¯o_release &mo SYM, 0, 0) + +MACRO(navW, ¯o_tap &kp K_CANCEL ¯o_press &mo NAVW ¯o_pause_for_release ¯o_release &mo NAVW, 0, 0) +MACRO(symW, ¯o_tap &kp K_CANCEL ¯o_press &mo SYMW ¯o_pause_for_release ¯o_release &mo SYMW, 0, 0) + +MACRO(grave3, ¯o_tap &kp GRAVE ¯o_tap &kp GRAVE ¯o_tap &kp GRAVE, 0, 0)