diff --git a/config/flea.keymap b/config/flea.keymap index e0b6db0..fcaebe0 100644 --- a/config/flea.keymap +++ b/config/flea.keymap @@ -25,7 +25,13 @@ release-after-ms = <60000>; }; + / { + +macros { + #include "macros.dtsi" +}; + ZMK_MACRO(mo_nav, wait-ms = <0>; tap-ms = <0>; @@ -244,7 +250,7 @@ label = "Exl"; bindings = < // ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ - &bt BT_PRV &bt BT_CLR &bt BT_NXT &none &kp LC(HOME) &kp LC(HOME) &bt BT_SEL 1 &bt BT_SEL 2 + &bt BT_PRV &bt BT_CLR &bt BT_NXT &none &kp LC(HOME) &kp LC(HOME) &kp F4 &bt BT_SEL 2 &none &none &none &none &none &kp LC(END) &bt BT_SEL 3 &kp F2 &bt BT_SEL 5 &kp LS(SPACE) &none &sys_reset &none &bootloader &kp LS(LC(DLLR)) &kp LC(TILDE) &kp LS(LC(PRCNT)) &kp LC(SPACE) // ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯ diff --git a/config/macros.dtsi b/config/macros.dtsi index d9d41a3..119ece6 100644 --- a/config/macros.dtsi +++ b/config/macros.dtsi @@ -1,23 +1,28 @@ - ZMK_MACRO(leq, - wait-ms = <30>; - tap-ms = <40>; - bindings = <&kp LT &kp EQUAL>; - ) +/* Macro macro: */ +#define str(s) #s +#define MACRO(NAME, BINDINGS) \ + macro_##NAME: macro_##NAME { \ + compatible = "zmk,behavior-macro"; \ + label = str(macro_##NAME); \ + #binding-cells = <0>; \ + wait-ms = <30>; \ + tap-ms = <40>; \ + bindings = ; \ + }; - ZMK_MACRO(eq, - wait-ms = <30>; - tap-ms = <40>; - bindings = <&kp EQUAL &kp EQUAL>; - ) +/* Brackets */ +MACRO(parentheses, &kp LEFT_PARENTHESIS &kp RIGHT_PARENTHESIS &kp LEFT) +MACRO(brackets, &kp LEFT_BRACKET &kp RIGHT_BRACKET &kp LEFT) +MACRO(ltgt, &kp LESS_THAN &kp GREATER_THAN &kp LEFT) - ZMK_MACRO(geq, - wait-ms = <30>; - tap-ms = <40>; - bindings = <&kp GT &kp EQUAL>; - ) +/* Suspend macOS by holding power key for 1 second */ +MACRO(power, ¯o_tap_time 1000 &kp C_POWER) - ZMK_MACRO(neq, - wait-ms = <30>; - tap-ms = <40>; - bindings = <&kp EXCL &kp EQUAL>; - ) +/* Excel Macros */ + +MACRO(exl_ins_abv, &kp LC(PLUS)) // Insert Row Above +MACRO(exl_ins_bel, &kp LC(LS(PLUS))) // Insert Row Below +MACRO(exl_auto_sum, &kp LA(EQUAL)) // AutoSum +MACRO(exl_tgl_df, &kp LC(GRAVE)) // Toggle data/formulas +MACRO(exl_cur_fmt, &kp LC(LS(DLLR))) // Currency format +MACRO(exl_pct_fmt, &kp LC(LS(PRCNT))) // Percent format