-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
Add support for importing GokuRakuJoudo (Goku) EDN configs in addition to raw Karabiner JSON.
Why
Goku is a popular DSL that generates Karabiner JSON from a more concise EDN (Clojure data notation) format. Many power users write their configs in Goku rather than raw JSON. Supporting Goku import would capture this segment of the Karabiner community.
Approach Options
-
Parse EDN directly — Read
.ednfiles and convert to KeyPath rules. More complex but gives access to Goku's higher-level abstractions (profiles, templates, layers) which may produce better KeyPath rule structures. -
Convert via Goku → JSON → KeyPath — Use Goku to generate Karabiner JSON first, then run through the standard Karabiner converter. Simpler but loses Goku's structural intent.
-
Both — Support EDN import with option to fall back to JSON generation.
Context
- Goku repo: https://github.com/yqrashawn/GokuRakuJoudo
- Karabiner JSON converter: Karabiner JSON → Kanata config converter / visual diff tool #202
- Feature matrix:
docs/karabiner-converter-feature-matrix.md
Priority
Post-MVP. Ship the Karabiner JSON converter first, then add Goku support as a follow-up.