sunaku / glove80-keymaps

"Glorious Engrammer" keymap for Glove80 keyboard
https://sunaku.github.io/moergo-glove80-keyboard.html#layers
314 stars 101 forks source link

German upper umlaut not working #5

Closed frankbenoit closed 6 months ago

frankbenoit commented 7 months ago

Hi

on windows, for the world layer, the diaeresis symbol are not completely working.

a, e, i, o, u in lower case, all working in upper case only Ï, Ë are working. Ä, Ö, Ü are not generating output for me.

Is this a bug in the keymap or something wrong in my setup?

Frank

sunaku commented 7 months ago

Oh interesting, I wonder if this is caused by the native Alt-keycodes in the "localizing" section of the world.yaml file. 🤔 We can try commenting out those characters and rebuilding -- or better yet, type the Alt-keycodes manually in Windows to check if they produce the correct characters.

sunaku commented 7 months ago

I was able to reproduce the issue now on Windows 10 :+1: and it appears to be a matter of timing: I could manually input the ALT+0196 sequence (tapping each numpad digit slowly) to produce Ä successfully, but the same thing doesn't work when executed (very quickly) from the World layer's ZMK macro. :thinking:

sunaku commented 7 months ago

I was wrong: it isn't a timing issue but rather a modifier stacking issue on nested mod-morphs. As a workaround, I've rebuilt this keymap without the OS-native localizing section for you:

Please try this out and let me know if it fixes the issue for you (using WinCompose I assume?).

stefango79 commented 6 months ago

Awesome work. Here's what I had to do to make it work for üÜäÄöÖ on Windows 10 (nothing major, but may help others):

I wanted to help here as I had the same issue in the beginning. I ended up using EN US International input which gives me the AltGr combos. Have a look here: https://de.wikipedia.org/wiki/Tastaturbelegung_US-International

frankbenoit commented 6 months ago

Hi sorry for the late reply...

yes I have WinCompose running

@sunaku yes, with the fix the upper umlauts are working on windows for me.

Is the "sharp S" ß , missing? Essential in German.

The key with the dollar, the euro variant works, but the other variations for pound+yen+.. are not working for me.

The world layer activation key is hard for me to type because it is mechanically not meant for the thumb, especially then in combination with the lctl and shift. My solution - as a 80% english, 20% german typer - to have alt-gr combos with the support of wincompose

<Multi_key> <a> : "ä"
<Multi_key> <A> : "Ä"
...
<Multi_key> <s> : "ß"

with those I am able to access German letters on the base layer. E.g. hold 'w' (engrammer alt-gr) plus stroke the 'a' gives the 'ä'.

Repeated typing is not working this way, the alt-gr must be repeated before each such combination. By that I mean, I cannot hold the 'w' then press 'a' several times. The output is then "äaaa", but should ideally be "ääää". (this just to note, not an important issue at all)

@stefango79 the international comes with the drawback of extra strokes for single/double quotes.

sunaku commented 6 months ago

I've been trying different ideas to solve issue (caused by the presence of the Ctrl key) but nothing has been completely successful so far. :thinking: This may take some time, hang in there!

The World layer is more like a proof of concept that I've put together to demonstrate a possible arrangement of international characters, so you needn't be constrained by it for actual usage. You can take any of the ZMK macros from the World layer and put them on any other layer you wish, including the base layer. Moreover, you can take the underlying forms:

Any of those ZMK macros can be assigned directly to any key on any layer in the Glove80 Layout Editor. For example, if you were only interested in typing ä and Ä, you could simply change the A key on the World layer from &world_a_base to &world_a_diaeresis, or even bring it up to your base layer.

sunaku commented 6 months ago

I've fixed the problem of Ctrl interfering with Windows Alt-keycodes in commit b97c44aae0d05ba929731043f36bf4a260210c6e, but this has introduced an additional 300ms wait before the Alt-keycode ZMK macro can be executed. Please try this snapshot and let me know how it fares for you:

Per my observations, WinCompose is far more performant and reliable than Windows Alt-keycodes so I would encourage you to try commenting out the #define WORLD_USE_COMPOSE setting so that WinCompose is triggered by Unicode macros instead. :trophy:

sunaku commented 6 months ago

I've finally solved this nested mod-morph problem with another tip from @urob, which I didn't understand at first :sweat_smile: but ended up arriving at the same :star_struck: after working out the mechanics: a mod-morph likes to reuse incoming mods, so when I have a Linux Compose sequence (using RALT) being invoked with an incoming RALT, I need to preserve it (and mask out everything else). :police_officer:

@frankbenoit - please try the following snapshot on Windows for the ä/Ä key on World layer.

sunaku commented 6 months ago

Completely fixed as of commit 498d22b08f3f3dd678515f3f72f085fd201374be.