Skip to content

Tracking: 100% Karabiner conversion fidelity roadmap #213

@malpern

Description

@malpern

Summary

Tracking issue for achieving 100% fidelity Karabiner → KeyPath conversion. This encompasses three categories of work:

Category 1: KeyPath UI Gaps (Kanata supports, needs UI)

These features can be converted to working Kanata .kbd config today, but users can't edit them visually in KeyPath yet.

Feature Existing Issue Karabiner Equivalent
Mouse click output #181 pointing_button
Mouse cursor movement #181 mouse_key
One-shot modifiers (standalone) #179, #113 sticky_modifier
Unicode character output #183 unicode output
Global key overrides #180 Modifier combo remapping
Per-keyboard device targeting #203, #63 device_if / device_unless
Movemouse speed adjustment #195 mouse_key.speed_multiplier

Converter impact: Once these ship, the converter can produce Tier 1 (editable) rules instead of Tier 2 (raw Kanata passthrough) for these features.

Category 2: Kanata Gaps (not in Kanata core)

These features exist in Karabiner but have no equivalent in Kanata. They cannot be converted at all currently.

Feature Impact Possible Path Forward
Mouse axis manipulation (mouse_basic: flip/swap/discard) Very niche Upstream Kanata feature request
Mouse-to-scroll (mouse_motion_to_scroll) Niche Upstream Kanata feature request
Input source switching (select_input_source) Niche (JIS/multi-lang users) InputSourceDetector infra exists; could build TCP bridge
Expression-based conditions (expression_if) Very niche Kanata switch with defvar can approximate some cases
event_changed_if Very niche No clear path
Mouse button input interception (macOS) Niche macOS kernel limitation — not solvable in userspace

Category 3: Converter Intelligence

Feature Issue
AI-assisted complex rule conversion Created separately
GokuRakuJoudo EDN format import Created separately

Current State

  • Feature matrix: docs/karabiner-converter-feature-matrix.md
  • MVP converter (Tier 1 deterministic): Karabiner JSON → Kanata config converter / visual diff tool #202
  • Estimated MVP fidelity: ~75-80% of rules editable in KeyPath, ~95% produce working Kanata config
  • Target: 100% of common Karabiner patterns convertible with full KeyPath editability

Definition of Done

Every Karabiner feature in Tiers 1 and 2 of the feature matrix produces a working, KeyPath-editable rule. Tier 3 (unconvertible) features are clearly documented with explanations.

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