By design, kmp keyboards will unzip into /packages/packageID folders.
1. Moving default eurolatin2 keyboard assets
2. Move old keyboards to new packages structure
* Fix accessing AltGr shift layer
* Fix AltGr OSK layer to display as "Alt Ctrl"
* Fix how Unicode control characters are filtered out, so U_00A0 can be displayed
A tchad keyboard has a diacritic rule that converts `=` (U_003D) into a combining macron (U_0304).
A longpress on `»` (U_00BB) was inadvertently triggering the diacritic rule, and outputting the macron.
The longpress code in KMEA and KMW needs to be refactored so they dont confuse key text (U_00BB is decimal 187) with underlying keyCodes (`=` is keyCode 187).
- fix KMW executePopupKey so key code is dictionary lookup instead of parsing the keyID.
- clean up JS call to executePopupKey since it only uses the keyID
Currently on the touch layout, longpress for K_SPACE causes the app to crash because it is attempting to parse `K_SPACE` as an int for generating the longpress text.
- Clean up when key text is empty how it is parsed from Id
-Change Unicode hex string delimiter from `,0x` to `\\u` which makes it easier to read `executePopupKey()` in the logs.
This is follow-on to #300 for adding chirality modifiers to KMEA.
Add support for L/R Ctrl, Alt, caps lock, num lock, and scroll lock for external keyboard
- temporarily adding test chriality.js keyboard
* Fixes#107 - move __BUILD__ and dfltLayout variables into tavultesoft object
* Cherry-pick fix for error from attachment api rework #114
* Fixup missing __BUILD__ reference
* Update header version number
* Fixup broken getDefaultKeyObject() call so we can release 2.0
* Fixes#118 - longpress menu sometimes missing base key on phone devices (#134)
* Add note to build scripts to remind devs to make changes to both scripts