Commit graph

24 commits

Author SHA1 Message Date
Marc Durdin
f57c3d56c8 chore(developer): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-04-16 09:51:18 +02:00
Marc Durdin
401c0db352 feat(developer): add kmap support to KMX+ kvk and keyman-touch-layout
Add mappings for key to vkey + mod for .kvk and .keyman-touch-layout,
and clarify the key identifiers for .keyman-touch-layout within KMX+
format.

Update unit test fixture khmer_angkor.keyman_touch_layout to remove
dependency on .kmn (T_xxxx_yyyy -> U_xxxx_yyyy), as the relevant
VKDictionary will not be present, because the corresponding .kmn is not
compiled for the unit tests where the fixture is used.

Test-bot: skip
2026-04-16 09:22:13 +02:00
Marc Durdin
aa61b08473 feat(developer): embed touch layout and kvk into kmx
Add support for embedding .keyman-touch-layout into .kmx and complete
support and tests for embedding .kvk. Fixup a number of related
functions.

Add special-key-caps.ts to developer-utils -- in future this will become
the primary source for developer for these key caps, but this cannot be
done until Developer Server and Touch Layout Editor are updated with
Typescript in client code.
2026-03-26 14:45:46 +01:00
Marc Durdin
bd330e4367 feat(common): address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: ermshiperete@users.noreply.github.com
Co-authored-by: srl295@gmail.com
2026-03-23 11:19:42 +01:00
Marc Durdin
f11803651d refactor(developer): pass extra data from kmcmplib and move helpers for embed
Move some modifier key conversion utilities to a shared unit and also
add touchLayoutFilename and targetVersion to the kmcmplib extra data,
in preparation for generating and embedding OSK data.

Test-bot: skip
2025-11-20 10:47:55 +01:00
Marc Durdin
a53a1593ec feat(common): add v19 sections to KMX+ in Core and Developer
The disp and layr sections have new v19 layouts, to support the Keyman
OSK requirements for epic/embed-osk-in-kmx. This supports writing the
new versions of these sections in Developer and loading them into Core,
doing transformations where necessary so that Core always works with v19
structures after load.

This does not implement the transformations required to support the OSK
APIs; that will be implemented in a follow-up PR. Nor is support for
writing the OSK data from source .kvks and .keyman-touch-layout
supported; this is just the scaffolding for supporting the structures in
the KMX+ data.

Test-bot: skip
2025-11-18 13:55:01 +01:00
Marc Durdin
fc0ff90684 refactor(developer): rename layr.lists to layr.forms
The name `form` better represents the semantic meaning of the
structure, and reduces confusion with the `list` section and other uses
of `list` in KMX+.

Test-bot: skip
2025-11-12 11:29:58 +01:00
Marc Durdin
49846fea2d feat(common): add KF_KMXPLUSOSK and VERSION_190 to kmx_file.h
Add version 19.0 flags and metadata relating to embed-osk-in-kmx to
kmx_file.h and corresponding headers for other languages.

Test-bot: skip
2025-09-30 14:51:40 +02:00
Marc Durdin
a52437c407 chore: Merge branch 'master' into chore/b18s4-merge-beta-to-master 2025-03-29 05:38:08 +07:00
Eberhard Beilharz
04eeba2fb5
docs(common): add link to schemas
Related-to: #13453
2025-03-17 12:09:17 +01:00
Steven R. Loomis
ae13b11ea4 feat(docs): update docs on kmxplus
- reinstate 'most or all sections' note
- reflow lines

Fixes: #9446
2025-03-14 15:40:35 -05:00
Steven R. Loomis
f1b3555114 feat(core,docs): improve kmxplus validation
- improve how validation works - a missing section does not mean an invalid section. distingush these.
- propagate errors for invalid sections
- update documentation of required sections

Fixes: #9446
2025-03-14 15:37:23 -05:00
Marc Durdin
ed08d0f728 docs(core): add note on data alignment 2025-03-10 05:15:48 +07:00
Eberhard Beilharz
dd43935a13
docs: clarify that sections in KMX file might not be aligned
See: #12844
2025-01-06 16:09:15 +01:00
Marc Durdin
8e3b6b4a54
Update docs/file-formats/kmx-plus-file-format.md
Co-authored-by: Steven R. Loomis <srl295@gmail.com>
2024-09-28 05:57:04 +02:00
DavidLRowe
fa0f2ea109
Update kmx-plus-file-format.md 2024-09-26 18:03:47 -08:00
Marc Durdin
0731c7b3cb fix(common): correct offsets in KMX+ spec
Cherry-picked-from: #12305
2024-09-03 06:02:20 +07:00
Eberhard Beilharz
1ac311651e
Merge pull request #12303 from keymanapp/docs/core/format
docs(core): improve formatting of KMX+ doc
2024-08-29 16:49:45 +07:00
Eberhard Beilharz
2a6e9507ee
docs(core): improve formatting of KMX+ doc 2024-08-28 14:30:16 +07:00
Eberhard Beilharz
0aec7237c4
docs(core): fix a typo in the KMX+ doc 2024-08-28 14:29:19 +07:00
Marc Durdin
cd901a7f6d docs: update .kmx documentation around bitmaps, modifier state
Addresses: keymanapp/keyman#12163#issuecomment-2287675497
2024-08-14 13:45:14 +02:00
Marc Durdin
9a826879a1 docs: explanatory tweaks 2024-08-13 11:32:55 +08:00
Marc Durdin
419aa4a655 docs: formatting 2024-08-12 17:09:34 +07:00
Marc Durdin
859c88a6de docs: add .kmx specification
Fixes: #11407
2024-08-12 17:04:24 +07:00