Skip to content

Mouse clicks (&mkp LCLK etc) stopped working? #2798

Closed
@siadat

Description

Mouse clicking used to work a few weeks ago, but it stopped working when I built the same layout today. I use Glove80's layout editor and builder with the keymap pasted at the end.

The way I enabled clicks:

  • Added #include <dt-bindings/zmk/mouse.h>
  • Added &mkp LCLK, &mkp MCLK, &mkp RCLK

Afaict, Glove80 web layout builder (https://my.glove80.com/#/layout/) uses a fork of ZMK, probably https://github.com/moergo-sc/zmk. I wonder if the following PR changed anything related to this: #2477

I will see if I can reproduce it in https://github.com/siadat/glove80-zmk-config

Keymap file
/*
 * Copyright (c) 2020 The ZMK Contributors
 * Copyright (c) 2023 Innaworks Development Limited, trading as MoErgo
 *
 * SPDX-License-Identifier: MIT
 */


/* THIS FILE WAS GENERATED BY GLOVE80 LAYOUT EDITOR
 *
 * This file was generated automatically. You may or may not want to
 * edit it directly.
 */

#include <behaviors.dtsi>
/* Include all behavior includes needed */
#include <dt-bindings/zmk/outputs.h>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/rgb.h>

/* On demand includes */


/* Automatically generated layer name #define */
#define LAYER_QWERTY 0
#define LAYER_symboles 1
#define LAYER_Navigation 2
#define LAYER_Magic 3

/* To deal with the situation where there is no Lower layer, to keep &lower happy */
#ifndef LAYER_Lower
#define LAYER_Lower 0
#endif

/* Custom Device-tree */
#include <dt-bindings/zmk/mouse.h>


/* Glove80 system behavior & macros */
/ {
    behaviors {
        // For the "layer" key, it'd nice to be able to use it as either a shift or a toggle.
        // Configure it as a tap dance, so the first tap (or hold) is a &mo and the second tap is a &to
        lower: lower {
            compatible = "zmk,behavior-tap-dance";
            label = "LAYER_TAP_DANCE";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&mo LAYER_Lower>, <&to LAYER_Lower>;
        };
    };
};

/ {
    macros {
        rgb_ug_status_macro: rgb_ug_status_macro {
            label = "RGB_UG_STATUS";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&rgb_ug RGB_STATUS>;
        };
    };
};


/ {
#ifdef BT_DISC_CMD
    behaviors {
        bt_0: bt_0 {
            compatible = "zmk,behavior-tap-dance";
            label = "BT_0";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&bt_select_0>, <&bt BT_DISC 0>;
        };
        bt_1: bt_1 {
            compatible = "zmk,behavior-tap-dance";
            label = "BT_1";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&bt_select_1>, <&bt BT_DISC 1>;
        };
        bt_2: bt_2 {
            compatible = "zmk,behavior-tap-dance";
            label = "BT_2";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&bt_select_2>, <&bt BT_DISC 2>;
        };
        bt_3: bt_3 {
            compatible = "zmk,behavior-tap-dance";
            label = "BT_3";
            #binding-cells = <0>;
            tapping-term-ms = <200>;
            bindings = <&bt_select_3>, <&bt BT_DISC 3>;
        };
    };
    macros {
        bt_select_0: bt_select_0 {
            label = "BT_SELECT_0";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 0>;
        };
        bt_select_1: bt_select_1 {
            label = "BT_SELECT_1";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 1>;
        };
        bt_select_2: bt_select_2 {
            label = "BT_SELECT_2";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 2>;
        };
        bt_select_3: bt_select_3 {
            label = "BT_SELECT_3";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 3>;
        };
    };
#else
    macros {
        bt_0: bt_0 {
            label = "BT_0";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 0>;
        };
        bt_1: bt_1 {
            label = "BT_1";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 1>;
        };
        bt_2: bt_2 {
            label = "BT_2";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 2>;
        };
        bt_3: bt_3 {
            label = "BT_3";
            compatible = "zmk,behavior-macro";
            #binding-cells = <0>;
            bindings
                = <&out OUT_BLE>,
                  <&bt BT_SEL 3>;
        };
    };
#endif
};

/ {
    behaviors {
        magic: magic {
            compatible = "zmk,behavior-hold-tap";
            label = "MAGIC_HOLD_TAP";
            #binding-cells = <2>;
            flavor = "tap-preferred";
            tapping-term-ms = <200>;
            bindings = <&mo>, <&rgb_ug_status_macro>;
        };
    };
};

/* #define for key positions */
#define POS_LH_T1 52
#define POS_LH_T2 53
#define POS_LH_T3 54
#define POS_LH_T4 69
#define POS_LH_T5 70
#define POS_LH_T6 71
#define POS_LH_C1R2 15
#define POS_LH_C1R3 27
#define POS_LH_C1R4 39
#define POS_LH_C1R5 51
#define POS_LH_C2R1 4
#define POS_LH_C2R2 14
#define POS_LH_C2R3 26
#define POS_LH_C2R4 38
#define POS_LH_C2R5 50
#define POS_LH_C2R6 68
#define POS_LH_C3R1 3
#define POS_LH_C3R2 13
#define POS_LH_C3R3 25
#define POS_LH_C3R4 37
#define POS_LH_C3R5 49
#define POS_LH_C3R6 67
#define POS_LH_C4R1 2
#define POS_LH_C4R2 12
#define POS_LH_C4R3 24
#define POS_LH_C4R4 36
#define POS_LH_C4R5 48
#define POS_LH_C4R6 66
#define POS_LH_C5R1 1
#define POS_LH_C5R2 11
#define POS_LH_C5R3 23
#define POS_LH_C5R4 35
#define POS_LH_C5R5 47
#define POS_LH_C5R6 65
#define POS_LH_C6R1 0
#define POS_LH_C6R2 10
#define POS_LH_C6R3 22
#define POS_LH_C6R4 34
#define POS_LH_C6R5 46
#define POS_LH_C6R6 64
#define POS_RH_T1 57
#define POS_RH_T2 56
#define POS_RH_T3 55
#define POS_RH_T4 74
#define POS_RH_T5 73
#define POS_RH_T6 72
#define POS_RH_C1R2 16
#define POS_RH_C1R3 28
#define POS_RH_C1R4 40
#define POS_RH_C1R5 58
#define POS_RH_C2R1 5
#define POS_RH_C2R2 17
#define POS_RH_C2R3 29
#define POS_RH_C2R4 41
#define POS_RH_C2R5 59
#define POS_RH_C2R6 75
#define POS_RH_C3R1 6
#define POS_RH_C3R2 18
#define POS_RH_C3R3 30
#define POS_RH_C3R4 42
#define POS_RH_C3R5 60
#define POS_RH_C3R6 76
#define POS_RH_C4R1 7
#define POS_RH_C4R2 19
#define POS_RH_C4R3 31
#define POS_RH_C4R4 43
#define POS_RH_C4R5 61
#define POS_RH_C4R6 77
#define POS_RH_C5R1 8
#define POS_RH_C5R2 20
#define POS_RH_C5R3 32
#define POS_RH_C5R4 44
#define POS_RH_C5R5 62
#define POS_RH_C5R6 78
#define POS_RH_C6R1 9
#define POS_RH_C6R2 21
#define POS_RH_C6R3 33
#define POS_RH_C6R4 45
#define POS_RH_C6R5 63
#define POS_RH_C6R6 79

/* Custom Defined Behaviors */
/ {

};

/* Automatically generated macro definitions */
/ {
    macros {

    };
};

/* Automatically generated behavior definitions */
/ {
    behaviors {
    
    };
};

/* Automatically generated combos definitions */


/* Automatically generated keymap */
/ {
    keymap {
        compatible = "zmk,keymap";


        layer_QWERTY {
            bindings = <
    &trans  &trans     &trans     &trans     &trans                                                                             &trans     &trans     &trans    &trans         &trans
 &kp EQUAL  &kp N1     &kp N2     &kp N3     &kp N4  &kp N5                                                          &kp N6     &kp N7     &kp N8     &kp N9    &kp N0      &kp MINUS
   &kp TAB   &kp Q      &kp W      &kp E      &kp R   &kp T                                                           &kp Y      &kp U      &kp I      &kp O     &kp P       &kp BSLH
 &kp LSHFT   &kp A      &kp S      &kp D      &kp F   &kp G                                                           &kp H      &kp J      &kp K      &kp L  &kp SEMI  &mt RSHFT SQT
    &trans   &kp Z      &kp X      &kp C      &kp V   &kp B     &trans    &trans    &trans   &trans  &trans  &trans   &kp N      &kp M  &kp COMMA    &kp DOT  &kp FSLH         &trans
 &kp LCTRL  &trans  &mkp RCLK  &mkp MCLK  &mkp LCLK          &kp SPACE  &kp LGUI  &kp LALT  &kp RET   &mo 2   &mo 1          &mkp LCLK  &mkp MCLK  &mkp RCLK    &trans         &trans
            >;
        };

        layer_symboles {
            bindings = <
 &magic LAYER_Magic 0       &none          &none       &none       &none                                                                               &none       &none         &none     &none   &none
                &none       &none          &none       &none       &none       &none                                                       &none       &none       &none         &none     &none   &none
            &kp GRAVE       &none          &none  &kp LS(N9)  &kp LS(N0)       &none                                                       &none       &none   &kp EQUAL         &none     &none   &none
               &trans    &kp FSLH  &kp LS(GRAVE)    &kp LBKT    &kp RBKT     &kp RET                                                    &kp BSPC     &kp SQT   &kp MINUS     &kp GRAVE  &kp BSLH  &trans
               &trans  &kp LS(N1)     &kp LS(N2)  &kp LS(N3)  &kp LS(N4)  &kp LS(N5)  &trans  &trans  &trans  &trans  &trans  &trans  &kp LS(N6)  &kp LS(N7)  &kp LS(N8)  &kp LS(FSLH)     &none  &trans
               &trans       &none          &none       &none       &none              &trans  &trans  &trans  &trans  &trans  &trans                   &none       &none         &none     &none  &trans
            >;
        };

        layer_Navigation {
            bindings = <
   &none   &none   &none   &none   &none                                                                           &kp C_MUTE     &kp C_VOL_DN  &kp C_VOL_UP              &none   &none
  &trans   &none   &none   &none   &none   &none                                                     &none              &none     &kp C_BRI_DN  &kp C_BRI_UP              &none   &none
 &kp ESC   &none  &kp N1  &kp N2  &kp N3   &none                                                     &none  &kp LS(LC(PG_UP))  &kp LS(LC(TAB))   &kp LC(TAB)  &kp LS(LC(PG_DN))   &none
  &trans  &kp N0  &kp N4  &kp N5  &kp N6   &none                                                  &kp LEFT           &kp DOWN           &kp UP     &kp RIGHT              &none  &trans
  &trans   &none  &kp N7  &kp N8  &kp N9   &none  &trans  &trans  &trans  &trans  &trans  &trans     &none              &none            &none         &none              &none  &trans
  &trans   &none   &none   &none   &none          &trans  &trans  &trans  &trans  &trans  &trans                        &none            &none         &none              &none  &trans
            >;
        };

        layer_Magic {
            bindings = <
  &bt BT_CLR            &none            &none            &none            &none                                                                                  &none   &none   &none   &none  &bt BT_CLR_ALL
       &none            &none            &none            &none            &none            &none                                                         &none   &none   &none   &none   &none           &none
       &none  &rgb_ug RGB_SPI  &rgb_ug RGB_SAI  &rgb_ug RGB_HUI  &rgb_ug RGB_BRI  &rgb_ug RGB_TOG                                                         &none   &none   &none   &none   &none           &none
 &bootloader  &rgb_ug RGB_SPD  &rgb_ug RGB_SAD  &rgb_ug RGB_HUD  &rgb_ug RGB_BRD  &rgb_ug RGB_EFF                                                         &none   &none   &none   &none   &none     &bootloader
  &sys_reset            &none            &none            &none            &none            &none   &bt_2   &bt_3         &none   &none   &none   &none   &none   &none   &none   &none   &none      &sys_reset
       &none            &none            &none            &none            &none                    &bt_0   &bt_1  &out OUT_USB   &none   &none   &none           &none   &none   &none   &none           &none
            >;
        };

    };
};

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions