jasonrudolph / keyboard

⌨ Toward a more useful keyboard
MIT License
2.08k stars 211 forks source link

Suggestions : SuperDuper mode with pure Karabiner-elements #60

Closed narze closed 4 years ago

narze commented 4 years ago

I would like to suggest using only Karabiner-elements for activating SuperDuper mode.

First of all, I am a big fan of this mode (Since the old karabiner with xml config). I have tried your current solution with Hammerspoon too (1-2 years back), but it does not work quite well for me. So I have switched out to the hardware solution with QMK

Recently I have come back to Karabiner-elements again and found Goku which compiles to KE json file, and SuperDuper mode is way easier to do, modify, and fast compare to software layer like Hammerspoon. The only downside I found is there will be no HUD display on the screen.

I believe that my solution will solve most of the issues eg. #40, #53, and #59 since it is on Karabiner-elements only.

This is my Goku config file https://github.com/narze/laptop/blob/master/etc/karabiner.edn#L45

which compile into this big JSON file, see the line 666 and below https://gist.github.com/narze/a464ed35b37349ca7a572a6b1b5f6ea6#file-karabiner-json-L666

You can extract only superduper mode from the json and try it.

narze commented 4 years ago

I accidentally pressed enter while test typing the title, sorry for that 😂

jasonrudolph commented 4 years ago

Thanks for the suggestion, @narze.

I implemented (S)uper(D)uper mode in Hammerspoon back when macOS Sierra came out and 1) it didn't support the old Karabiner app, and 2) Karabiner Elements didn't yet support complex configurations like (S)uper(D)uper mode. /xref https://github.com/jasonrudolph/keyboard/pull/10

Now that Karabiner Elements is capable of supporting complex configurations, I'm open to replacing the Hammerspoon implementation with a Karabiner Elements implementation.

I've added the "help wanted" label to this issue. If someone is interested in submitting a pull request for this change, I'll be happy to review it.

narze commented 4 years ago

@jasonrudolph I can do that for you. Should it be included in karabiner.json or better as a separate json file?