Plug N Play firmware for US QWERTY layout on regional layouts (Croatian) #7
kljupko
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey irfanjmdn! 👋
First, let me thank you and the others for going through the work of providing this firmware. It really helped me.
Inspired by what you have done, I made something that circumvents a problem that I and many others might have.
❓ The Problem:
Since the PCs in my region use the Croatian QWERTZ layout (or the Yugoslav one, to be more historically accurate), the stock keyboard (US QWERTY) shows incorrect characters. For instance, the QWERTY layout uses
Shift+2for@, while the Croatian QWERTZ usesAltGr+V.Furthermore, many of the punctuation keys and brackets are replaced with Croatian characters like
Š,Đ,Ž,Č, andĆ.If I want to enter a special symbol like
@, chances are that it is not where the keyboard says it is... meaning I need to try out keys at random, or go into system settings and change the layout to US QWERTY.But then I have no idea where the
Š,Đ,Ž,Č, andĆcharacters are...Since the layouts differ not only in key placements on the base layer, but also the shift layer, it is not possible to simply include a keymap from
qmk_firmware/keymap_extras/likekeymap_croatian.hand have it work out of the box. Because the shift layer is different, the firmware needs to intercept certain keypresses and send different ones.I assume that the same is true for other regions and languages.
🔧 The Workaround:
Because of this, I made a custom keymap and firmware which intercepts US QWERTY keypresses and sends the expected Croatian QWERTZ keypress instead, using a custom
layoutmap_us_to_hr.hfile. For example, the user inputsShift+2for@, but the firmware sendsAltGr+Vto the PC, which then interprets it as@due to its Croatian QWERTZ layout.This means that the keyboard acts as a Plug N Play US QWERTY keyboard on Croatian PCs, removing the need to change layouts in the PCs settings.
If one needs to use the keyboard without the key interception, they can simply switch to the non Plug N Play layer using
FN+ pressing therotary encoder.🤝 Expanding to other Regions and Layouts
The code in my repo is somewhat well-commented, so it should be relatively simple for anyone with a bit of coding knowledge to use it and create a keymap for their own language and region. Hopefully, this can help someone else who wishes to use a Plug N Play QWERTY keyboard on a regional layout PC.
Furthermore, the keyboard may support multiple regions via the use of layers.
Currently, only the RK R65 Wireless ANSI version is supported (as it is based on your firmware), but applying my approach to other QMK keyboards should be fairly simple.
My repo is open to anyone who wishes to use it as a baseline for their own remapping project.
Please check it out at: https://github.com/kljupko/r65-plugnplay-hr
Comments and suggestions are welcome!
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions