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

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

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

// ----------------------------------------------      -----------------------------------------------------
// | ESC  |  1   |  2  |  3   |  4  |  5  |  6  |      |  7  |  8  |  9  |  0  |  -  |  =  |  BKSPC |  `   |
// | TAB   |  Q   |  W  |  E   |  R  |  T  |        |  Y  |  U  |  I  |  O  |  P  |  [  |  ]  |  \  | DEL  |
// | LCTRL  |  A   |  S  |  D   |  F  |  G  |        |  H  |  J  |  K  |  L  |  ;  |  '  |   ENTER  | PGUP |
// | SHIFT   |  Z   |  X  |  C  |  V   |  B  |        |  N  |  M  |  ,  |  .  |  /  |  RSHFT  |  UP | PGDN |
// | LCTRL   | LGUI | LALT |   SPACE   | FN  |        |    SPACE    | RALT | FN | RCTRL | LFT | DWN | RGHT |
// -------------------------------------------        ------------------------------------------------------

        default_layer {
            bindings = <
    &kp ESC   &kp N1   &kp N2   &kp N3    &kp N4 &kp N5 &kp N6 /**/ &kp N7    &kp N8   &kp N9    &kp N0    &kp MINUS &kp EQUAL &kp BSPC &kp GRAVE
    &kp TAB   &kp Q    &kp W    &kp E     &kp R  &kp T         /**/ &kp Y     &kp U    &kp I     &kp O     &kp P     &kp LBKT  &kp RBKT &kp BSLH &kp HOME
    &kp LCTRL &kp A    &kp S    &kp D     &kp F  &kp G         /**/ &kp H     &kp J    &kp K     &kp L     &kp SEMI  &kp SQT   &kp RET  &kp PG_UP
    &kp LSHFT &kp Z    &kp X    &kp C     &kp V  &kp B         /**/ &kp N     &kp M    &kp COMMA &kp DOT   &kp FSLH  &kp RSHFT &kp UP   &kp PG_DN
    &kp LCTRL &kp LGUI &kp LALT &kp SPACE &mo 1                /**/ &kp SPACE &kp RALT &mo 1     &kp RCTRL &kp LEFT  &kp DOWN  &kp RIGHT
            >;
        };

// ----------------------------------------------     -----------------------------------------------------
// |BT_CLR|  F1  |  F2 |  F3  |  F4 |  F5 |  F6 |     |  F7 |  F8 |  F9 | F10 | F11 | F12 |        |BT_CLR|
// |       | BT-0 | BT-1| BT-2 |     |     |       |     |     |     |     |     |     |     |     |      |
// |        |      |     |      |     |     |       |     |     |     |     |     |     |          |      |
// |         |      |     |     |      |     |       |     |     |     |     |     |         |     |      |
// |         |      |      |           |     |       |             |      |    |       |     |     |      |
// -------------------------------------------       ------------------------------------------------------

        fn_layer {
            bindings = <
    &bt BT_CLR &kp F1       &kp F2       &kp F3       &kp F4 &kp F5 &kp F6 /**/ &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &bt BT_CLR
    &trans     &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &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       &trans       &trans &trans        /**/ &trans &trans &trans &trans  &trans  &trans  &trans &trans
    &trans     &trans       &trans       &trans       &trans               /**/ &trans &trans &trans &trans  &trans  &trans  &trans
            >;
        };
    };
};