Goku is a tool to let you manage your Karabiner configuration with ease.
Karbiner Elements uses JSON as it’s config file. This leads to thousands lines of JSON (sometimes over 20,000 lines). Which makes it really hard to edit the config file and iterate on your keymap.
Goku use the edn format to the rescue.
Below are two Karabiner configuration snippets that map caps lock to an escape key.
karabiner.json
karabiner.edn
In practice this means that you can see multiple Karabiner rules on you screen as you edit your config with Goku. Which speeds up the iteration speed significantly as you can create new rules as little as few characters.
brew install yqrashawn/goku/goku
Create a profile named “Goku” in Karabiner GUI tool.
Goku reads karabiner.edn
file which holds your Karabiner config. This file
should be placed inside `~/.config/` directory on your mac. If you use a dots
dir to hold your config files, you can symlink `karabiner.edn` and Goku will
pick up the changes too.
Goku provides two commands:
goku
: Will update karabiner.json once.
gokuw
: Will keep watching your karabiner.edn
and on saving, will update your
configuration.
Run command brew services start goku
to use it as a service (runs gokuw
in
background). When Goku is ran as service, the logs are kept inside
~~/Library/Logs/goku.log~.
Read through the Tutorial about how you can write the configuration in Goku.
If there’s any question or advice, just open an issue or join Karabiner Telegram group and ask your questions there.
- consumer_key printing_key and mouse_key don’t support special modifier i.e. :!Ca
- mouse key has no abbreviation keyword in main rules
Check CHANGELOG file.