jgosmann / Karabiner-Elements-Neo

Neo2 Layer 4/6 for macOS Sierra
The Unlicense
33 stars 5 forks source link

Cmd + ü / ö / ä (neo) sending Cmd + z / x / c #17

Closed neominik closed 7 years ago

neominik commented 7 years ago

When pressing said combinations in neo the qwerty-equivalent is sent. This makes it impossible to assign actions to these keys in editors / IDEs / whatever.

tjanson commented 7 years ago

This is probably the same underlying issue I mentioned in this comment, which is that combinations with keys from higher layers (and apparenty üöä) are interpreted very differently by different applications. E.g., IntelliJ IDEA, iTerm2, Keyboard Maestro, and macOS’s built-in shortcuts all “see” different keys.

Which program/IDE are referring to specifically?

jgosmann commented 7 years ago

I can't seem to reproduce the issue. At least for keyboard shortcuts in the system settings the correct keys strokes (Cmd+ü/ö/ä) are detected.

@neominik, can you name a specific applications where this happens for you? Which keyboard layout file are you using (from neo-layout.org or from jgosmann/neo2-layout-osx)?

@tjanson I don't think these problems are related. With the layer 3 shortcuts the problem is that mod3 is the same as alt/option. Thus, only either the layer 1 or layer 3 mapping can be used for shortcuts with mod3/alt/option. For a number of layer 4 keys shortcuts cannot work because these keys actually send a sequence of key presses and there is not a single key combination that the shortcut could be assigned too. Cmd+ü/ö/ä, however, is just using layer 1 without any of the “weirdness” of higher the higher levels.

tjanson commented 7 years ago

Hm, you are probably right, @jgosmann. The symptoms are exactly the same though: Like I said I get different results for various programs. Specifically I get what @neominik reported (Cmd+Z/X/C instead of umlauts) in IntelliJ IDEA.

jgosmann commented 7 years ago

I can indeed reproduce the issue in IntelliJ IDEA and I think it is neither an issue with Karabiner-Elements-Neo nor with the neo.keylayout. In fact, I can switch my keyboard layout to the German system layout and will not get ü/ö/ä on the corresponding keys but whatever key is in that place in the US keyboard layout. (It also happens without Cmd and just pressing the bare key.)

To me that seems to be a bug (or a feature?) of IntelliJ IDEA (and maybe other applications?). Apparently, they read the raw key code and don't respect the active keyboard layout.

neominik commented 7 years ago

I am using the layout file from neo-layout.org. The jgosmann/neo2-layout-osx caused problems for me earlier. I got this in various applications. IntelliJ IDEA, Sublime Text 3 and Light Table come to mind. The weird thing is that the other hardware-keys (b / q / r) which should produce z / x / c in neo actually work as they should instead of using the raw key code. Why would an application read the raw key for some keys and the key from the active layout for others?

jgosmann commented 7 years ago

I think that those applications might read the produced character and try to convert it back into a key code which fails for non-US characters, but I'm not really sure.

Also note that at least for IntelliJ IDEA it is known that there are issues with non-US keyboard layouts.

jgosmann commented 7 years ago

I'm closing this for know as to me this seems a problem with how those applications determine the shortcuts and I see no way of fixing this in Karabiner-Elements (or neo2-layout-osx). If anyone has an idea what to do about this, let me know.

I added a mention of this problem in the readme files.