Commit graph

8 commits

Author SHA1 Message Date
Marc Durdin
3d65485ebd chore: Merge branch 'epic/web-core' into auto/A19S29-merge-master-into-web-core
Note: rewrote state_api.tests.cpp change to match new unit test pattern.
2026-05-22 11:32:24 +02:00
Marc Durdin
950dcf1d2b docs(developer): write up basic internal docs on kmc modules
Fixes: #13672
Test-bot: skip
Build-bot: skip
2026-05-20 14:19:16 +02:00
Marc Durdin
2e38a50522 change(common): remove drafted font metadata from KMX+ format
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This comes out of a design philosophy review on what we include when we
embed OSK data into KMX.

We will now avoid embedding font name into the OSK (and hence .kmx)
altogether, and leave that metadata to the packaging data. Reasons:

1. The font information is specified in the .kps, so we have to do a
   patchup on the .kmx during packaging if we want to embed the info
   into the OSK.

2. The referenced font must be supplied separately anyway (via .kmp,
   @font-face, or system supplied, etc), so including the font facename
   in the keyboard is not really all that helpful.

3. Philosophically, the font is really a presentation level factor
   (aside from displaymap considerations). Keeping it together with
   future theming and styling choices, rather than the key layout data,
   seems appropriate.

4. This makes fewer places where font data is referenced -- in fact, to
   just one place: in the .kps/.kmp for LDML keyboards, which is great.

This also simplifies some aspects of the embed-osk-in-kmx work, removing
the need to patch the .kmx after the build, and eliminates the smelly
kmx-plus-osk-token.ts file.

A corresponding change has been made to the design document referenced
in #14857.

Test-bot: skip
2026-04-16 09:13:15 +02:00
Marc Durdin
75847a389f
Apply suggestions from code review
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2025-11-21 10:48:11 +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
Steven R. Loomis
0a35181bed chore(developer): rename x: to compileContext:
Fixes: #14117
2025-06-26 15:58:43 -05:00
Steven R. Loomis
28ba904b37 chore(developer): rename ObjectWithMetadata to ObjectWithCompileContext
Fixes: #14117
2025-06-26 15:56:52 -05:00
Steven R. Loomis
4ce30a003e chore(developer): Document message (line number) discussion 2025-05-21 15:23:59 -05:00