phiboard/firmware/zmk-config/phiboard.keymap
2025-12-03 17:37:56 +01:00

161 lines
5.8 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/outputs.h>
#include <dt-bindings/zmk/bt.h>
/ {
behaviors {
hml: homerow_mods_left {
compatible = "zmk,behavior-hold-tap";
label = "HOMEROW_MODS_LEFT_HAND";
bindings = <&kp>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <TAPPING_TERM_MS>;
quick-tap-ms = <QUICK_TAP_MS>;
flavor = "balanced";
require-prior-idle-ms = <REQ_IDLE_MS>;
hold-trigger-key-positions = <5 6 7 8 9 19 18 17 16 15 34 25 26 35 27 28 29 37 36>;
hold-trigger-on-release;
};
hmr: homerow_mods_right {
compatible = "zmk,behavior-hold-tap";
label = "HOMEROW_MODS_RIGHT_HAND";
bindings = <&kp>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <TAPPING_TERM_MS>;
quick-tap-ms = <QUICK_TAP_MS>;
require-prior-idle-ms = <REQ_IDLE_MS>;
hold-trigger-key-positions = <0 1 2 3 4 14 13 12 11 10 11 12 13 14 20 21 22 23 24 30 31 32 33>;
flavor = "balanced";
hold-trigger-on-release;
};
ss_cw: shift_capsword {
compatible = "zmk,behavior-tap-dance";
label = "SHIFT_CAPSWORD";
#binding-cells = <0>;
bindings = <&sk LEFT_SHIFT>, <&caps_word>;
tapping-term-ms = <SLOW_TAPPING_TERM_MS>;
};
cln_scln_td: cln_scln_td {
compatible = "zmk,behavior-tap-dance";
label = "CLN_SCLN_TD";
#binding-cells = <0>;
bindings = <&kp COLON>, <&kp SEMICOLON>;
};
};
keymap {
compatible = "zmk,keymap";
base {
bindings = <
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P
&kp ESCAPE &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp RBKT &kp BSPC
&kp LSHIFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp PERIOD &kp FSLH &kp ENTER
&mo 1 &mo 2 &kp SPACE &none &mo 3 &none
>;
};
// For the german keyboard layout
special_char {
bindings = <
&kp GRAVE &kp EQUAL &none &none &none &kp LS(N5) &kp LS(N7) &kp RA(N7) &kp RA(N0) &kp RA(RBKT)
&kp TAB &none &kp LS(N2) &kp LS(MINUS) &kp LS(N1) &none &kp LS(N6) &kp LS(N0) &kp LS(N8) &kp LS(N9) &kp BSLH &kp DEL
&kp LSHIFT &kp NUBS &kp LS(NUBS) &none &none &none &kp RA(NUBS) &kp LS(N4) &kp RA(N8) &kp RA(N9) &kp RA(MINUS) &kp ENTER
&trans &none &none &none &none &none
>;
};
num_fun {
bindings = <
&kp F9 &kp F10 &kp F11 &kp F12 &none &none &kp N7 &kp N8 &kp N9 &none
&kp TAB &kp F5 &kp F6 &kp F7 &kp F8 &none &none &kp N4 &kp N5 &kp N6 &kp RBKT &kp DEL
&kp LSHIFT &kp F1 &kp F2 &kp F3 &kp F4 &none &kp N0 &kp N1 &kp N2 &kp N3 &kp FSLH &kp ENTER
&none &trans &none &none &none &kp N0
>;
};
nav_umlaut {
bindings = <
&none &none &none &none &none &none &kp LBKT &none &kp SEMI &none
&kp TAB &kp SQT &kp MINUS &none &none &none &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &kp DEL
&kp LSHIFT &none &none &none &none &none &none &none &none &none &none &kp ENTER
&none &trans &none &none &none &none
>;
};
};
combos {
compatible = "zmk,combos";
// left home row combos
combo_LSHIFT {
key-positions = <13 14>;
bindings = <&sk LSHIFT>;
timeout-ms = <50>;
slow-release;
};
combo_LCTRL {
key-positions = <12 14>;
bindings = <&sk LCTRL>;
timeout-ms = <50>;
slow-release;
};
combo_LMETA {
key-positions = <12 13>;
bindings = <&sk LMETA>;
timeout-ms = <50>;
slow-release;
};
combo_LALT {
key-positions = <11 14>;
bindings = <&sk LALT>;
timeout-ms = <50>;
slow-release;
};
// right home row combos
combo_RSHIFT {
key-positions = <17 18>;
bindings = <&sk RSHIFT>;
timeout-ms = <50>;
slow-release;
};
combo_RCTRL {
key-positions = <17 19>;
bindings = <&sk RCTRL>;
timeout-ms = <50>;
slow-release;
};
combo_RMETA {
key-positions = <18 19>;
bindings = <&sk RMETA>;
timeout-ms = <50>;
slow-release;
};
combo_RALT {
key-positions = <17 20>;
bindings = <&sk RALT>;
timeout-ms = <50>;
slow-release;
};
};
};