This is a configuration file for GokuRakuJoudo which in turn generates a Karabiner profile.
Some things rely upon the fact that the Colemak layout (and its corresponding layer) is used. Single press mod keys are used as "power key combos" and a trigger things like toggling reader mode in Safari, switching between editor and terminal in VSCode or sending the tmux prefix in Kitty, the fast, lightweight, terminal emulator.
Karabiner is a powerful and stable keyboard customizer for macOS. Goku is a tool to let you manage your Karabiner configuration with ease, since Karabiner uses JSON for its very verbose, complex config file, while Goku uses the "optimized for typing" edn format.
- press and release
LCmd
to switch to previously used app - press and release
RCmd
and, depending on the current app get this:- toggle between terminal and editor in VSCode
- toggle reading mode in Safari
- send tmux prefix in Kitty
- toggle left pane with notes list in Drafts
- press and release
ROpt
and, depending on the current app get this:- toggle between left and right editors in split-screen VSCode
- toggle tab overview in Safari
- etc
- get an extended layer on pressing and holding the space bar
- etc
Special mention: there is an experimental
branch where some settings are active, like sequence layers (press shift
, quickly followed by s
to send S
, or LCmd
quickly followed by t
to send Cmt+T
) or getting 4 different outcomes from a single key. Check it out.
- Install Karabiner-Elements
- Create a profile named 'Default' in Karabiner-Elements. (It will generate a karabiner.json file under ~/.config/karabiner/ folder for goku to use.)
- Install Goku
- Install files from this repo.
# curl https://raw.githubusercontent.com/kiinoda/goku/master/karabiner.edn > ~/.config/karabiner.edn
# goku
Various parts were adapted from other internet sources, indicated below.
- Kun Chen - k-goku - document structure and general inspiration
- John Lindquist - dotfiles - emoji layer contents and from/to templates needed to "translate" between QWERTY and Colemak
- Nikita Voloboev - dotfiles - general inspiration, properly using conditions in rules
- Xah Lee - Banning the Shift Key - the seed for the sequence layers
- Øystein Bech Gadmar - Colemak Forum - Extend Layer - the general organization of the extend layer