Custom German Layout


I created my custom layout with some major changes, maybe it is an inspiration for the one or the other:

  • I had to move shift to it’s usual place, just could not get used to thumb shifting.
  • I removed Mousemovement plugin, eeprom settings etc from the firmware. I do not use it, so it does not eat up space and compile time
  • I have several Layers: Primary layer is a qwertz layer, but I want to learn XOY (neo based layout), which I also have as a dedicated layer. Then there is a GAME layer and the usual Function layer. But I just added a couple of macros there instead of the mouse part. Last but no least I use a SPECIAL layer for all those braces
  • switching to GAME or XOY Layer I use magic combos - FN+FN+Rightmost, lowest Key (shift in my layout) switches to GAME, FN+FN+Leftmost, lowest Key (Other shift) switches to XOY

One interesting feature: I have created a custom plugin, that makes it possible to have a different LED Effect on each layer. And, if you cycle through them using the LED key, it will be associated with that layer (until next reboot).

you can get it here:

Primary QWERTZ:

Special Layer for braces etc:


Function Layer:

Last but not least, GAME Layer:

I updated the code so that it will compile for Model100 also. Problem was, I use Wavepool-Effect for one of the Layers (GAME) and Wavepool is not working with Model100 anymore.

But you might replace it with any other LED-Effect.

There is a branch now for model100 and the master branch stays for model01

That can be fixed easily. Change the #ifdef ARDUINO_AVR_MODEL01 at the top of LED-Wavepool.h and LED-Wavepool.cpp to #if defined(ARDUINO_AVR_MODEL01) || defined(ARDUINO_keyboardio_model_100), and it should work.

I’ll open a PR to do just that in a moment.

hmm… i tried, and it did not compile then. Well, I removed the #ifdef, so it was slightly different :wink:

I just tried to compile my PR for Model100, and that compiled. Can’t test if it works, my Model100 is stuck at customs, but it compiles, so that’s at least halfway there!

1 Like

good to know, than it is something wrong here. Astonishingly it compiles without error for model01, but not for model100, with model100 I get:
error: 'WavepoolEffect' was not declared in this scope

I am lost - it won’t compile, when using Model100. It compiles fine (same code!) as model01

There is another error listed (there is so much output when compiling, I overlooked it):

error: size of array 'led_mode_buffer_' is not an integral constant-expression
  476 |       uint8_t LEDModeManager::led_mode_buffer_[max_led_mode_size];      __NL__ \

could that be related?

This is strange, after a second make clean compile it works - somthing was broken her. Thanks for the support!