Hack keyboard use Karabiner, and maintain my karabiner config with Goku.
Head over to nikitavoloboev's personal wiki to learn more about karabiner and goku.
Tracking keyboard input use WhatPulse to observe.
Here are some settings (click to see)
Type | From | To | Comment | Favorite | Todo |
---|---|---|---|---|---|
layer | space+any | shift+any | use the most strongest finger | yes! | |
layer | v/m+any | control+any | use the second strongest finger | yes! | |
layer | s+h/j/k/l | arrow keys | yes! | ||
layer | s+d/f | copy/paste | |||
layer | d+j/k | cmd+shift+]/cmd+shift+[ in chrome; ctrl+tab/ctrl+shift+tab in wps | switch tabs in most apps | yes | |
layer | d+m | maximiz window | remap Rectangle | ||
layer | d+f/s | clicking(like vimium-f)/scrolling | remap Homerow | ||
layer | f+j/k | delete/return | so easy to delete | yes! | |
layer | w+any | launch application | w+j -> open chrome when not in chrome; w+j -> cmd+` when already in chrome | yes! | |
layer | o+any | open website | o+f -> create new tab of chrome | ||
layer | a+h/j/k/l/v/b/n | mouse navigation/click | during navigation: hold f to slow down, hold s to scroll | avoid pinky problem | |
layer | a+i/o | zoom in/out | |||
layer | t+any | toggle setting/information | t+d -> toggle dark mode | ||
layer | g+h/j/k/l | home/page_down/page_up/end | |||
layer | x+h/j/k/l | shift+arrow | vi visual mode | ||
layer | r+h/j/k/l | scrolling | |||
simultaneous keys | j+k | esc | yes | ||
simultaneous keys | m+k | translate | remap Easydict | left hand mode with mouse | |
modifier alone | left cmd | cmd+tab | so easy to switch previous app | yes! | |
modifier alone | right cmd | mouse center click to active app, then maximize window | use it a lot when vimium/ideavim lose focus in chrome/IntelliJ | yes | |
modifier alone | left option | tmux prefix | yes | ||
modifier alone | right option | translate in chrome/IntelliJ/Others | remap immersive-translate/Translation/Easydict | yes | |
modifier alone | left shift | switch english/chinese input | by Rime (nothing to do with goku) | avoid pinky problem | |
modifier alone | right shift | caps_lock | turn on caps_lock to enter vi mode (in process) | more vi binding | |
modifier alone | fn | copy | |||
modifier alone | left control | paste | |||
other | caps_lock | esc(pressed alone)/control(as modifier) | use j+k and v/m+any instead |
||
mouse | right click | copy word(double right click)/selected(hold right click) | |||
mouse | option/command + left click | copy word/selected | |||
mouse | middle click | paste(hold middle click to overwrite) | |||
trackpad | s/d + finger on trackpad | copy word/selected | easy to accidentally trigger | ||
trackpad | f + finger on trackpad | paste(hold f to overwrite) | easy to accidentally trigger | ||
trackpad | h/j/k/l + finger on trackpad | arrow keys(one finger), home/page_down/page_up/end(two fingers) | easy to accidentally trigger |
Rime config for Chinese input powered by rime-ice, flypy and TigerCode, including:
Using KeyboardHolder to keep Squirrel as the only input source on macOS, instead of ABC.
And using ShowyEdge to notice when input source automatically changes to ABC.
Using emacs-rime in Doom Emacs.
sketchybarrc and plugin scripts
Using Emacs Plus.