2024-09-22 20:41:51 -07:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2020 duckyb
|
|
|
|
*
|
|
|
|
* 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>
|
|
|
|
|
|
|
|
// Layer definitions
|
|
|
|
#define BASE 0
|
|
|
|
#define SYM 1
|
2024-09-22 23:25:23 -07:00
|
|
|
#define EXT 2
|
|
|
|
#define FNC 3
|
|
|
|
#define SETTINGS 6
|
2024-09-22 20:41:51 -07:00
|
|
|
// -----------------
|
|
|
|
|
|
|
|
&sk {
|
|
|
|
// don't release mods on other mods presses
|
|
|
|
ignore-modifiers;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2024-09-22 23:25:23 -07:00
|
|
|
&mt {
|
|
|
|
flavor = "tap-preferred";
|
|
|
|
tapping_term_ms = <200>;
|
|
|
|
quick_tap_ms = <75>;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2024-09-22 20:41:51 -07:00
|
|
|
/ {
|
|
|
|
behaviors {
|
|
|
|
// Enables holding the first mod-tap key
|
|
|
|
// by performing a tap-release-hold sequence.
|
|
|
|
// To use it: "&qt KEYCODE1 KEYCODE2"
|
|
|
|
qt: quick_tap {
|
|
|
|
compatible = "zmk,behavior-hold-tap";
|
|
|
|
label = "QUICK_TAP";
|
|
|
|
#binding-cells = <2>;
|
|
|
|
flavor = "hold-preferred";
|
|
|
|
tapping-term-ms = <200>;
|
|
|
|
quick-tap-ms = <200>;
|
|
|
|
bindings = <&kp>, <&kp>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
macros {
|
|
|
|
// sometimes my device thinks a modifier is being held down
|
|
|
|
// pressing all modifiers fixes it.
|
|
|
|
unstick: unstick {
|
|
|
|
label = "ZM_unstick";
|
|
|
|
compatible = "zmk,behavior-macro";
|
|
|
|
#binding-cells = <0>;
|
|
|
|
bindings = <&kp LSHIFT &kp RSHIFT &kp LCTRL &kp RCTRL &kp LALT &kp RALT &kp LGUI &kp RGUI>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
combos {
|
|
|
|
compatible = "zmk,combos";
|
|
|
|
// both right thumb keys
|
|
|
|
// internal-left & external-right thumb keys
|
2024-09-22 23:25:23 -07:00
|
|
|
// both left thumb keys
|
|
|
|
combo_settings {
|
|
|
|
timeout-ms = <200>;
|
|
|
|
key-positions = <30 31>;
|
|
|
|
bindings = <&mo SETTINGS>;
|
|
|
|
};
|
|
|
|
// left index & middle fingers (home-row)
|
|
|
|
// hold control & space for Adobe workflow
|
|
|
|
combo_ctrl_space {
|
2024-09-22 20:41:51 -07:00
|
|
|
timeout-ms = <200>;
|
2024-09-22 23:25:23 -07:00
|
|
|
key-positions = <12 13>;
|
|
|
|
bindings = <&kp LC(SPACE)>;
|
|
|
|
layers = <BASE>;
|
2024-09-22 20:41:51 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
keymap {
|
|
|
|
compatible = "zmk,keymap";
|
2024-09-22 23:25:23 -07:00
|
|
|
// Base alpha layer
|
|
|
|
default_layer {
|
|
|
|
label = "Base";
|
|
|
|
bindings = <
|
2024-09-27 17:35:50 -07:00
|
|
|
&kp DOT &kp COMMA &kp DOT &kp P &kp Y &kp F &kp G &kp C &kp R &kp L
|
|
|
|
&kp A &kp O &kp E &kp U &kp I &kp D &kp H &kp T &kp N &kp S
|
|
|
|
&kp SCLN &kp Q &kp J &kp K &kp X &kp B &kp M &kp W &kp V &kp Z
|
|
|
|
&mt LALT SPC &mt LGUI TAB &mt LSHIFT RET &mt LCTRL BSPC
|
2024-09-22 23:25:23 -07:00
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
// Numbers and high frequency symbols
|
|
|
|
sym_layer {
|
|
|
|
label = "Sym.";
|
|
|
|
bindings = <
|
2024-09-27 17:35:50 -07:00
|
|
|
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0
|
|
|
|
&none &none &none &none &none &none &none &none &none &none
|
|
|
|
&none &none &none &none &none &none &none &none &none &none
|
|
|
|
&mo FNC &none &trans &trans
|
2024-09-22 23:25:23 -07:00
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
// Main modifiers and arrow keys
|
|
|
|
ext_layer {
|
|
|
|
label = "Mods";
|
|
|
|
bindings = <
|
|
|
|
&kp ESC &kp C_PREV &kp C_PP &kp C_NEXT &kp C_PAUSE &kp PG_UP &kp HOME &kp UP &kp END &kp CAPS
|
|
|
|
&sk LALT &sk LGUI &sk LSHIFT &sk LCTRL &kp RALT &kp PG_DN &kp LEFT &kp DOWN &kp RIGHT &kp DEL
|
|
|
|
&kp LC(Z) &kp LC(X) &kp LC(C) &kp TAB &kp LC(V) &kp LC(BSPC) &kp BSPC &trans &trans &trans
|
|
|
|
&trans &kp LCTRL &kp ENTER &mo FNC
|
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
// Function keys with modifiers
|
|
|
|
fnc_layer {
|
|
|
|
label = "FRow";
|
|
|
|
bindings = <
|
|
|
|
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10
|
|
|
|
&sk LALT &sk LGUI &sk LSHIFT &sk LCTRL &kp RALT &kp F11 &kp F12 &kp PRINTSCREEN &trans &trans
|
|
|
|
&none &none &none &none &none &none &none &none &none &none
|
|
|
|
&none &none &none &none
|
|
|
|
>;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// Used to change the keyboard's settings.
|
|
|
|
settings_layer {
|
|
|
|
label = "Sett.";
|
|
|
|
bindings = <
|
|
|
|
&bootloader &none &none &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 3 &none &unstick &none &bootloader
|
|
|
|
&none &none &none &none &bt BT_SEL 1 &bt BT_SEL 4 &none &none &none &none
|
|
|
|
&none &none &none &none &bt BT_SEL 2 &bt BT_SEL 5 &none &none &none &none
|
|
|
|
&none &none &none &none
|
|
|
|
>;
|
|
|
|
};
|
2024-09-22 20:41:51 -07:00
|
|
|
};
|
|
|
|
};
|
2024-09-22 23:25:23 -07:00
|
|
|
|