-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Add keyboard layout [Ru, Pl, Cz, Ua] for T-Deck and CardKB devices #8893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
… T-Deck keyboards add layout indicator on top right corner
… T-Deck keyboards add layout indicator on top right corner
41c6fcd to
3ef97f9
Compare
|
Thanks, this looks like a nice implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
|
I don't love that the character replacement logic is in cannedMessages. That module is already too much of a catch-all. |
|
Great point, I completely agree. cannedMessages is indeed turning into a module that does too much. The character replacement logic for keyboard layouts is a separate responsibility. My proposal: I'll move it out into a dedicated kbLayout.c/.h module, as you suggested. |
…meshtastic-firmware into feature/keyboard_layout # Conflicts: # src/modules/CannedMessageModule.cpp
|
Sorry for messy commit history |
Hey!
I've implemented the ability to change the keyboard layout for locales supported by Meshtastic fonts: RU, UA, PL, CZ.
It works on devices with CardKB and T-Desk, the keyboard shortcut for changing the layout is fn-L.
In addition to adding a layout change handler and a mapping table for various layouts, I've added code to support UTF-8 strings in the message input field.
I can't add support for other input devices, but I think this will be a good start for adding other layouts and expanding the supported input device types in different languages.
I only tested the firmware on devices with high resolutions (e-ink, T-Deck), but it should work well on OLED displays as well.
