/*
 * Copyright (c) 2022 The ZMK Contributors
 *
 * SPDX-License-Identifier: MIT
 */

#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/kscan_mock.h>

/ {
    macros {
        ZMK_MACRO(abc_macro,
            wait-ms = <10>;
            tap-ms = <50>;
            bindings = <&kp A &kp B &kp C>;
        )

        ZMK_MACRO(hold_shift_macro,
            bindings
                = <&macro_press &kp LSHFT>
                , <&macro_tap>
                , <&kp D &kp O &kp G>
                , <&macro_release &kp LSHFT>
                ;
        )

        ZMK_MACRO(custom_timing,
            bindings
                = <&macro_wait_time 50>
                , <&kp A>
                , <&macro_tap_time 20>
                , <&kp B &kp C>
                ;
        )

        ZMK_MACRO(dual_sequence_macro,
            wait-ms = <10>;
            tap-ms = <40>;
            bindings
                = <&macro_press &kp LALT>
                , <&macro_tap>
                , <&kp TAB>
                , <&macro_pause_for_release>
                , <&macro_release &kp LALT>
                ;
        )
    };

    keymap {
        compatible = "zmk,keymap";
        label ="Default keymap";

        default_layer {
            bindings = <
                &abc_macro &mo 1
                &hold_shift_macro &custom_timing>;
        };

        extra_layer {
            bindings = <
                &dual_sequence_macro &trans
                &kp TAB &none>;

        };

    };
};
