New layout format and User data migration capability! #142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here I present version 2 of the keyboard method layout format of OBK version 2! 🎉
This layout format uses Zstandard compression algorithm for compressing the images and uses a custom variant of Base91 for decoding the binary bytes into textual format. Base91 is 6% more efficient than Base64 which we currently use. As a result, the layout files we distribute altogether have their sizes shrunken to 58% 🎉
With the new layout format, we now support system keyboard layout other than Qwerty(#36) without any hackery in the parser and with additional number keys. I have also added a heavy test for the parser which will prevent further typo bugs(#98) from happening.
I have also changed the names of two layouts:
This PR also adds User data migration capability to OBK. It also includes a converter for the new format. So the next release of OBK will be no longer a breaking version. 🎉