Skip to content

Karabiner converter: support GokuRakuJoudo (Goku) EDN format import #212

@malpern

Description

@malpern

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

  1. Parse EDN directly — Read .edn files 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.

  2. 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.

  3. Both — Support EDN import with option to fall back to JSON generation.

Context

Priority

Post-MVP. Ship the Karabiner JSON converter first, then add Goku support as a follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions