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

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

#define DEFAULT 0
#define LOWER 1
#define RAISE 2

/ {
    behaviors {
        hm: homerow_mods {
            compatible = "zmk,behavior-hold-tap";
            label = "homerow mods";
            #binding-cells = <2>;
            tapping_term_ms = <225>;
            flavor = "tap-preferred";
            bindings = <&kp>, <&kp>;
        };
    };
};

/ {
    keymap {
        compatible = "zmk,keymap";

        default_layer {
            bindings = <
    &kp ESC   &kp Q       &kp W       &kp E       &kp R       &kp T     &kp Y     &kp U       &kp I        &kp O       &kp P          &kp BSPC
    &kp TAB   &hm LGUI A  &hm LALT S  &hm LCTRL D &hm LSHFT F &kp G     &kp H     &hm RSHFT J &hm RCTRL K  &hm RALT L  &hm RGUI SEMI &kp RET
    &kp LSHFT &kp Z       &kp X       &kp C       &kp V       &kp B     &kp N     &kp M       &kp COMMA    &kp DOT     &kp FSLH      &kp SQT
    &kp LCTRL &kp LALT    &kp LGUI    &lt 1 BSPC  &lt 2 SPACE &kp LEFT  &kp DOWN  &kp UP      &kp RIGHT
            >;
        };
        lower {
            bindings = <
    &kp GRAVE    &kp F1  &kp F2       &kp F3  &kp F4  &kp F5  &kp F6        &kp F7        &kp F8        &kp F9       &kp F10     &kp F11     &kp F12  &kp PSCRN
    &kp DEL      &trans  &kp K_VOL_UP &trans  &trans  &trans  &trans        &kp LEFT      &kp DOWN      &kp UP       &kp RIGHT   &trans
    &trans       &trans  &kp K_VOL_DN &trans  &trans  &trans  &trans        &trans        &trans        &bt BT_PRV   &bt BT_NXT  &bt BT_CLR
    &bootloader  &reset  &trans       &trans  &trans  &trans  &bt BT_SEL 0  &bt BT_SEL 1  &bt BT_SEL 2  &bt BT_SEL 3
            >;
        };

    raise {
            bindings = <
    &kp GRAVE &kp N1     &kp N2     &kp N3     &kp N4     &kp N5     &kp N6      &kp N7       &kp N8       &kp N9     &kp N0     &kp PSCRN
    &kp DEL   &kp F1     &kp F2     &kp F3     &kp F4     &kp F5     &kp F6      &kp MINUS    &kp EQUAL    &kp LBKT   &kp RBKT   &kp BSLH
    &trans    &kp F7     &kp F8     &kp F9     &kp F10    &kp F11    &kp F12     &kp TILDE    &kp HOME     &kp PG_UP  &kp PG_DN  &kp END
    &trans    &trans     &trans     &trans     &trans     &trans     &kp C_NEXT  &kp C_VOL_DN &kp C_VOL_UP &kp C_PP
            >;
        };
    };
};