All checks were successful
ci/woodpecker/manual/woodpecker/2 Pipeline was successful
ci/woodpecker/manual/woodpecker/4 Pipeline was successful
ci/woodpecker/manual/woodpecker/1 Pipeline was successful
ci/woodpecker/manual/woodpecker/5 Pipeline was successful
ci/woodpecker/manual/woodpecker/3 Pipeline was successful
ci/woodpecker/manual/woodpecker/8 Pipeline was successful
ci/woodpecker/manual/woodpecker/6 Pipeline was successful
ci/woodpecker/manual/woodpecker/7 Pipeline was successful
272 lines
13 KiB
Text
272 lines
13 KiB
Text
/*
|
|
* 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 <dt-bindings/zmk/outputs.h>
|
|
|
|
/* Layers */
|
|
#define DEF_L 0
|
|
#define NAV_L 1
|
|
#define SYM_L 2
|
|
#define NUM_L 3
|
|
#define TMX_L 4
|
|
|
|
/* Behavior Settings */
|
|
&caps_word {
|
|
continue-list = <UNDERSCORE MINUS BACKSPACE>;
|
|
};
|
|
|
|
&sk {
|
|
release-after-ms = <60000>;
|
|
};
|
|
|
|
|
|
/ {
|
|
|
|
|
|
ZMK_MACRO(sesh,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LS(T)>;)
|
|
|
|
ZMK_MACRO(tas,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LC(J)>;)
|
|
|
|
ZMK_MACRO(tproj,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LC(G)>;)
|
|
|
|
ZMK_MACRO(tpb,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp EQUAL>;)
|
|
|
|
ZMK_MACRO(tp,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp RBKT>;)
|
|
|
|
ZMK_MACRO(tcm,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LBKT>;)
|
|
|
|
ZMK_MACRO(trw,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp COMMA>;)
|
|
|
|
ZMK_MACRO(trs,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp DLLR>;)
|
|
|
|
ZMK_MACRO(tfs,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LC(J)>;)
|
|
|
|
ZMK_MACRO(tfp,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LC(G)>;)
|
|
|
|
ZMK_MACRO(tpr,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp H>;)
|
|
|
|
ZMK_MACRO(tpl,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp L>;)
|
|
|
|
ZMK_MACRO(tpd,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp J>;)
|
|
|
|
ZMK_MACRO(tpu,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp K>;)
|
|
|
|
ZMK_MACRO(tsh,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp DQT>;)
|
|
|
|
ZMK_MACRO(tsv,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp PRCNT>;)
|
|
|
|
ZMK_MACRO(tsess,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LC(C)>;)
|
|
|
|
ZMK_MACRO(twin,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp C>;)
|
|
|
|
ZMK_MACRO(twprev,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp P>;)
|
|
|
|
ZMK_MACRO(twnext,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp N>;)
|
|
|
|
ZMK_MACRO(tsprev,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp LPAR>;)
|
|
|
|
ZMK_MACRO(tsnext,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp RPAR>;)
|
|
|
|
ZMK_MACRO(thumbs,
|
|
wait-ms = <30>;
|
|
tap-ms = <40>;
|
|
bindings = <&kp LC(B) &kp SPACE>;)
|
|
|
|
|
|
combos {
|
|
compatible = "zmk,combos";
|
|
|
|
#define COMBO(NAME, BINDINGS, KEYPOS, LAYERS) \
|
|
combo_##NAME { \
|
|
bindings = <BINDINGS>; \
|
|
key-positions = <KEYPOS>; \
|
|
layers = <LAYERS>; \
|
|
};
|
|
|
|
/* KEY POSITIONS
|
|
|
|
╭────────────────────╮ ╭────────────────────╮
|
|
│ 0 1 2 3 │ │ 4 5 6 7 │
|
|
│ 8 9 10 11 12 │ │ 13 14 15 16 17 │
|
|
│ 18 19 20 21 │ │ 22 23 24 25 │
|
|
╰───────────╮ 26 27 │ │ 28 29 ╭───────────╯
|
|
╰────────╯ ╰────────╯ */
|
|
|
|
/* Letters */
|
|
COMBO(q, &kp Q, 1 2, DEF_L)
|
|
COMBO(z, &kp Z, 20 21, DEF_L)
|
|
COMBO(forward_slash, &kp FSLH, 19 20, DEF_L)
|
|
|
|
/* Brackets */
|
|
COMBO(left_bracket, &kp LBKT, 0 9, DEF_L SYM_L NUM_L)
|
|
COMBO(right_bracket, &kp RBKT, 7 16, DEF_L SYM_L NUM_L)
|
|
COMBO(left_parenthesis, &kp LPAR, 1 10, DEF_L SYM_L NUM_L)
|
|
COMBO(right_parenthesis, &kp RPAR, 6 15, DEF_L SYM_L NUM_L)
|
|
COMBO(left_brace, &kp LBRC, 2 11, DEF_L SYM_L NUM_L)
|
|
COMBO(right_brace, &kp RBRC, 5 14, DEF_L SYM_L NUM_L)
|
|
COMBO(less_than, &kp LT, 3 12, DEF_L SYM_L NUM_L)
|
|
COMBO(grather_than, &kp GT, 4 13, DEF_L SYM_L NUM_L)
|
|
|
|
/* Convenience */
|
|
COMBO(lshift, &sk LSHFT, 9 10, DEF_L)
|
|
COMBO(rshift, &sk RSHFT, 15 16, DEF_L)
|
|
COMBO(quote, &kp DQT, 6 7, DEF_L)
|
|
COMBO(del_word, &kp LC(BSPC), 22 24, DEF_L)
|
|
COMBO(caps_lock, &kp CAPS, 0 7, DEF_L)
|
|
COMBO(caps_word, &caps_word, 1 6, DEF_L)
|
|
COMBO(esc, &kp ESC, 9 11, DEF_L)
|
|
COMBO(ent, &kp ENTER, 14 16, DEF_L)
|
|
COMBO(stab, &kp LS(TAB), 10 11, DEF_L)
|
|
COMBO(tab, &kp TAB, 14 15, DEF_L)
|
|
COMBO(dot, &kp DOT, 9 10, NUM_L)
|
|
|
|
COMBO(select_all, &kp LC(A), 19 20, NAV_L)
|
|
COMBO(bt_clear_all, &bt BT_CLR_ALL, 0 1 6 7, DEF_L)
|
|
|
|
|
|
};
|
|
|
|
|
|
keymap {
|
|
compatible = "zmk,keymap";
|
|
|
|
default_layer {
|
|
bindings = <
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp C &kp G &kp D &kp K &kp J &kp L &kp U &kp Y
|
|
&kp R &kp S &kp T &kp H &kp P &kp V &kp N &kp A &kp I &kp O
|
|
&kp X &kp B &kp W &kp F &kp M &kp COMMA &kp DOT &kp SQT
|
|
// ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯
|
|
&sl NAV_L &kp SPACE < NUM_L E &sl SYM_L
|
|
// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯
|
|
|
|
>;
|
|
};
|
|
|
|
nav_layer {
|
|
label = "Nav";
|
|
bindings = <
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp HOME &kp LA(UARW) &kp INS &kp LS(LA(UARW)) &kp PG_UP &kp DEL &kp LA(DARW) &kp END
|
|
&sk LGUI &sk LALT &sk LCTRL &sk LSHFT &kp LS(LA(DARW)) &kp PG_DN &kp LARW &kp DARW &kp UARW &kp RARW
|
|
&kp LC(Z) &kp LC(X) &kp LC(C) &kp LC(V) &kp LC(LS(TAB)) &kp LC(TAB) &key_repeat &kp INS
|
|
// ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯
|
|
&sl TMX_L &trans &kp BSPC &kp DEL
|
|
// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯
|
|
>;
|
|
};
|
|
|
|
sym_layer {
|
|
label = "Sym";
|
|
bindings = <
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp AMPS &kp ASTRK &kp BSLH &kp PLUS &none &none &none &none
|
|
&kp COLON &kp DLLR &kp PRCNT &kp CARET &kp EQUAL &none &sk LSHFT &sk LCTRL &sk LALT &sk LGUI
|
|
&kp SEMI &kp EXCL &kp AT &kp POUND &kp LT &kp PIPE &kp GT &none
|
|
// ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯
|
|
&kp UNDER &kp MINUS &trans &trans
|
|
// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────╯
|
|
>;
|
|
};
|
|
|
|
num_layer {
|
|
label = "Num";
|
|
bindings = <
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&kp N7 &kp N4 &kp N3 &kp PLUS &kp K &kp W &kp B &kp G
|
|
&kp GRAVE &kp N2 &kp N1 &kp N0 &kp EQUAL &kp J &sk LSHFT &sk LCTRL &sk LALT &sk LGUI
|
|
&kp TILDE &kp N8 &kp N6 &kp N5 &kp D &none &none &kp Y
|
|
// ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯
|
|
&kp N9 &kp MINUS &trans &trans
|
|
// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────
|
|
>;
|
|
};
|
|
|
|
|
|
tmux_layer {
|
|
label = "Tmux";
|
|
bindings = <
|
|
// ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮
|
|
&none &none &none &none &tsnext &twprev &thumbs &twnext
|
|
&none &none &none &none &none &tsprev &tpl &tpd &tpu &tpr
|
|
&none &none &none &none &tcm &tp &none &sesh
|
|
// ╰─────────────┴─────────────┴─────────────╮ ╭─────────────┴─────────────┴─────────────╯
|
|
&tsh &tsv &twin &tsess
|
|
// ╰─────────────┴─────────────╯ ╰─────────────┴─────────────
|
|
>;
|
|
};
|
|
|
|
};
|
|
};
|