#define ZMK_POINTING_DEFAULT_MOVE_VAL 600 // 600 #define ZMK_POINTING_DEFAULT_SCRL_VAL 10 // 10 #include #include #include #include #include #include #include #include &mmv_input_listener { input-processors = <&zip_xy_scaler 2 1>; }; &msc_input_listener { input-processors = <&zip_scroll_scaler 2 1>; }; &msc { acceleration-exponent = <0>; // 0 time-to-max-speed-ms = <500>; // 300 // 0 }; &mmv { time-to-max-speed-ms = <500>; acceleration-exponent = <1>; trigger-period-ms = <16>; }; / { scroll_encoder: scroll_encoder { compatible = "zmk,behavior-sensor-rotate"; #sensor-binding-cells = <0>; bindings = <&msc SCRL_DOWN>, <&msc SCRL_UP>; tap-ms = <100>; }; behaviors { }; keymap { compatible = "zmk,keymap"; Main { bindings = < &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &mmv MOVE_UP &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp BACKSPACE &kp TAB &kp Q &kp W &kp E &kp R &kp T &mmv MOVE_DOWN &kp Y &kp U &kp I &kp O &kp P &kp BSLH &kp CAPS &kp A &kp S &kp D &kp F &kp G &mmv MOVE_LEFT &kp H &kp J &kp K &kp L &kp SEMI &kp APOS &mt LSHFT ENTER &kp Z &kp X &kp C &kp V &kp B &mmv MOVE_RIGHT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &mt RSHIFT ENTER &kp C_MUTE &kp LCTRL &kp LEFT_ALT &mo 1 &kp SPACE &kp LEFT_GUI &mkp LCLK &kp RGUI &kp SPACE &mo 1 &kp RIGHT_ALT &kp RCTRL >; sensor-bindings = <&inc_dec_kp C_VOLUME_UP C_VOL_DN>; display-name = "Main"; }; Layer1 { bindings = < &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &trans &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &to 4 &msc SCRL_UP &kp C_VOLUME_DOWN &kp C_PREVIOUS &kp UP &kp C_NEXT &kp C_VOLUME_UP &trans &rgb_ug RGB_HUD &rgb_ug RGB_HUI &kp INS &kp DEL &kp MINUS &kp EQUAL &msc SCRL_DOWN &trans &kp LEFT &kp DOWN &kp RIGHT &to 4 &trans &rgb_ug RGB_SAD &rgb_ug RGB_SAI &kp HOME &kp END &kp LEFT_BRACKET &kp RIGHT_BRACKET &trans &trans &rgb_ug RGB_TOG &rgb_ug RGB_EFF &rgb_ug RGB_SPD &rgb_ug RGB_SPI &trans &rgb_ug RGB_BRI &rgb_ug RGB_BRD &kp PG_UP &kp PG_DN &kp F12 &trans &kp C_PLAY_PAUSE &trans &trans &mo 2 &trans &trans &trans &trans &trans &mo 2 &trans &trans >; display-name = "Layer 1"; sensor-bindings = <&inc_dec_kp C_BRI_INC C_BRI_DEC>; }; Layer2 { bindings = < &kp TILDE &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &trans &trans &bt BT_CLR &bt BT_CLR_ALL &trans &trans &trans &trans &trans &trans &kp F11 &kp F12 &kp UNDER &kp PLUS &trans &out OUT_USB &out OUT_BLE &trans &trans &trans &trans &trans &trans &trans &trans &kp LBRC &kp RBRC &trans &sys_reset &trans &bootloader &trans &trans &trans &trans &trans &sys_reset &soft_off &bootloader &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans >; label = "Layer 2"; }; NUMPAD { bindings = < &to 0 &none &none &none &none &none &none &none &kp PLUS &kp MINUS &kp MINUS &kp EQUAL &to 0 &none &none &none &kp UP &none &none &none &none &kp N7 &kp N8 &kp N9 &none &none &none &none &kp LEFT &kp DOWN &kp RIGHT &none &none &none &kp N4 &kp N5 &kp N6 &none &none &none &none &none &none &none &none &none &none &kp N1 &kp N2 &kp N3 &none &none &none &trans &trans &to 4 &trans &trans &none &trans &trans &to 4 &kp N0 &kp DOT >; label = "Layer 3"; }; NUMLOCK { bindings = < &to 0 &kp NUMBER_1 &kp NUMBER_2 &kp NUMBER_3 &kp NUMBER_4 &kp NUMBER_5 &trans &kp NUMBER_6 &kp NUMBER_7 &kp NUMBER_8 &kp NUMBER_9 &kp NUMBER_0 &to 0 &msc SCRL_UP &trans &mkp MB1 &mmv MOVE_UP &mkp MB2 &trans &trans &trans &kp HOME &kp UP &kp PG_UP &trans &trans &mkp MB3 &trans &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &trans &trans &trans &kp LEFT &none &kp RIGHT &trans &trans &msc SCRL_DOWN &trans &trans &trans &trans &trans &trans &trans &kp END &kp DOWN &kp PG_DN &trans &trans &trans &trans &trans &to 3 &trans &trans &trans &trans &trans &to 3 &none &none >; label = "Layer 4"; }; }; };