What does HackerNews think of GokuRakuJoudo?

config karabiner with ease

Language: Clojure

#50 in macOS
On mac I use goku[1] to define custom key bindings for karabiner elements. The ux feels much better than autohotkey, and I wish I had something similar on linux or windows.

[1]https://github.com/yqrashawn/GokuRakuJoudo

Karabiner has already been mentioned here but I'll add that goku (https://github.com/yqrashawn/GokuRakuJoudo) is THE way to setup Karabiner and it can be hard to overcome the extremely verbose and unergonomic default json config of Karabiner otherwise. Goku also makes it trivial to add shortcuts which are activated by quickly pressing one key while another is held. I use this for the kind of launch mode described in the OP. eg. w + e = editor (Intellij), w + r = chrome, w + f = firefox.. The drawback to these shortcuts is that they can unintentionally be activated when regularly typing since we don't always release a key before pressing the next. That's only happened seldomly for me though since "w" isn't a frequently used letter and I've set the shortcut activation window pretty low so the w + key has to be pressed essentially immediately after w.

Similarly, I use q + w for previous tab, q + e for next tab, and s+d to open the clipboard history from Alfred

Karabiner does the actual remapping.

https://karabiner-elements.pqrs.org/

and

https://github.com/yqrashawn/GokuRakuJoudo

lets you write your keymappings in a text editor and translate it into the weird XML/JSON syntax so you don't have to use the GUI editor.

If you're using Karabiner, I HIGHLY recommend putting the time in to learn how to use Goku[1]. I initially found it when trying to find an easier way to express the extremely verbose Karabiner config json but was turned off by the unfamiliar clojure-like EDN data format and the somewhat lacking documentation. A couple years later I had the right combination of free time and frustration from managing my Karabiner config that I actually took the time to setup Goku. I've found it not only drastically simplified the setup I already had, but made it so much easier to extend it and really take advantage of Karabiner.

It mostly provides more convenient syntax for what you do in Karabiner, but it also provides new abstractions that it converts into the appropriate rules. "simlayers" for example are keyboard layers entered by pressing the trigger key and quickly pressing a layer key within a short timeout window. I've used this to set shortcuts like w+e to open IntelliJ, w+r to open chrome, s+d to open Alfred's clipboard history, etc.. Caveat being that there's a slight delay on your simlayer trigger keys entering their actual character since the layer timeout must be hit before the default keydown behavior of inserting a character is used. Also it's common to occasionally press a second key before releasing a first key while just typing naturally, so best to avoid using keys that you often roll into others while typing as trigger keys..

[1] https://github.com/yqrashawn/GokuRakuJoudo