Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod Morphs without keep_mods applies modifier to the first press of the modded binding #83

Closed
zemackdaddy opened this issue Dec 23, 2022 · 18 comments

Comments

@zemackdaddy
Copy link

Here is a branch made directly from the v2.0 repo here.

In the most recent commit, you can see I added this behavior:

	pd3: prog_dvorak_rcurly_three_def {
		compatible = "zmk,behavior-mod-morph";
		label = "pd3";
		mods = <(MOD_LSFT|MOD_RSFT)>;
		#masked_mods = <(MOD_LSFT|MOD_RSFT)>;
		#binding-cells = <0>;
		bindings = <&kp RBRC>, <&kp N3>;
	};

and bound it to the 4th key (3) in the top left of the left half.

The output without shift is as expected: }

The Problem

The output when holding shift is not.
The first time 3 is pressed while holding shift: #
Subsequent presses while still holding the same modifier: 3

Only 3 should be output by this mod morph when holding shift.

It doesn't matter how long you hold shift before the first press of the key. It is always #. All further presses are 3s (until you let go of the shift).

I raised this in the zmk discord in the help-forum and bravekarma was kind enough to attempt reproduction on what they said was basically zmkfirmware/main. They were not able to duplicate. only a 3 is output while holding shift.

The suggestion is that this might be fixed if the refil/zmk/adv360-z3 was brought up to match zmkfirmware/main.

The mod morph should not pass the modifiers on unless keep_mods is specified.

Mod Morphs in general are working. I guess the theory is that something has been fixed since refil/main was forked.

@ReFil
Copy link
Collaborator

ReFil commented Dec 23, 2022

Will investigate, thanks for bringing to my attention

@eckig
Copy link

eckig commented Dec 29, 2022

I have a similar problem with this mod morph in my config:

rkp_n7: right_parenthesis_kp_n7 {
        compatible = "zmk,behavior-mod-morph";
        label = "right_parenthesis_kp_n7";
        #binding-cells = <0>;
        bindings = <&kp DE_RPRN>, <&kp N7>;
        mods = <(MOD_LSFT|MOD_RSFT)>;
    };

Normal press ()) works fine but with Shift (7) it only works part of the time printing nothing.
When I started using this config, the feature was still a PR but working fine. Only updating to the current V2.0 branch "broke" this recently.

@ReFil
Copy link
Collaborator

ReFil commented Jan 12, 2023

The base zmk branch has just been updated with the latest changes from zmk main, are you ok to rebuild fw and try again?

@eckig
Copy link

eckig commented Jan 12, 2023

I just rerun the workflow file and flashed both sides (had to do the reset first) - the issue is still present.

@zemackdaddy
Copy link
Author

I will test hopefully later today tomorrow and let you know (I'm OP).

@zemackdaddy
Copy link
Author

It still doesn't work for me.

I built locally with Docker and was careful to --no-cache.

@ReFil
Copy link
Collaborator

ReFil commented Jan 14, 2023

did the build process you used rerun west update? nothing in the branch modifies those behaviours so now it's updated i'm not sure why there would be issues

@eckig
Copy link

eckig commented Jan 15, 2023

So I tested using simple buttons like &kp KP_N7 and guess what: Does not work either - looks like my key is dead and I need to contact kinesis.

@zemackdaddy
Copy link
Author

@ReFil I used this branch.

It has two changes past the upstream Kinesis branch:

  • the mod morph in the keymap
  • Makefile uses a --no-cache

@KinesisCorporation
Copy link
Owner

So I tested using simple buttons like &kp KP_N7 and guess what: Does not work either - looks like my key is dead and I need to contact kinesis.

It's certainly possible you have a bad key switch. Which switch are we talking about? Before we issue an RMA though we'd want you to install a copy of the factory default firmware which you can download here:

https://kinesis-ergo.com/support/kb360pro/#firmware-updates

@eckig
Copy link

eckig commented Jan 16, 2023

It's certainly possible you have a bad key switch. Which switch are we talking about? Before we issue an RMA though we'd want you to install a copy of the factory default firmware which you can download here:

https://kinesis-ergo.com/support/kb360pro/#firmware-updates

Tried that. The settings have been applied, but the Key does not output 7 on key press.

@KinesisCorporation
Copy link
Owner

Roger that. Please submit a ticket and we'll issue an RMA and then replace the switch under warranty. Sorry for the inconvenience.

https://kinesis-ergo.com/support/contact-a-technician/
https://kinesis-ergo.com/support/warranty/

@yanshay
Copy link

yanshay commented Feb 26, 2023

I have a similar issue if not exactly the same. Please see zmkfirmware/zmk/issues/1685. Seems like it is specific to Kinesis Pro and it really bugs me.
Any ideas what to do about it?

@yanshay
Copy link

yanshay commented Mar 4, 2023

@zemackdaddy I noticed that in my case this happens whem karabiner elements is processing keyboard events (even if nothing to do on karabiner side). Once I disabled karabiner processing of the Kinesis keyboard this got resolve.
I wonder, are you using karabiner on Mac?

@zemackdaddy
Copy link
Author

@zemackdaddy I noticed that in my case this happens whem karabiner elements is processing keyboard events (even if nothing to do on karabiner side). Once I disabled karabiner processing of the Kinesis keyboard this got resolve.
I wonder, are you using karabiner on Mac?

@ReFil the problem occurs on Mac with and without Karabiner and also on Windows.

@007kevin
Copy link

my mod-morph behavior is also sending the mod to the morphed key. investigation shows this issue is fixed but the latest doesn't seem to be included in the Adv360 builds. Is it possible to update the zmk?

@ReFil
Copy link
Collaborator

ReFil commented Apr 26, 2023

ReFil/zmk@ef2e6e9

That fix is merged into the branch the config repo builds from. I'm not sure why the fix isn't working on this application

@zemackdaddy
Copy link
Author

This is now working for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants