pqrs-org / Karabiner-Elements

Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.
https://pqrs.org/osx/karabiner/
The Unlicense
18.51k stars 832 forks source link

Karabiner breaks zmk keyboard events #3420

Open yanshay opened 1 year ago

yanshay commented 1 year ago

I'm using a zmk based keyboard and and use a mod-morph behavior to turn shift+key1 to another key2. I also have karabiner elements installed on my Mac. When in karabiner "Modify events" is toggled off for the keyboard it functions properly. When in karabiner "Modify events" is toggled on for the keyboard on the first press I get the shifted version of key2. I have no (visible) configuration in karabiner (I disabled all simple and complex modifications). What could cause that change in behavior?

These are the events recorded by karabiner eventviewer: It does appear as if the events are for the shifted key2 (in this case tab) but as said, without karabiner the system treats this as tab while with karabiner as shifted tab.

[ { "type": "down", "name": {"key_code":"left_shift"}, "usagePage": "7 (0x0007)", "usage": "225 (0x00e1)", "misc": "flags left_shift" }, { "type": "down", "name": {"key_code":"tab"}, "usagePage": "7 (0x0007)", "usage": "43 (0x002b)", "misc": "flags left_shift" }, { "type": "up", "name": {"key_code":"left_shift"}, "usagePage": "7 (0x0007)", "usage": "225 (0x00e1)", "misc": "" }, { "type": "up", "name": {"key_code":"tab"}, "usagePage": "7 (0x0007)", "usage": "43 (0x002b)", "misc": "" }, ]

SethMilliken commented 1 year ago

Just ran into this same issue with some "reverse shift" mod-morph behaviors in ZMK. Works fine without Karabiner; with Karabiner modifying events it incorrectly applies Shift to the first mod-morph keystroke. No idea what is happening here.

sommerper commented 2 weeks ago

I have the problem that when I roll from TILDE to SLASH it will actually output ~? . Doing the same on Linux will output ~/. I'm guessing it because TILDE is a shifted character and the shift is not disabled before SLASH is typed.

It's a shame because it totally breaks my fine-tuned layout :(