Keyboard define layout to use by os


I’m starting to go down the rabbit hole with the firmware and I’ve reached a conundrum. I’m learning colemak because I’ve been a querty finger jumper up until now, and I’ve decided its time to invest in learning to properly learn touch typing.

Now, if i define a colemak layer in the keyboard fw, it will require the os to have a specific querty layout set. If i set the os to use colemak layout, the keyboard fw has to be a querty one because the os will transform (for instance) the querty ‘h’ into the colemak ‘n’.

So, long story short, is there a way for the keyboard to set the os layout to something predefined so it works everywhere? Or what is the solution you normally use?

No, there is not, unfortunately.

I use a pretty standard US QWERTY layout on the host side, and rearranged the keys in my firmware to be in a layout I prefer (originally Dvorak, now something based off on it, and moving towards something different). This does have the downside that if I use any other keyboard, I revert to hunt-and-peck, and labels better be accurate, or I’ll have tons of typos. So I just don’t do that, and always use my own keyboard. Makes some meetings at work interesting, when I have to carry everything over, not just a thin laptop, but that’s a price I’m willing to pay.

1 Like

The big advantages of using the “standard” US QWERTY layout are that the keymap aliases for keycodes in your sketch (e.g. Key_A) will show what you actually get, and (if the other keyboards around you are US QWERTY) you won’t have to change any settings on computers when switching between your Kaleidoscope keyboard and “standard” keyboard(s).

1 Like

I’m is a ES QUERTY zone and it’s slightly different from US QUERTY (mainly symbols, iso vs ansi…), so i guess some keys will be different once a modifier is applied. Shift+8 is ( instead of *, shift+9 is) instead of ( and so on. I guess that can’t be canged by the fw, can it?

Might be easier to just set the os to colemak and be done with it.

If your other keyboards are not US QWERTY, that may indeed be easier. It’s certainly easier if you only need to do it once, and you don’t have any other modifications you want to make to the firmware. However, if you do want to make any customizations, it could easily end up being less trouble to change things on the firmware side — that way, when you get a new computer, reinstall the OS, or plug in to a different machine, everything will work as expected without having to change the OS keymap. And if you have more than one keyboard connected, both of them will work as expected simultaneously, even on operating systems that use a global keymap that affects all keyboards.

Changing the firmware is a much more permanent solution than configuring the OS keymap, but it does require more work up front.

1 Like

it would be sooooo much easier if the keyboard could send characters instead of events…