/*
 * 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>

/ {
	behaviors {
		rst: boot_reset {
			compatible = "zmk,behavior-hold-tap";
			label = "Hold Tap Bootloader-Reset";
			#binding-cells = <2>;
			tapping_term_ms = <150>;
			flavor = "balanced";
			bindings = <&bootloader>, <&reset>;
		};

		tildeesc: tilde_escape {
			compatible = "zmk,behavior-mod-morph";
			label = "TILDE_ESCAPE";
			#binding-cells = <0>;
			bindings = <&kp ESC>, <&kp TILDE>;
            mods = <(MOD_LSFT)>;
		};

		ht: hold_tap {
            compatible = "zmk,behavior-hold-tap";
            label = "HOLD_TAP";
            #binding-cells = <2>;
            tapping_term_ms = <150>;
            flavor = "tap-preferred";
            bindings = <&kp>, <&kp>;
        };
	};

	keymap {
		compatible = "zmk,keymap";
		
		default_layer {
			bindings = <
                &rst B R
				&tildeesc   &kp Q     &kp W    &kp E    &kp R  &kp T   &kp Y     &kp U  &kp I           &ht MINUS O  &ht EQUAL P   &kp BSPC
				&kp TAB     &kp A     &kp S    &kp D    &kp F  &kp G   &kp H     &kp J  &kp K           &kp L        &ht APOS SEMI &ht BSLH RET
				&kp LSHFT   &kp Z     &kp X    &kp C    &kp V  &kp B   &kp N     &kp M  &ht LBKT COMMA  &ht RBKT DOT &kp FSLH      &mt RSHFT FSLH
				&kp LCTRL   &kp LGUI  &kp LALT &kp CAPS &mo 1  &kp DEL &kp SPACE &mo 2  &kp LEFT        &kp DOWN     &kp UP        &kp RIGHT
			>;
		};

		lower_layer {
			bindings = <
                &none
				&kp GRAVE &kp N1 &kp N2   &kp N3   &kp N4    &kp N5    &kp N6   &kp N7    &kp N8   &kp N9   &kp N0    &kp DEL
				&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 EXCL  &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &none     &none
				&trans    &trans &trans   &trans   &trans    &trans    &trans   &trans    &trans   &trans   &trans    &trans
			>;
		};

		raise_layer {
			bindings = <
                &none
				&trans     &trans     &kp PG_UP  &kp UP   &kp PG_DN &trans  &trans &trans &trans           &trans       &trans       &kp DEL
				&trans     &trans     &kp LEFT   &kp DOWN &kp RIGHT &trans  &trans &trans &trans           &trans       &trans       &kp INSERT
				&trans     &trans     &kp HOME   &trans   &kp END   &trans  &trans &trans &trans           &bootloader  &reset       &kp PSCRN
				&bt BT_CLR &bt BT_NXT &bt BT_PRV &trans   &trans    &trans  &trans &trans &kp C_PLAY_PAUSE &kp C_VOL_UP &kp C_VOL_DN &kp C_MUTE
			>;
		};
	};
};
