summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/bt60_v2.conf45
-rw-r--r--config/bt60_v2.keymap297
-rw-r--r--config/bt60_v2.overlay33
-rw-r--r--config/common.h29
4 files changed, 240 insertions, 164 deletions
diff --git a/config/bt60_v2.conf b/config/bt60_v2.conf
index 9cbbd04..47cf014 100644
--- a/config/bt60_v2.conf
+++ b/config/bt60_v2.conf
@@ -1 +1,44 @@
-# Put configuration options here
+# SPDX-License-Identifier: MIT
+
+CONFIG_SOC_SERIES_NRF52X=y
+CONFIG_SOC_NRF52840_QIAA=y
+CONFIG_BOARD_BT60_V2=y
+
+# Enable MPU
+CONFIG_ARM_MPU=y
+
+# enable GPIO
+CONFIG_GPIO=y
+
+# encoder
+CONFIG_EC11=y
+CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
+
+CONFIG_USE_DT_CODE_PARTITION=y
+
+CONFIG_MPU_ALLOW_FLASH_WRITE=y
+CONFIG_NVS=y
+CONFIG_SETTINGS_NVS=y
+CONFIG_FLASH=y
+CONFIG_FLASH_PAGE_LAYOUT=y
+CONFIG_FLASH_MAP=y
+
+CONFIG_ZMK_RGB_UNDERGLOW=n
+CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
+CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
+CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=262
+# Use the STRIP config specific to the LEDs you're using
+CONFIG_WS2812_STRIP=y
+CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
+CONFIG_PWM=y
+CONFIG_LED_PWM=y
+CONFIG_ZMK_BACKLIGHT=y
+CONFIG_ZMK_BACKLIGHT_AUTO_OFF_IDLE=y
+CONFIG_ZMK_BACKLIGHT_AUTO_OFF_USB=n
+CONFIG_BUILD_OUTPUT_UF2=y
+
+# Idle timeout
+CONFIG_ZMK_IDLE_TIMEOUT=30000
+# Deep sleep
+CONFIG_ZMK_SLEEP=y
+CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000
diff --git a/config/bt60_v2.keymap b/config/bt60_v2.keymap
index eeb5c96..b609ef4 100644
--- a/config/bt60_v2.keymap
+++ b/config/bt60_v2.keymap
@@ -3,175 +3,146 @@
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/rgb.h>
#include <dt-bindings/zmk/backlight.h>
+#include <dt-bindings/zmk/outputs.h>
-#define ANSI
-//#define ISO
-//#define ALL_1U
-//#define HHKB
+#define K_E 17
+#define K_O 23
+#define K_A 28
-/ {
- chosen {
- #ifdef ANSI
- zmk,matrix_transform = &ansi_transform;
- #elif defined(ISO)
- zmk,matrix_transform = &iso_transform;
- #elif defined(ALL_1U)
- zmk,matrix_transform = &all_1u_transform;
- #elif defined(HHKB)
- zmk,matrix_transform = &hhkb_transform;
- #else
- #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
- #endif
- };
+#include "common.h"
- keymap {
- compatible = "zmk,keymap";
- #ifdef ANSI
- default_layer {
- // ------------------------------------------------------------------------------------------
- // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
- // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
- // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
- // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
- // | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
- // ------------------------------------------------------------------------------------------
- bindings = <
+#define DEFAULT 0
+#define RAISE 1
+#define SPECIAL 2
+#define MAC_U 3
+#define GAMING_U 4
- &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
- &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
- &kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
- &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
- &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- raise {
- // ------------------------------------------------------------------------------------------
- // |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
- // | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG|
- // | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
- // | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | END | PGDN | BL_TOG |
- // | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | RESET | BT_CLR |
- // ------------------------------------------------------------------------------------------
- bindings = <
- &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
- &trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
- &trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
- &trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
- &bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &sys_reset &bt BT_CLR
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- #elif defined(ISO)
- default_layer {
- // ------------------------------------------------------------------------------------------
- // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
- // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
- // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
- // | SHIFT | \ | Z | X | C | V | B | N | M | , | . | / | SHIFT |
- // | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL |
- // ------------------------------------------------------------------------------------------
- bindings = <
+ZMK_UNICODE_PAIR_MACWIN(mwn_no_ae, N0, N0, E, N6, N0, N0, C, N6)
+ZMK_UNICODE_PAIR_MACWIN(mwn_no_ao, N0, N0, E, N5, N0, N0, C, N5)
+ZMK_UNICODE_PAIR_MACWIN(mwn_no_oe, N0, N0, F, N8, N0, N0, D, N8)
+ZMK_UNICODE_PAIR_LINUX(lnx_no_ae, N0, N0, E, N6, N0, N0, C, N6)
+ZMK_UNICODE_PAIR_LINUX(lnx_no_ao, N0, N0, E, N5, N0, N0, C, N5)
+ZMK_UNICODE_PAIR_LINUX(lnx_no_oe, N0, N0, F, N8, N0, N0, D, N8)
- &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
- &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT
- &kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET
- &kp LSHFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
- &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp K_CMENU &kp RCTRL
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- raise {
- // ------------------------------------------------------------------------------------------
- // |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
- // | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | |
- // | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP|RGB_TOG| BOOT |
- // | SHIFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| B | N | M | , | END | PGDN | BL_TOG |
- // | BT_PRV| BT_NXT| ALT | SPACE | ALT | 1 | RESET |BT_CLR |
- // ------------------------------------------------------------------------------------------
- bindings = <
- &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
- &trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK
- &trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &rgb_ug RGB_TOG &bootloader
- &trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
- &bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &sys_reset &bt BT_CLR
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- #elif defined(ALL_1U)
- default_layer {
- // ------------------------------------------------------------------------------------------
- // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |BKSP | DEL |
- // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
- // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
- // | SHFT |NONE| Z | X | C | V | B | N | M | , | . | / | SHFT | UP | 1 |
- // | CTL | WIN | ALT | SPACE | RALT| CTRL | LEFT | DOWN | RIGHT |
- // ------------------------------------------------------------------------------------------
- bindings = <
- &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp DEL
- &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
- &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
- &kp LSHFT &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &mo 1
- &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- raise {
- // ------------------------------------------------------------------------------------------
- // |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |BKSP | DEL |
- // | TAB | Q | W | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG |
- // | CAPS | A | S | D | BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
- // | SHFT |NONE|VOLDN|VOLUP|MUTE|BLINC|BLDEC| N | M | , | END | PGDN | SHFT|BL_TOG| 1 |
- // | BT_PRV| BT_NXT| ALT | SPACE | RALT| CTRL | LEFT |RESET| BT_CLR |
- // ------------------------------------------------------------------------------------------
- bindings = <
- &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans
- &trans &trans &trans &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
- &trans &trans &trans &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
- &trans &none &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &trans &bl BL_TOG &trans
- &bt BT_PRV &bt BT_NXT &trans &trans &trans &trans &trans &sys_reset &bt BT_CLR
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- #elif defined(HHKB)
- default_layer {
- // ------------------------------------------------------------------------------------------
- // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
- // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
- // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
- // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT |
- // | CTL | WIN | ALT | SPACE | ALT | 1 | CTRL |
- // ------------------------------------------------------------------------------------------
- bindings = <
+COMBO(lnx_oe_comb, K_O K_E, DEFAULT, &lnx_no_oe)
+COMBO(lnx_ae_comb, K_A K_E, DEFAULT, &lnx_no_ae)
+COMBO(lnx_ao_comb, K_A K_O, DEFAULT, &lnx_no_ao)
- &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
- &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
- &kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET
- &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
- &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 1 &kp RCTRL
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
- };
- raise {
- // ------------------------------------------------------------------------------------------
- // |GRAVE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DEL |
- // | TAB | Q | UP | E | HUI | HUD | Y | U | INS | O |PSCRN| SLCK| P_B | RGB_TOG|
- // | CAPS | LEFT| DOWN|RIGHT| BRI | BRD | H | J | K | L | HOME| PGUP| BOOT |
- // | SHFT |VOLDN|VOLUP| MUTE|BLINC|BLDEC| N | M | , | END | PGDN | BL_TOG |
- // | BT_PRV | BT_NXT | ALT | SPACE | RESET | 1 | BT_CLR |
- // ------------------------------------------------------------------------------------------
- bindings = <
- &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
- &trans &trans &kp UP &trans &rgb_ug RGB_HUI &rgb_ug RGB_HUD &trans &trans &kp INS &trans &kp PSCRN &kp SLCK &kp PAUSE_BREAK &rgb_ug RGB_TOG
- &trans &kp LEFT &kp DOWN &kp RIGHT &rgb_ug RGB_BRI &rgb_ug RGB_BRD &trans &trans &trans &trans &kp HOME &kp PG_UP &bootloader
- &trans &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC &trans &trans &trans &kp END &kp PG_DN &bl BL_TOG
- &bt BT_PRV &bt BT_NXT &trans &trans &sys_reset &trans &bt BT_CLR
- >;
- sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+COMBO(mwn_oe_comb, 54 37, MAC_U, &mwn_no_oe)
+COMBO(mwn_ae_comb, 54 38, MAC_U, &mwn_no_ae)
+COMBO(mwn_ao_comb, 54 25, MAC_U, &mwn_no_ao)
+
+/ {
+ behaviors {
+ mo_tog: behavior_mo_tog {
+ compatible = "zmk,behavior-hold-tap";
+ label = "mo_tog";
+ #binding-cells = <2>;
+ flavor = "hold-preferred";
+ tapping-term-ms = <200>;
+ bindings = <&mo>, <&tog>;
+ };
+ td_rfn_u_c: rfn_u {
+ compatible = "zmk,behavior-tap-dance";
+ label = "RFN_UPPER";
+ #binding-cells = <0>;
+ tapping-term-ms = <200>;
+ bindings = <&mo 1>, <&tog 1>;
+ };
+ td_rfn_l_c: rfn_l {
+ compatible = "zmk,behavior-tap-dance";
+ label = "RFN_LOWER";
+ #binding-cells = <0>;
+ tapping-term-ms = <200>;
+ bindings = <&mo 1>, <&mo 2>;
+ };
+ td_lctrl_l: lctrl_l {
+ compatible = "zmk,behavior-tap-dance";
+ label = "LCTRL_LOWER";
+ #binding-cells = <0>;
+ tapping-term-ms = <200>;
+ bindings = <&mo 1>, <&mo 2>;
+ };
+ td_lshift_c: lshift_caps {
+ compatible = "zmk,behavior-tap-dance";
+ label = "LSHIFT_CAPS";
+ #binding-cells = <0>;
+ tapping-term-ms = <200>;
+ bindings = <&kp LSHFT>, <&kp CAPS>;
+ };
+ td_rshift_c: rshift_caps {
+ compatible = "zmk,behavior-tap-dance";
+ label = "RSHIFT_CAPS";
+ #binding-cells = <0>;
+ tapping-term-ms = <200>;
+ bindings = <&kp RSHFT>, <&kp CAPS>;
+ };
};
- #else
- #error "Layout not defined, please define a layout by uncommenting the appropriate line in bt60_v2.keymap"
- #endif
- };
+ keymap {
+ compatible = "zmk,keymap";
+
+ default_layer {
+ // ------------------------------------------------------------------------------------------
+ // | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP
+ // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | |
+ // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | # | ENTER |
+ // | SHIFT| \ | Z | trans | . | / | SHIFT |
+ // | CTL | WIN | ALT | SPACE | ALT | 1 | MENU | CTRL|
+ // ------------------------------------------------------------------------------------------
+ bindings = <
+
+ &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
+ &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT
+ &mt LCTRL ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NON_US_HASH &kp RET
+ &kp LSHIFT &kp NON_US_BSLH &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &td_rshift_c &td_rfn_u_c
+ &td_lctrl_l &kp LGUI &kp LALT &kp SPACE &kp RALT &td_rfn_l_c &kp C_MENU &kp RCTRL
+ >;
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+ };
+ raise {
+ bindings = <
+ &bt BT_CLR &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL
+ ___ ___ ___ ___ ___ ___ &kp HOME &kp PG_DN &kp PG_UP &kp END &kp PSCRN &kp SLCK &kp PAUSE_BREAK
+ ___ ___ ___ ___ ___ ___ &kp LEFT &kp DOWN &kp UP &kp RIGHT ___ ___ ___ ___
+ &kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &bl BL_INC &bl BL_DEC ___ ___ ___ ___ ___ ___ ___ ___
+ &to 0 ___ ___ ___ ___ &mo 2 ___ ___
+ >;
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+ };
+ special {
+ bindings = <
+ &out OUT_TOG &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 ___ ___ ___ ___ ___ ___ ___ &bt BT_CLR
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ &bootloader
+ ___ &tog MAC_U &tog GAMING_U ___ ___ ___ ___ ___ ___ ___ ___ ___ &bl BL_TOG ___
+ &to 0 ___ ___ ___ ___ ___ &sys_reset ___
+ >;
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+ };
+
+
+ mac_unicode {
+ bindings = <
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___
+ >;
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+ };
+ gaming {
+ bindings = <
+ &kp ESC ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &kp LCTRL ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &kp LSHIFT ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
+ &kp LCTRL ___ ___ ___ ___ ___ ___ ___
+ >;
+ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
+ };
+
+ };
};
+
diff --git a/config/bt60_v2.overlay b/config/bt60_v2.overlay
new file mode 100644
index 0000000..02595ab
--- /dev/null
+++ b/config/bt60_v2.overlay
@@ -0,0 +1,33 @@
+#include <dt-bindings/zmk/matrix_transform.h>
+
+/ {
+ model = "BT60_V2";
+ compatible = "polarityworks,bt60_v2";
+
+ chosen {
+ zephyr,code-partition = &code_partition;
+ zephyr,sram = &sram0;
+ zephyr,flash = &flash0;
+ zmk,kscan = &kscan0;
+ zmk,underglow = &led_strip;
+ zmk,backlight = &backlight;
+ zmk,matrix_transform = &default_transform;
+ zmk,battery = &vbatt;
+ };
+
+ default_transform: keymap_transform_0 {
+ compatible = "zmk,matrix-transform";
+ columns = <15>;
+ rows = <5>;
+ map = <
+ RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
+ RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12)
+ RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,12) RC(3,13)
+ RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,12) RC(4,14)
+ RC(5,0) RC(5,1) RC(5,2) RC(5,6) RC(5,10) RC(5,11) RC(5,12) RC(5,13)
+ >;
+ };
+
+
+};
+
diff --git a/config/common.h b/config/common.h
new file mode 100644
index 0000000..1292b8b
--- /dev/null
+++ b/config/common.h
@@ -0,0 +1,29 @@
+#define ___ &trans
+#define XXX &none
+
+#ifndef QUICK_TAP_MS
+ #define QUICK_TAP_MS 175
+#endif
+
+#define ZMK_HELPER_STRINGIFY(x) #x
+
+#define MO_TOG(layer) &mo_tog layer layer // Macro to apply momentary-layer-on-hold/toggle-layer-on-tap to a specific layer
+
+&sk { // sticky-key config
+ release-after-ms = <900>; // release after 0.6s
+ quick-release; // no double capitalization when rolling keys
+};
+
+&sl { // sticky-layer config
+ ignore-modifiers; // allow chording sticky mods & layers
+};
+
+&lt { // layer-tap config
+ flavor = "balanced";
+ tapping-term-ms = <200>;
+ quick-tap-ms = <QUICK_TAP_MS>;
+};
+
+
+#include "../utils/unicode.h"
+