From 7decf29dc57bc32aabf77b9d9c266d06db202272 Mon Sep 17 00:00:00 2001 From: ldebritto Date: Thu, 13 Feb 2025 16:37:04 -0300 Subject: [PATCH] Experimenting with macro for dragging with MOU layer --- config/cradio.keymap | 61 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/config/cradio.keymap b/config/cradio.keymap index 6818f5d..9430186 100644 --- a/config/cradio.keymap +++ b/config/cradio.keymap @@ -3,18 +3,20 @@ #include #include // requires auto-layer module (https://github.com/urob/zmk-auto-layer) #include "mouse.dtsi" +#include // Layer defines #define DEF 0 #define MOU 1 -#define NUM 2 -#define NAV 3 -#define SYM 4 -#define FUN 5 -#define AOE 6 // AOE 2 layers with easier access for default shortcuts on main layer -#define AGS 7 -#define ABS 8 +#define MDM 2 +#define NUM 3 +#define NAV 4 +#define SYM 5 +#define FUN 6 +#define AOE 7 // AOE 2 layers with easier access for default shortcuts on main layer +#define AGS 8 +#define ABS 9 #define HYPR LG(LS(LC(LALT))) // HYPR key #define HP(k1) LG(LS(LC(LA(k1)))) // HYPR mod shorthand @@ -142,6 +144,24 @@ require-prior-idle-ms = <200>; }; + // Mouse dragging combos (see macros bellow) + + initiate_drag_with_left_click { + key-positions = <32 33>; + bindings = <&initdrag>; + require-prior-idle-ms = <200>; + layers = ; + }; + + terminate_drag_with_left_click { + key-positions = <32 33>; + bindings = <&enddrag>; + require-prior-idle-ms = <200>; + layers = ; + }; + + + // SYS combos to replace a dedicated SYS layer sys_bootloader { @@ -280,6 +300,24 @@ <&mo MACRO_PLACEHOLDER>; }; + initdrag: initiate_drag_for_mouse_click { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <¯o_tap &to DEF>, + <¯o_press &mkp LCLK>, + <¯o_tap &tog MDM>; + }; + + enddrag: finish_drag_for_mouse_click { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings + = <¯o_tap &to DEF>, + <¯o_release &mkp LCLK>, + <¯o_tap &tog MDM>; + }; + mnav: from_layer_to_nav_through_def { // Disables any toggled layer and goes to NAV on hold compatible = "zmk,behavior-macro"; #binding-cells = <0>; @@ -322,6 +360,15 @@ >; }; + MDM { + bindings = < + &kp TAB &kp LC(UP) &kp LS(LC(TAB)) &kp LC(TAB) &kp LG(RBKT) &msc SCRL_DOWN &msc SCRL_RIGHT &mmv MOVE_UP &msc SCRL_LEFT &kp BSPC + &kp LCTRL &kp LALT &kp LSHFT &kp LGUI &kp LG(LBKT) &msc SCRL_UP &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_RIGHT &kp ENTER + &hrml GLOBE LG(Z) &kp LG(X) &kp LG(C) &kp LG(V) &kp F18 &playnp &mkp MCLK &vb_dn &vb_up &kp DEL + &mnav &kp SPACE &mkp LCLK &mkp RCLK + >; + }; + NUM { // keypad is almost mirrored to allow for use with and without a mouse bindings = < &trans &trans &trans &trans &trans &kp PLUS &kp N7 &kp N8 &kp N9 &kp ASTRK