/* * Copyright (c) 2020 The ZMK Contributors * * SPDX-License-Identifier: MIT */ /* * Temporarily here because nice nano v2 spi is not defined on ZMk Yet * Source: https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/reviung41/boards/nice_nano.overlay * GitHub Issue: https://github.com/zmkfirmware/zmk/issues/885 */ #include &spi1 { compatible = "nordic,nrf-spim"; status = "okay"; mosi-pin = <6>; // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. sck-pin = <5>; miso-pin = <7>; led_strip: ws2812@0 { compatible = "worldsemi,ws2812-spi"; label = "WS2812"; /* SPI */ reg = <0>; /* ignored, but necessary for SPI bindings */ spi-max-frequency = <4000000>; /* WS2812 */ chain-length = <11>; /* arbitrary; change at will */ spi-one-frame = <0x70>; spi-zero-frame = <0x40>; color-mapping = ; }; }; / { chosen { zmk,underglow = &led_strip; }; }; #include #include #include #include #include &mt { tapping-term-ms = <300>; }; / { combos { compatible = "zmk,combos"; combo_bksp { timeout-ms = <50>; key-positions = <20 21>; bindings = <&kp BSPC>; layers = <0>; }; combo_tab { timeout-ms = <50>; key-positions = <28 29>; bindings = <&kp TAB>; layers = <0>; }; combo_ret { timeout-ms = <50>; key-positions = <32 33>; bindings = <&kp RET>; layers = <0>; }; }; }; / { behaviors { gqt: global-quick-tap { compatible = "zmk,behavior-hold-tap"; label = "GLOBAL_QUICK_TAP"; #binding-cells = <2>; flavor = "tap-preferred"; tapping-term-ms = <300>; quick-tap-ms = <175>; global-quick-tap; bindings = <&kp>, <&kp>; }; }; keymap { compatible = "zmk,keymap"; default_layer { bindings = < &none &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC &kp COLON &gqt LCTRL A &gqt LSHFT S &gqt LALT D &gqt LCMD F &kp G &kp H &kp J &kp K &kp L &gqt RSHFT SEMI &kp SQT &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &gqt RCTRL FSLH &kp RET &mo 4 < 2 ESC &kp SPACE &mo 1 &mo 3 >; }; symbols { bindings = < &none &kp EXCL &kp AT &kp LBRC &kp RBRC &kp PIPE &kp PLUS &kp STAR &kp PRCNT &none &none &none &none &kp CARET &kp DLLR &kp LPAR &kp RPAR &kp GRAVE &kp UNDER &kp BSPC &kp DEL &kp DQT &kp SQT &none &none &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp TILDE &kp AMPS &kp LT &kp GT &kp HASH &kp BSLH &none &none &none &kp SPACE &none &none >; }; funciton_keys { bindings = < &none &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F6 &kp F8 &kp F9 &kp F10 &none &none &none &none &none &none &kp F11 &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &none &none &none &none &none &none &kp F12 &none &kp PG_DN &kp PG_UP &none &none &none &none &none &none &none &none >; }; numbers { bindings = < &none &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &none &none &none &none &none &none &none &none &kp N4 &kp N5 &kp N6 &none &none &none &none &none &none &none &none &kp N0 &kp N1 &kp N2 &kp N3 &none &none &none &none &none &none &none >; }; media_ctrl { bindings = < &rgb_ug RGB_BRI &rgb_ug RGB_SAI &rgb_ug RGB_HUI &rgb_ug RGB_EFF &none &rgb_ug RGB_TOG &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &bt BT_CLR &rgb_ug RGB_BRD &rgb_ug RGB_SAD &rgb_ug RGB_HUD &rgb_ug RGB_EFR &none &none &kp C_PP &kp C_VOL_DN &kp C_VOL_UP &kp C_MUTE &none &out OUT_TOG &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none &none >; }; }; };