spiegel-keyman/core/src
Marc Durdin 2e38a50522
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
change(common): remove drafted font metadata from KMX+ format
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
..
kmx change(common): remove drafted font metadata from KMX+ format 2026-04-16 09:13:15 +02:00
ldml chore: Merge branch 'epic/embed-osk-in-kmx' into auto/A19S24-merge-master-into-embed-osk-in-kmx 2026-03-15 07:42:03 +01:00
mock feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
action.cpp chore(developer): ifdef variables only used in assertions 2024-11-28 10:12:28 +07:00
action.hpp fix(core): make km_core_state_get_actions() idempotent 2024-02-01 11:28:08 +07:00
actions_normalize.cpp fix(core): normalization segment should end on NFC boundary, not NFD 2026-01-28 14:32:25 +11:00
context.hpp feat(core): move more normalization logic into JS 2024-05-24 18:20:30 -05:00
context_helpers.cpp chore(core): km_core_cp -> km_core_cu 2024-05-02 17:39:15 -05:00
core_icu.cpp feat(core): move more normalization logic into JS 2024-05-24 18:20:30 -05:00
core_icu.h refactor(core): devolve regex to js for wasm 2024-06-05 16:53:43 -05:00
debug.hpp refactor(core): split context API from Core primary API 2024-01-17 14:44:25 +11:00
debuglog.cpp fix(core): handle backspace decomposition 2026-01-25 07:24:15 +11:00
debuglog.h fix(core): handle backspace decomposition 2026-01-25 07:24:15 +11:00
jsonpp.cpp chore(core): update core to C++17 fixes 2024-05-13 17:50:20 -05:00
jsonpp.hpp chore(core): update core to C++17 fixes 2024-05-13 17:50:20 -05:00
keyboard.cpp feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
keyboard.hpp feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
keyman_core.h chore(core): refactor to move most normalization calls into util_normalize.cpp 2024-05-23 14:47:38 -05:00
km_core_action_api.cpp fix(core): add an assert on code_points_to_delete 2024-03-27 23:25:43 -05:00
km_core_context_api.cpp feat(core): move more normalization logic into JS 2024-05-24 18:20:30 -05:00
km_core_debug_api.cpp refactor(core): split context API from Core primary API 2024-01-17 14:44:25 +11:00
km_core_keyboard_api.cpp chore(core): remove km_core_keyboard_load API 2024-12-04 13:38:07 +07:00
km_core_options_api.cpp chore(core): km_core_cp -> km_core_cu 2024-05-02 17:39:15 -05:00
km_core_processevent_api.cpp fix(core): update core to handle reset context 2024-04-17 10:31:33 -05:00
km_core_state_api.cpp chore(core): move API docs from help.keyman.com 2024-11-07 08:28:33 +07:00
km_core_state_context_set_if_needed.cpp chore(core): refactor to move most normalization calls into util_normalize.cpp 2024-05-23 14:47:38 -05:00
meson.build feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
option.cpp chore(core): km_core_cp -> km_core_cu 2024-05-02 17:39:15 -05:00
option.hpp refactor(core): split context API from Core primary API 2024-01-17 14:44:25 +11:00
path.hpp refactor(core): split context API from Core primary API 2024-01-17 14:44:25 +11:00
processor.hpp refactor(core): split context API from Core primary API 2024-01-17 14:44:25 +11:00
state.cpp chore: Update core/src/state.cpp 2024-02-07 12:29:45 +11:00
state.hpp fix(core): update core to handle reset context 2024-04-11 23:34:20 -05:00
util_normalize.cpp fix(core): normalization segment should end on NFC boundary, not NFD 2026-01-28 14:32:25 +11:00
util_normalize.hpp fix(core): normalization segment should end on NFC boundary, not NFD 2026-01-28 14:32:25 +11:00
util_normalize_table_generator.cpp chore(core): address review comments 2026-02-01 06:47:49 +11:00
util_regex.cpp feat(core): update util_regex per review comments 2024-06-14 08:55:15 -05:00
util_regex.hpp feat(core): devolve regex to JS 2024-06-07 18:11:20 -05:00
version.rc Update core/src/version.rc 2023-10-20 09:34:16 +02:00
vkey_to_contextreset.cpp Apply suggestions from code review 2024-04-24 08:22:41 -05:00
vkey_to_contextreset.hpp fix(core): update vkey_should_invalidate_context per comment 2024-04-25 08:58:47 -05:00