Skip to content

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

@siadat

Description

@siadat

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

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