spiegel-keyman/core
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
..
docs docs(core): add keyhandling doc 2026-02-25 19:31:00 +01:00
include change(common): remove drafted font metadata from KMX+ format 2026-04-16 09:13:15 +02:00
src change(common): remove drafted font metadata from KMX+ format 2026-04-16 09:13:15 +02:00
subprojects feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
tests 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
tools maint(core): verify that keyman_core_ldml.h is in sync 2025-12-01 17:11:57 +01:00
.build-builder chore(core): add core/.build-builder as CI signal 2022-09-12 10:06:29 +10:00
.gitignore chore(core): split flags into standard.meson.build 2023-03-09 11:34:54 +07:00
build.bat Merge pull request #15353 from keymanapp/maint/win/15065-arm64-core-test 2025-12-16 18:49:57 +01:00
build.sh chore(windows): Merge branch 'epic/win-arm' into feat/windows/11905/keymanx64-keymanarm64 2025-11-21 18:36:13 +10:00
commands.inc.sh feat(windows): handle arm64 complier environment 2025-10-28 16:40:42 +10:00
CORE_API_VERSION.md chre(linux): bump libkeymancore version 2024-05-07 08:55:48 -05:00
cross-arm64.build feat(windows): add arm64 to wxs and core build 2025-10-14 16:00:40 +10:00
cross-mac-arm64.build fix(core): set mac build version for meson cli build to 10.13 2024-08-19 10:22:10 -05:00
cross-mac-x86_64.build fix(core): set mac build version for meson cli build to 10.13 2024-08-19 10:22:10 -05:00
cross-x64.build feat(windows): add arm64 to wxs and core build 2025-10-14 16:00:40 +10:00
meson.build maint(common): use cpp_std=c++17 in meson project default_options 2025-08-01 10:23:57 +10:00
meson_options.txt chore(core): cleanup meson build 2023-02-21 12:12:28 +07:00
README.md feat(core): seed Keyman Core normalization 2024-01-16 06:21:38 +07:00
wasm.build.linux.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.build.mac.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.build.win.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.defs.build chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00

Keyman Core

Version 1.0.0 of libkeymancore released with Keyman 17.0