diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ed217252e..b8e0b90e7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,4 +2,4 @@ on: [push, pull_request, workflow_dispatch] jobs: build: - uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main \ No newline at end of file + uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@v0.3.0 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2f1ddda02..59eca31bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,38 @@ +# ZMK build artifacts build/ +*.uf2 +*.bin + +# West workspace dependencies zmk/ zephyr/ modules/ tools/ -.west/ \ No newline at end of file +.west/ + +# Worktrees +.worktrees/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# System +.DS_Store +Thumbs.db + +# CMake +CMakeCache.txt +CMakeFiles/ + +# Python +__pycache__/ +*.pyc + +# Temp +*.tmp +*.log +*.bak diff --git a/config/corneish_zen.conf b/config/corneish_zen.conf index ac7db38dd..1318fad2c 100644 --- a/config/corneish_zen.conf +++ b/config/corneish_zen.conf @@ -1,11 +1,19 @@ -# Go to sleep after one hour (1*60*60*1000ms) -CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=3600000 +# Power Management +CONFIG_ZMK_IDLE_TIMEOUT=30000 +CONFIG_ZMK_SLEEP=y +CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 -# Increase Bluetooth power level +# Bluetooth CONFIG_BT_CTLR_TX_PWR_PLUS_8=y +CONFIG_BT_GATT_ENFORCE_SUBSCRIPTION=n +CONFIG_BT_GATT_AUTO_SEC_REQ=n -# Enable mouse stuff +# Keyboard Scanning +CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=10 +CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5 + +# Features CONFIG_ZMK_MOUSE=y -# Turn on logging, and set ZMK logging to debug output -# CONFIG_ZMK_USB_LOGGING=y \ No newline at end of file +# Uncomment to enable USB logging (increases power use) +# CONFIG_ZMK_USB_LOGGING=y diff --git a/config/corneish_zen.keymap b/config/corneish_zen.keymap index 064317afc..0e971b01f 100644 --- a/config/corneish_zen.keymap +++ b/config/corneish_zen.keymap @@ -15,12 +15,38 @@ / { behaviors { - hm: homerow_mods { + hm_shift: hm_shift { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + tapping-term-ms = <300>; + quick-tap-ms = <0>; + flavor = "tap-preferred"; + bindings = <&kp>, <&kp>; + }; + + hm_slow: hm_slow { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + tapping-term-ms = <500>; + quick-tap-ms = <0>; + flavor = "balanced"; + bindings = <&kp>, <&kp>; + }; + + hm_fast: hm_fast { compatible = "zmk,behavior-hold-tap"; - label = "HOMEROW_MODS"; #binding-cells = <2>; tapping-term-ms = <200>; quick-tap-ms = <0>; + flavor = "balanced"; + bindings = <&kp>, <&kp>; + }; + + hm_gui: hm_gui { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + tapping-term-ms = <250>; + quick-tap-ms = <0>; flavor = "tap-preferred"; bindings = <&kp>, <&kp>; }; @@ -49,17 +75,17 @@ quick-tap-ms = <0>; bindings = <&em_dash>, <&kp>; }; - }; - dance: dance { - compatible = "zmk,behavior-hold-tap"; - label = "DANCE"; - #binding-cells = <2>; - tapping-term-ms = <200>; - quick-tap-ms = <0>; - bindings = <&kp>, <&kp>; + dance: dance { + compatible = "zmk,behavior-hold-tap"; + label = "DANCE"; + #binding-cells = <2>; + tapping-term-ms = <200>; + quick-tap-ms = <0>; + bindings = <&kp>, <&kp>; - flavor = "balanced"; + flavor = "balanced"; + }; }; macros { @@ -86,6 +112,15 @@ }; }; + combos { + compatible = "zmk,combos"; + + L_mo_keeb { + bindings = <&mo 9>; + key-positions = <38 12>; + }; + }; + keymap { compatible = "zmk,keymap"; @@ -93,7 +128,7 @@ label = "base"; bindings = < &kp ESC &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &none -&none &hm LSHIFT A &hm LGUI S &hm LALT D &hm LCTRL F &kp G &kp H &hm RCTRL J &hm RALT K &hm RGUI L &hm RSHIFT SEMI &kp APOSTROPHE +&none &hm_shift LSHIFT A &hm_slow LGUI S &hm_slow LALT D &hm_fast LCTRL F &kp G &kp H &hm_slow LCTRL J &hm_slow LALT K &hm_gui RGUI L &hm_slow RSHIFT SEMI &kp APOSTROPHE &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &none < 1 TAB < 5 ENTER < 7 BACKSPACE < 8 SPACE < 2 TAB < 6 DEL >; @@ -143,7 +178,7 @@ label = "symL"; bindings = < &trans &kp CARET &kp AMPERSAND &kp ASTERISK &kp PERCENT &kp EQUAL &trans &trans &trans &trans &trans &trans -&trans &hm LSHIFT EXCLAMATION &hm LWIN AT_SIGN &hm LALT HASH &hm LCTRL DOLLAR &dash_dance 0 MINUS &trans &trans &trans &trans &trans &trans +&trans &hm_shift LSHIFT EXCLAMATION &hm_slow LWIN AT_SIGN &hm_slow LALT HASH &hm_fast LCTRL DOLLAR &dash_dance 0 MINUS &trans &trans &trans &trans &trans &trans &trans &kp GRAVE &dance RIGHT_BRACE LEFT_BRACE &dance RIGHT_BRACKET LEFT_BRACKET &dance RIGHT_PARENTHESIS LEFT_PARENTHESIS &kp BACKSLASH &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans >; @@ -153,7 +188,7 @@ label = "symR"; bindings = < &trans &trans &trans &trans &trans &trans &kp EQUAL &kp PERCENT &kp ASTERISK &kp AMPERSAND &kp CARET &trans -&trans &trans &trans &trans &trans &trans &dash_dance 0 MINUS &hm RCTRL DOLLAR &hm RALT HASH &hm RWIN AT_SIGN &hm RSHIFT EXCLAMATION &trans +&trans &trans &trans &trans &trans &trans &dash_dance 0 MINUS &hm_slow LCTRL DOLLAR &hm_slow LALT HASH &hm_gui RWIN AT_SIGN &hm_slow RSHIFT EXCLAMATION &trans &trans &trans &trans &trans &trans &trans &kp BACKSLASH &dance LEFT_PARENTHESIS RIGHT_PARENTHESIS &dance LEFT_BRACKET RIGHT_BRACKET &dance LEFT_BRACE RIGHT_BRACE &kp GRAVE &trans &trans &trans &trans &trans &trans &trans >; @@ -170,7 +205,7 @@ }; NavRight { - label = "nav"; + label = "navR"; bindings = < &trans &trans &trans &trans &trans &trans &kp LG(LC(LEFT)) &trans &trans &kp LG(LC(RIGHT)) &trans &trans &trans &trans &trans &trans &trans &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &mo 10 @@ -182,20 +217,20 @@ boardLeft { label = "keebL"; bindings = < -&kp CAPS &bt BT_DISC 0 &bt BT_DISC 1 &bt BT_DISC 2 &bt BT_DISC 3 &bt BT_DISC 4 &kp KP_NLCK &none &none &none &none &bt BT_CLR -&none &none &none &none &none &none &none &kp C_VOL_DN &kp C_MUTE &kp C_VOL_UP &none &bt BT_PRV -&none &none &none &none &none &none &none &kp C_PREV &kp C_PP &kp C_NEXT &none &bt BT_NXT - &none &none &none &none &trans &trans +&kp CAPS &none &bt BT_PRV &bt BT_CLR &bt BT_NXT &none &bt BT_DISC 0 &bt BT_DISC 1 &bt BT_DISC 2 &bt BT_DISC 3 &bt BT_DISC 4 &kp KP_NLCK +&none &none &kp C_VOL_DN &kp C_MUTE &kp C_VOL_UP &none &none &none &none &none &none &none +&none &none &kp C_PREV &kp C_PP &kp C_NEXT &none &none &none &none &none &none &none + &none &none &none &none &none &trans >; }; - BoardRight { + boardRight { label = "keebR"; bindings = < -&kp CAPS &bt BT_DISC 0 &bt BT_DISC 1 &bt BT_DISC 2 &bt BT_DISC 3 &bt BT_DISC 4 &kp KP_NLCK &none &none &none &none &bt BT_CLR -&none &none &none &none &none &none &none &kp C_VOL_DN &kp C_MUTE &kp C_VOL_UP &none &bt BT_PRV -&none &none &none &none &none &none &none &kp C_PREV &kp C_PP &kp C_NEXT &none &bt BT_NXT - &trans &trans &trans &trans &trans &trans +&kp CAPS &bt BT_DISC 0 &bt BT_DISC 1 &bt BT_DISC 2 &bt BT_DISC 3 &bt BT_DISC 4 &none &bt BT_PRV &bt BT_CLR &bt BT_NXT &none &kp KP_NLCK +&none &none &none &none &none &none &none &kp C_VOL_DN &kp C_MUTE &kp C_VOL_UP &none &none +&none &none &none &none &none &none &none &kp C_PREV &kp C_PP &kp C_NEXT &none &none + &none &none &none &none &none &trans >; }; diff --git a/config/west.yml b/config/west.yml index 9e6c15157..8ccc2f9cc 100644 --- a/config/west.yml +++ b/config/west.yml @@ -5,7 +5,7 @@ manifest: projects: - name: zmk remote: zmkfirmware - revision: main + revision: v0.3.0 import: app/west.yml self: path: config