Typing International or Eurkey layout on standard german systems

Hi,

my company uses german standard layout on all machines, but I’ve changed to Eurkey some time ago. Because it was driving me crazy to change the layout on every machine I log into, I made a layout that let’s me type in Eurkey by translating the layouts.
I’m not yet done with the complete layout, but the base and shift layers are done and i have implemented the parts of Eurkey, that I need to type with german special characters.

As a bonus i have integrated space cadet on the shift keys.



Keymap json:

If you want to try it, just paste the json into your own config.

2 Likes

Sorry I’m not following - what does this exactly accomplish? Does it help with umlauts? I struggle with õäöü letters. Best I’ve come up with 'til now has been macros triggered by mod+{expected button} for lower case, and as shift cannot be added to the mix for upper case, I trigger those via fn as opposed to mod prefix.

@layr Since you are already using macros for the Umlauts you could check the shift status with ifShift, couldn’t you?

1 Like

The keymap translates the German system layout to us international/eurkey. So the os is German, but the Keys are moved to other positions in the keymap.
The Umlaute are reachable via fn3+aou and s for ß.

1 Like

Thanks man, wasn’t aware of it!
Following works for writing ö, and capital version when shifted:

tapKeySeq CS-U
ifShift {
   // releaseKey leftShift   # TODO: needed or not?
   write 00d6
}
else {
   write 00f6
}
tapKey enter

Not sure whether releaseKey leftShift should be the first line in the ifShift{} block or not. Doesn’t seem to make any difference.

(sry u/FlauschiBunny for hijacking your thread)

1 Like

releaseKey releases keys (scancodes) only in the macro’s own state.

If you need to suppress the shift, then you need to use suppressMods, like suppressMods write 00d6. (For write it may not be needed - I am not sure, but it may be suppressing modifiers automatically.

1 Like

Of course if you only need one command in each part of the if, then you can omit all the braces and shorten your macro:

tapKeySeq CS-U
ifShift suppressMods write 00d6
else write 00f6
tapKey enter

I think that’s now quite readable and concise.

3 Likes