Commit Graph

5 Commits

Author SHA1 Message Date
234b29391f update scripts to use src/ keylayouts, add build-pdf.sh wrapper 2026-03-05 14:16:58 +01:00
0e1d8c4a85 add layout PDF generation script, generate PDFs for all versions (closes #7)
- add scripts/generate_layout_pdf.py (requires fpdf2)
- generates ISO keyboard diagrams with Base, Shift, Option, Shift+Option
  layers per key, plus dead key composition tables
- output: docs/eurkey-{version}-layout.pdf for v1.2, v1.3, v1.4, v2.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 13:00:00 +01:00
9592b321b1 fix Greek dead key terminator (Ω→α), enable CapsLock language switch, fix parser key resolution
- change Greek dead key terminator from Ω to α in all layout versions,
  matching the official EurKEY spec (closes #11)
- change dead key state name from "dead: Ω" to "dead: α" in v1.2/v1.3
- enable TICapsLockLanguageSwitchCapable in build script (closes #8)
- fix parser to resolve all key codes from base keyMapSets, not just
  codes in explicit layout entry ranges
- add per-version exceptions for newly-discovered v1.2/v1.4 differences
- add Karabiner-Elements docs section, known issues section to README
- add Windows spec installers for reference
- regenerate all parsed JSON specs with fixed parser

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:59:46 +01:00
079ff0a872 add build, DMG creation scripts, CI/CD workflows
- build-bundle.sh: regenerates Info.plist with KLInfo entries for all 4
  layout versions, sets CalVer bundle version, validates plists
- create-dmg.sh: packages bundle into a DMG with drag-and-drop symlink
  to /Library/Keyboard Layouts/
- release.yml: GitHub Actions workflow that validates, builds, creates DMG,
  publishes GitHub Release on CalVer tag push
- validate.yml: CI validation on push/PR for layout and script changes
- Info.plist now declares all 4 layouts (was only v2.0)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:06:48 +01:00
7084817dab 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>
2026-03-03 17:06:48 +01:00