/*
 * Copyright (c) 2021 The ZMK Contributors
 *
 * SPDX-License-Identifier: MIT
 */
 
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/outputs.h>

#define LOWR 1
#define RAIS 2
#define ADJT 3

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

    default_layer {
      bindings = <
  &lt ADJT ESC  &kp Q &kp W &kp E     &kp R    &kp T                          &kp Y     &kp U    &kp I     &kp O   &kp P    &kp DEL 
  &mt LCTRL TAB &kp A &kp S &kp D     &kp F    &kp G                          &kp H     &kp J    &kp K     &kp L   &kp SEMI &kp SQT
                &kp Z &kp X &kp C     &kp V    &kp B                          &kp N     &kp M    &kp COMMA &kp DOT &kp FSLH
                            &kp LSHFT &mo LOWR &kp LGUI &kp BSPC    &kp SPACE &kp ENTER &mo RAIS &kp LALT
      >;
    };

    lower {
      bindings = <
  &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5                         &kp N6   &kp N7   &kp N8 &kp N9    &kp N0 &kp C_PLAY_PAUSE
  &trans    &trans &trans &trans &trans &trans                         &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans
            &trans &trans &trans &trans &kp LBKT                       &kp RBKT &trans   &trans &trans    &trans
                                 &trans &trans &trans &trans    &trans &trans   &trans   &trans
      >;
    };
    raise {
      bindings = <
  &kp TILDE &trans &trans &trans &trans &trans                          &trans   &trans &trans &kp MINUS &kp EQUAL &kp C_PLAY_PAUSE
  &trans    &trans &trans &trans &trans &trans                          &trans   &trans &trans &trans    &trans    &kp BSLH
            &trans &trans &trans &trans &kp LBKT                        &kp RBKT &trans &trans &trans    &trans
                                 &trans &trans &trans &trans    &trans  &trans   &trans &trans
      >;
    };

    adjust {
      bindings = <
  &trans &bt BT_NXT &bt BT_PRV &trans       &trans &bt BT_CLR              &trans &trans &trans &trans &trans &trans
  &trans &trans     &trans     &trans       &trans &trans                  &trans &trans &trans &trans &trans &trans
         &trans     &trans     &trans       &trans &trans                  &trans &trans &trans &trans &trans
                               &out OUT_TOG &trans &trans &trans    &trans &trans &trans &trans
      >;
    };
  };
};