add validation infrastructure, fix "6" key bug in v1.3

- add keylayout XML parser (parse_keylayout.py) that extracts all key
  mappings, dead key compositions, modifier layers from .keylayout files
- add validation script (validate_layouts.py) that compares layouts against
  v1.3 reference with per-version exception support
- fix action id="6" outputting "p" instead of "6" in v1.3
- generate reference JSON for all 4 layout versions
- document known intentional differences: v1.2 (no ¬ dead key, § vs ẞ),
  v1.4 (ẞ on §/` caps, extra ¬ composition)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 17:06:48 +01:00
parent e16b92051d
commit 7084817dab
8 changed files with 9802 additions and 1 deletions

View File

@@ -1123,7 +1123,7 @@
<when state="dead: Ω" output="⁵"/>
</action>
<action id="6">
<when state="none" output="p"/>
<when state="none" output="6"/>
<when state="dead: ¬" output="¾"/>
<when state="dead: Ω" output="⁶"/>
</action>