keymap {
        compatible = "zmk,keymap";

        default_layer {
            bindings = <
  &kp ESCAPE  &kp Q  &kp W     &kp E      &kp R            &kp T        &kp Y            &kp U            &kp I      &kp O           &kp P     &kp LBKT
  &kp LALT    &kp A  &kp S     &kp D      &kp F            &kp G        &kp H            &kp J            &kp K      &kp L           &kp SEMI  &kp SQT
  &kp LCTRL   &kp Z  &kp X     &kp C      &kp V            &kp B        &kp N            &kp M            &kp COMMA  &kp DOT         &kp FSLH  &kp RIGHT_BRACKET
                     &kp LGUI  &lt 4 ESC  &mt LSHFT SPACE  &lt 2 TAB    &lt 3 BACKSPACE  &mt RSHFT SPACE  &lt 4 DEL  &sk LEFT_SHIFT
            >;
        };

        colemak {
            bindings = <
  &trans  &kp Q  &kp W   &kp F   &kp P   &kp B     &kp J   &kp L   &kp U      &kp Y       &kp SEMICOLON  &trans
  &trans  &kp A  &kp R   &kp S   &kp T   &kp G     &kp M   &kp N   &kp E      &kp I       &kp O          &trans
  &trans  &kp Z  &kp X   &kp C   &kp D   &kp V     &kp K   &kp H   &kp COMMA  &kp PERIOD  &kp SLASH      &trans
                 &trans  &trans  &trans  &trans    &trans  &trans  &trans     &trans
            >;
        };

        prog_layer {
            bindings = <
  &trans  &kp EXCLAMATION  &kp AT     &kp HASH      &kp DLLR   &kp PRCNT     &kp CARET  &kp AMPERSAND  &kp ASTRK          &kp DQT   &kp COLON         &kp SLASH
  &trans  &kp GRAVE        &kp TILDE  &kp MINUS     &kp PLUS   &kp EQUAL     &kp MINUS  &kp LBKT       &kp RIGHT_BRACKET  &kp LPAR  &kp RPAR          &kp PIPE
  &trans  &kp N1           &kp N2     &kp ASTERISK  &kp SLASH  &kp PERIOD    &kp UNDER  &kp LBRC       &kp RBRC           &kp LT    &kp GREATER_THAN  &kp BACKSLASH
                           &trans     &lt 5 TAB     &tog 1     &mo 4         &mo 4      &trans         &lt 5 DEL          &trans
            >;
        };

        numlock_layer {
            bindings = <
  &trans  &kp F1   &kp F2   &kp F3   &kp F4   &kp F5     &kp CAPSLOCK     &kp KP_NUMBER_7  &kp KP_NUMBER_8  &kp KP_NUMBER_9  &kp STAR   &trans
  &trans  &kp F6   &kp F7   &kp F8   &kp F9   &kp F10    &kp KP_NUMLOCK   &kp KP_NUMBER_4  &kp KP_NUMBER_5  &kp KP_NUMBER_6  &kp MINUS  &kp SLASH
  &trans  &kp F11  &kp F12  &kp F13  &kp F14  &kp F15    &kp KP_NUMBER_0  &kp KP_NUMBER_1  &kp KP_NUMBER_2  &kp KP_NUMBER_3  &kp PLUS   &kp DOT
                   &trans   &mo 5    &trans   &trans     &trans           &trans           &trans           &trans
            >;
        };

        raise_layer {
            bindings = <
  &kp C_BRI_DN  &kp C_BRI_UP  &kp C_PREV    &kp C_NEXT    &kp C_PLAY_PAUSE  &kp K_PLAY_PAUSE    &kp C_VOL_UP  &kp HOME   &kp END    &none      &none  &kp LC(PRINTSCREEN)
  &trans        &sk LEFT_WIN  &sk LEFT_ALT  &sk LCTRL     &sk LEFT_SHIFT    &none               &kp LEFT      &kp DOWN   &kp UP     &kp RIGHT  &none  &kp PRINTSCREEN
  &kp INSERT    &none         &kp C_MUTE    &kp C_VOL_DN  &kp C_VOLUME_UP   &kp K_MUTE          &kp C_VOL_DN  &kp PG_UP  &kp PG_DN  &none      &none  &kp LS(PRINTSCREEN)
                              &trans        &trans        &trans            &lt 5 RET           &lt 5 ESC     &trans     &trans     &trans
            >;
        };

        adjust_layer {
            bindings = <
  &bootloader  &none         &none         &none         &none         &none           &none         &none         &none         &none         &none         &bootloader
  &bt BT_CLR   &bt BT_SEL 0  &bt BT_SEL 1  &bt BT_SEL 2  &bt BT_SEL 3  &bt BT_SEL 4    &bt BT_SEL 4  &bt BT_SEL 3  &bt BT_SEL 2  &bt BT_SEL 1  &bt BT_SEL 0  &bt BT_CLR
  &sys_reset   &none         &none         &none         &none         &none           &none         &none         &none         &none         &none         &sys_reset
                             &none         &trans        &none         &trans          &trans        &none         &trans        &none
            >;
        };