zmk-config/config/cradio.keymap

241 lines
14 KiB
Text
Raw Normal View History

2024-04-24 09:35:45 +02:00
// Copyright (c) 2022 The ZMK Contributors
// SPDX-License-Identifier: MIT
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
2024-05-04 19:40:46 +02:00
#include <dt-bindings/zmk/outputs.h>
2024-04-24 09:35:45 +02:00
2024-04-24 17:03:43 +02:00
// Cannot use it with keymap-drawer
/* #include "zmk-helpers/key-labels/34.h" */
#include "keypos.h"
2024-04-24 15:52:41 +02:00
2024-04-24 13:33:05 +02:00
#define BASE 0
#define SYM 1
#define NAV 2
#define NUM 3
2024-04-24 14:11:10 +02:00
#define VOL_DN C_VOL_DN
#define VOL_UP C_VOL_UP
2024-04-24 13:33:05 +02:00
2024-05-10 16:44:35 +02:00
#define HRML(k1,k2,k3) &hml LCMD k1 &hml LALT k2 &hml LCTRL k3
#define HRMR(k1,k2,k3) &hmr LCTRL k1 &hmr LALT k2 &hmr LCMD k3
2024-04-24 14:11:10 +02:00
&sk {
release-after-ms = <2000>;
2024-04-24 15:54:40 +02:00
};
2024-04-24 09:35:45 +02:00
2024-05-04 17:11:41 +02:00
/ {
2024-05-04 19:40:46 +02:00
macros {
bts: bts {
compatible = "zmk,behavior-macro-one-param";
#binding-cells = <1>;
bindings
= <&out OUT_BLE>
, <&macro_param_1to2>
, <&bt BT_SEL MACRO_PLACEHOLDER>
;
};
2024-05-04 17:11:41 +02:00
};
};
2024-04-24 09:35:45 +02:00
/ {
behaviors {
2024-05-10 16:44:35 +02:00
hml: hml {
compatible = "zmk,behavior-hold-tap";
flavor = "balanced";
2025-06-18 15:34:25 +02:00
tapping-term-ms = <220>;
2024-05-10 16:44:35 +02:00
quick-tap-ms = <175>; // repeat on tap-into-hold
require-prior-idle-ms = <150>;
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
hold-trigger-key-positions = <KEYS_R THUMBS>;
hold-trigger-on-release; // delay positional check until key-release
};
hmr: hmr {
2024-04-24 09:35:45 +02:00
compatible = "zmk,behavior-hold-tap";
2024-05-10 16:44:35 +02:00
flavor = "balanced";
2025-06-18 15:34:25 +02:00
tapping-term-ms = <220>;
2024-05-10 16:44:35 +02:00
quick-tap-ms = <175>; // repeat on tap-into-hold
require-prior-idle-ms = <150>;
2024-04-24 09:35:45 +02:00
#binding-cells = <2>;
bindings = <&kp>, <&kp>;
2024-05-10 16:44:35 +02:00
hold-trigger-key-positions = <KEYS_L THUMBS>;
hold-trigger-on-release; // delay positional check until key-release
2024-04-24 09:35:45 +02:00
};
2025-06-18 15:34:25 +02:00
2025-06-18 15:46:06 +02:00
lpar_lt: lpar_lt {
2025-06-18 15:34:25 +02:00
compatible = "zmk,behavior-mod-morph";
mods = <(MOD_LSFT | MOD_RSFT)>;
#binding-cells = <0>;
2025-06-18 15:46:06 +02:00
bindings = <&kp LPAR>, <&kp LT>;
2025-06-18 15:34:25 +02:00
};
2025-06-18 15:46:06 +02:00
rpar_gt: rpar_gt {
2025-06-18 15:34:25 +02:00
compatible = "zmk,behavior-mod-morph";
mods = <(MOD_LSFT | MOD_RSFT)>;
#binding-cells = <0>;
2025-06-18 15:46:06 +02:00
bindings = <&kp RPAR>, <&kp GT>;
2025-06-18 15:34:25 +02:00
};
2025-06-18 15:46:06 +02:00
lbrc_lbkt: lbrc_lbkt {
2025-06-18 15:34:25 +02:00
compatible = "zmk,behavior-mod-morph";
mods = <(MOD_LSFT | MOD_RSFT)>;
#binding-cells = <0>;
2025-06-18 15:46:06 +02:00
bindings = <&kp LBRC>, <&kp LBKT>;
2025-06-18 15:34:25 +02:00
};
2025-06-18 15:46:06 +02:00
rbrc_rbkt: rbrc_rbkt {
2025-06-18 15:34:25 +02:00
compatible = "zmk,behavior-mod-morph";
mods = <(MOD_LSFT | MOD_RSFT)>;
#binding-cells = <0>;
2025-06-18 15:46:06 +02:00
bindings = <&kp RBRC>, <&kp RBKT>;
2025-06-18 15:34:25 +02:00
};
2024-04-24 09:35:45 +02:00
};
conditional_layers {
compatible = "zmk,conditional-layers";
tri_layer {
2024-04-24 13:33:05 +02:00
if-layers = <SYM NAV>;
then-layer = <NUM>;
2024-04-24 09:35:45 +02:00
};
};
2024-04-24 15:52:41 +02:00
combos {
compatible = "zmk,combos";
2025-06-18 15:51:25 +02:00
2024-04-24 15:52:41 +02:00
combo_escape {
timeout-ms = <25>;
key-positions = <LT2 LT1>;
bindings = <&kp ESCAPE>;
2024-04-24 17:19:52 +02:00
layers = <BASE>;
2024-04-24 15:52:41 +02:00
};
combo_tab {
timeout-ms = <25>;
key-positions = <LM2 LM1>;
2025-06-18 15:36:06 +02:00
bindings = <&kp TAB>;
2024-04-24 17:19:52 +02:00
layers = <BASE>;
2024-04-24 15:52:41 +02:00
};
combo_backspace {
timeout-ms = <25>;
key-positions = <RT2 RT3>;
bindings = <&kp BACKSPACE>;
2024-04-24 17:19:52 +02:00
layers = <BASE>;
2024-04-24 15:52:41 +02:00
};
combo_enter {
timeout-ms = <25>;
key-positions = <RM1 RM2>;
bindings = <&kp ENTER>;
2024-04-24 17:19:52 +02:00
layers = <BASE>;
2024-04-24 15:52:41 +02:00
};
2025-06-18 15:34:25 +02:00
combo_lpar {
timeout-ms = <50>;
2024-04-24 15:52:41 +02:00
key-positions = <LT1 LM1>;
2025-06-18 15:34:25 +02:00
bindings = <&lpar_lt>;
layers = <BASE>;
};
combo_rpar {
timeout-ms = <50>;
2025-06-18 15:34:25 +02:00
key-positions = <RT1 RM1>;
bindings = <&rpar_gt>;
layers = <BASE>;
};
combo_lbrc {
timeout-ms = <50>;
2025-06-18 15:34:25 +02:00
key-positions = <LT2 LM2>;
bindings = <&lbrc_lbkt>;
layers = <BASE>;
};
combo_rbrc {
timeout-ms = <50>;
2025-06-18 15:34:25 +02:00
key-positions = <RT2 RM2>;
bindings = <&rbrc_rbkt>;
layers = <BASE>;
};
2025-06-18 15:51:25 +02:00
combo_boot {
2025-06-18 15:34:25 +02:00
timeout-ms = <40>;
key-positions = <LB4 LB3>;
bindings = <&bootloader>;
layers = <BASE>;
};
2024-04-24 15:52:41 +02:00
};
2024-04-24 09:35:45 +02:00
keymap {
compatible = "zmk,keymap";
2024-04-24 13:33:05 +02:00
base {
2024-04-24 09:35:45 +02:00
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
2024-04-24 13:33:05 +02:00
//│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Y │ ' │
&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SQT
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
2024-04-24 13:33:05 +02:00
//│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │
2024-05-10 16:44:35 +02:00
&kp A HRML(R, S, T) &kp G &kp M HRMR(N, E, I) &kp O
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
2024-04-24 13:33:05 +02:00
//│ Z │ X │ C │ D │ V │ │ K │ H │ , < │ . > │ / ? │
&kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH
2024-04-24 09:35:45 +02:00
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&mo NAV &kp LSHFT &kp SPC &mo SYM
2024-04-24 09:35:45 +02:00
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
2024-04-24 17:07:44 +02:00
sym {
2024-04-24 09:35:45 +02:00
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ ` │ & │ * │ + │ │ │ │ = │ \ │ | │ ~ │
&kp GRAVE &kp AMPS &kp STAR &kp PLUS &none &none &kp EQUAL &kp BSLH &kp PIPE &kp TILDE
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
2025-06-23 14:48:46 +02:00
//│ \ │ $ │ % │ ^ │ - │ │ : │ │ │ │ │
&kp BSLH &kp DLLR &kp PRCNT &kp CARET &kp MINUS &kp COLON &kp LCTRL &kp LALT &kp LCMD &kp LSHFT
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ ! │ @ │ # │ _ │ │ ; │ │ │ │ │
&none &kp EXCL &kp AT &kp HASH &kp UNDER &kp SEMI &none &none &none &none
2024-04-24 09:35:45 +02:00
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
2025-06-23 14:48:46 +02:00
&trans &trans &trans &trans
2024-04-24 14:11:10 +02:00
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
nav {
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
2025-06-23 14:45:50 +02:00
//│ ESCAPE │ MUTE │ VOL DOWN │ VOL UP │ │ │ │ │ │ │ DELETE │
&kp ESC &kp C_MUTE &kp VOL_DN &kp VOL_UP &none &none &none &none &none &kp DEL
2024-04-24 14:11:10 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
2025-06-23 14:45:50 +02:00
//│ SHIFT │ CMD │ ALT │ CTRL │ TAB │ │ BSPC │ LEFT │ DOWN │ UP │ RIGHT │
&sk LSHFT &sk LCMD &sk LALT &sk LCTRL &kp TAB &kp BSPC &kp LEFT &kp DOWN &kp UP &kp RIGHT
2024-04-24 14:11:10 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
2025-06-23 14:45:50 +02:00
//│ │ PLAY │ PREVIOUS │ NEXT │ │ │ ENTER │ HOME │ PG_DOWN │ PG UP │ END
&none &kp C_PP &kp C_PREV &kp C_NEXT &none &kp ENTER &kp HOME &kp PG_DN &kp PG_UP &kp END
2024-04-24 09:35:45 +02:00
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&trans &trans &trans &trans
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
2024-04-24 17:07:44 +02:00
num {
2024-04-24 09:35:45 +02:00
bindings = <
//╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮
//│ / │ 7 │ 8 │ 9 │ * │ │ │ │ │ │ │
&kp SLASH &kp N7 &kp N8 &kp N9 &kp STAR &bts 0 &bts 1 &bts 2 &bts 3 &bts 4
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ - │ 4 │ 5 │ 6 │ + │ │ = │ CTRL │ ALT │ CMD │ SHIFT │
2025-06-22 09:23:19 +02:00
&kp MINUS &kp N4 &kp N5 &kp N6 &kp PLUS &kp EQUAL &sk LCTRL &sk LALT &sk LCMD &sk LSHFT
2024-04-24 09:35:45 +02:00
//├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤
//│ │ 1 │ 2 │ 3 │ 0 │ │ │ │ │ │ │
&trans &kp N1 &kp N2 &kp N3 &kp N0 &trans &trans &bt BT_NXT &bt BT_PRV &bt BT_CLR
2024-04-24 15:00:58 +02:00
//╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯
&trans &trans &trans &trans
// ╰──────────┴──────────╯ ╰──────────┴──────────╯
>;
};
2024-04-24 09:35:45 +02:00
};
};