spiegel-keyman/resources/standards-data/keylayout
Sabine 461fdd86c4 feat(developer): replace all any-datatypes
add checkForCorrespondingElements() to validate()
min/maxOccurs added in keylayout.xsd
edited keylayout.dtd
(possible remaining squiggle lines will be addressed in PR#15860
2026-04-28 19:27:21 +02:00
..
dtd feat(developer): replace all any-datatypes 2026-04-28 19:27:21 +02:00
create_keylayout_schema.sh chore(developer): update kmc-convert create_keylayout_schema.sh with new builder-basic.inc.sh 2025-08-29 09:54:33 +02:00
keylayout.schema.json feat(developer): 2026-04-27 18:12:34 +02:00
readme.md feat(developer): rework createKmnModifier(), checkIfCapsIsUsed() and adapt tests; edit test of of readme.md/keylayout-xml.ts 2026-03-16 19:50:04 +01:00

Keylayout

A keylayout file is a configuration file used macOS to define custom keyboard mappings, mapping physical key presses to specific characters or Unicode symbols. These XML-based files, created with Ukelele, allow users to create custom layouts for different languages or special haracters, such as mapping Option + Key combinations. With kmc-convert we can convert these keylayout files to .kmn files which can be used in Keyman keyboards. For validating a .keylayout file a keylayout.schema.json is needed.

This is to get a keylayout.schema.json:

  • We first need to have a .XSD file created from a .keylayout file (which is an xml-file type ) e.g. resources\standards-data\keylayout\dtd\keylayout.xsd

  • Then we need to run ./create_keylayout_schema.sh to obtain a .schema.json file e.g resources\standards-data\keylayout\create_keylayout_schema.sh

  • Then we need to run build.sh configure of common/web/types/ which will create a schema.validate.mjs file e.g. common/web/types/build.sh configure

  • The .mjs can then be used via SchemaValidators to validate keylayout files e.g. SchemaValidators.default.keylayout(source)