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

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

        default_layer {
// ------------------------------------------------------------------------------------------------------------
// |  ESC  |  1  |  2  |  3   |  4   |  5   |                                  |  6   |  7    |  8    |  9   |   0   | BKSPC |
// |  TAB  |  Q  |  W  |  E   |  R   |  T   |   [    |                 |   ]   |  Y   |  U    |  I    |  O   |   P   |   \   |
// |  CAPS |  A  |  S  |  D   |  F   |  G   |   -    |                 |   =   |  H   |  J    |  K    |  L   |   ;   |   '   |
// | SHIFT |  Z  |  X  |  C   |  V   |  B   |   `    | MUTE  | | PRNT  |  DEL  |  N   |  M    |  ,    |  .   |   /   | ENTER |
// | CTRL  | ALT | GUI | MENU | LOWER|     SPACE     | ENTER | | ENTER |    SPACE     | RAISE| LEFT  | DOWN  |  UP   | RIGHT |
            bindings = <
&kp ESC   &kp N1 &kp N2   &kp N3   &kp N4    &kp N5                                           &kp N6 &kp N7 &kp N8    &kp N9   &kp N0   &kp BSPC
&kp TAB   &kp Q  &kp W    &kp E    &kp R     &kp T &kp LBKT                         &kp RBKT  &kp Y  &kp U  &kp I     &kp O    &kp P    &kp BSLH
&kp TAB   &kp A  &kp S    &kp D    &kp F     &kp G &kp MINUS                        &kp EQUAL &kp H  &kp J  &kp K     &kp L    &kp SEMI &kp SQT
&kp LSHFT &kp Z  &kp X    &kp C    &kp V     &kp B &kp GRAVE &kp C_MUTE  &kp PSCRN  &kp DEL   &kp N  &kp M  &kp COMMA &kp DOT  &kp FSLH &kp RET
&kp LCTRL &kp LALT &kp LGUI &kp K_CMENU &mo 1   &kp SPACE    &kp RET     &kp RET      &kp SPACE      &mo 2  &kp LEFT  &kp DOWN &kp UP   &kp RIGHT
            >;

            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
        };

        lower_layer {
// ------------------------------------------------------------------------------------------------------------
// |       | F1  | F2  |  F3  |  F4  |  F5  |                                  |  F6  |  F7   |  F8   |  F9  |  F10  |  F11  |
// | N.LC  |  7  |  8  |   9  |PRTSC | SCRLK|        |                 |       | PAUSE|       |   7   |   8  |   9   |  F12  |
// |       |  4  |  5  |   6  | INS  | HOME |        |                 |       |  PGUP|       |   4   |   5  |   6   |       |
// |       |  1  |  2  |   3  | DEL  |  END |        |       | |       |       |  PGDN|       |   1   |   2  |   3   |       |
// |       |  0  |  .  | Enter|      |               |       | |       |              |       |   0   |   .  | Enter |       |
            bindings = <
&trans    &kp F1   &kp F2   &kp F3   &kp F4    &kp F5                                     &kp F6          &kp F7  &kp F8    &kp F9   &kp F10  &kp F11
&kp KP_NUM &kp KP_N7 &kp KP_N8 &kp KP_N9  &kp PSCRN &kp SLCK &trans                &trans &kp PAUSE_BREAK &trans  &kp KP_N7 &kp KP_N8 &kp KP_N9   &kp F12 
&trans     &kp KP_N4 &kp KP_N5 &kp KP_N6  &kp INS   &kp HOME &trans                &trans &kp PG_UP       &trans  &kp KP_N4 &kp KP_N5 &kp KP_N6   &trans
&trans     &kp KP_N1 &kp KP_N2 &kp KP_N3  &kp DEL   &kp END &trans &trans  &trans  &trans &kp PG_DN       &trans  &kp KP_N1 &kp KP_N2 &kp KP_N3   &trans
&trans     &kp KP_N0 &kp KP_DOT  &kp KP_ENTER &trans &trans &trans         &trans     &trans              &trans  &kp KP_N0 &kp KP_DOT  &kp KP_ENTER &trans
            >;

            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
        };

        raise_layer {
// ------------------------------------------------------------------------------------------------------------
// |BTCLR  | BT1 | BT2 |  BT3 |  BT4 |  BT5 |                                  |      |       |       |      |       | RESET |
// |       |     |     |      |      |      |        |                 |       |      |       |       |      |       |BLOADER|
// |       |     |     |      |      |      |        |                 |       |      |       |       |      |       |       |
// |       |     |     |      |      |      |        |       | |       |       |      |       |       |      |       |       |
// |       |     |     |      |      |               |       | |       |              |       |       |      |       |       |
            bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4                          &trans &trans &trans &trans &trans &reset
&trans   &trans        &trans        &trans       &trans      &trans  &trans                 &trans  &trans &trans &trans &trans &trans &bootloader
&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
            >;

            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
        };
    };
};
