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

#include "../zmk-nodefree-config/helper.h"
#include "../zmk-nodefree-config/keypos_def/keypos_42keys.h"
#include "../zmk-nodefree-config/international_chars/german.dtsi"

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

                default_layer {
// -----------------------------------------------------------------------------------------
// |  TAB |  Ü  |  ,  |  .  |  P  |  Y  |   |  F  |  G   |  C  |  T  |  Z  |  ?   |
// | SHFT |  A  |  O  |  E  |  I  |  U  |   |  H  |  D   |  R  |  N  |  S  |  L   |
// |  Ä   |  Ö  |  Q  |  J  |  K  |  X  |   |  B  |  M   |  ,  |  .  |  #  |  -   |
//                    | CTRL| GUI | SPC |   | ENT | RSE  | ALT |
                        bindings = <
   &kp TAB   &kp de_ue &kp COMMA &kp DOT   &kp P     &kp Y          &kp F     &kp G     &kp C     &kp T     &kp Z     &kp QMARK
   &kp LSHFT &kp A     &kp O     &kp E     &kp I     &kp U          &kp H     &kp D     &kp R     &kp N     &kp S     &kp L
   &kp de_ae &kp de_oe &kp Q     &kp J     &kp K     &kp X          &kp B     &kp M     &kp W     &kp V     &kp HASH  &kp MINUS
                                 &kp LCTRL &kp LGUI  &kp SPACE      &kp RET   &mo 2     &kp RALT
                        >;
                };
                lower_layer {
// -----------------------------------------------------------------------------------------
// |  TAB |  1  |  2  |  3  |  4  |  5  |   |  6  |  7  |  8  |  9  |  0  | BKSP |
// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 |   | LFT | DWN |  UP | RGT |     |      |
// | SHFT |     |     |     |     |     |   |     |     |     |     |     |      |
//                    | GUI |     | SPC |   | ENT |     | ALT |
                        bindings = <
   &kp TAB    &kp N1       &kp N2       &kp N3       &kp N4       &kp N5         &kp N6   &kp N7   &kp N8 &kp N9    &kp N0 &kp BSPC
   &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4   &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans
   &kp LSHFT  &trans       &trans       &trans       &trans       &trans         &trans   &trans   &trans &trans    &trans &trans
                                    &kp LGUI     &trans       &kp SPACE      &kp RET  &trans   &kp RALT
                        >;
                };

                raise_layer {
// -----------------------------------------------------------------------------------------
// |  TAB |  !  |  @  |  #  |  $  |  %  |   |  ^  |  &  |  *  |  (  |  )  | BKSP |
// | CTRL |     |     |     |     |     |   |  -  |  =  |  [  |  ]  |  \  |  `   |
// | SHFT |     |     |     |     |     |   |  _  |  +  |  {  |  }  | "|" |  ~   |
//                    | GUI |     | SPC |   | ENT |     | ALT |
                        bindings = <
   &kp  TAB  &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT   &kp CARET &kp AMPS  &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp BSPC
   &kp LCTRL &trans   &trans &trans   &trans   &trans      &kp MINUS &kp EQUAL &kp LBKT        &kp RBKT &kp BSLH &kp GRAVE
   &kp LSHFT &trans   &trans &trans   &trans   &trans      &kp UNDER &kp PLUS  &kp LBRC        &kp RBRC &kp PIPE &kp TILDE
                             &kp LGUI &trans   &kp SPACE   &kp RET   &trans    &kp RALT
                        >;
                };
        };
};