This repository holds my configuration files for Karabiner-Elements.
It contains the fully documented Goku file (karabiner.edn) as well as the generated file (karabiner.json).
In my configuration I remapped some specific "PC" keys for my Qisan Magicforce 68 keyboard.
A cleaned version is also available, I created this version for my colleague with just a Macbook Pro. Almost the same generic functionality but not up to date.
I wrote two blogposts with background information on the choices made and tools explored:
The following sections give an overview of the shortcuts, mappings and automations
The specific settings for my compact Qisan Magicforce68 keyboard
Shortcut | Keystroke | Function |
---|---|---|
left-option | left-⌘ | swapping option and command |
left-command | left-⌥ | swapping command and option |
Escape | ` | Escape to ` |
Shift+Escape | ~ | Shift + Escape to ~ |
right-Command | ⌘ + Tab | Toggle current and previous app |
right-Option | ⌘ + ~ | Cycle app windows |
This section is removed in the cleaned version.
The specific Apple keyboard setting involve the use of the 'fn' or function key. I was unable to address the function key on my Qisan keyboard.
Shortcut | Keystroke | Function |
---|---|---|
fn + l | ⌘ + ⌃ + q | Lock screen |
fn + z | ⌘ + ⌥ + Eject | Sleep |
The Keychron K1 keyboard setting has a special keys to take a screenshot right next to it is a key with a microphone that sends out fn + spacebar. I use this key to silently take a screenshot.
Shortcut | Keystroke | Function |
---|---|---|
microphone | fn + spacebar | Call silent screencapture |
You might wonder why there are so many hyper-keys, yes it is to much but I'm still figuring out which hyperkey location is most convenient. The position of your hands above the keyboard is an important factor in this. Using the capslock as hyper key is also a good option due to the size of the key.
Shortcut | Keystroke | Function |
---|---|---|
Capslock | Escape | hyper-key |
Tab | Tab / 'hyper' | Hammerspoon hyper-key |
e | e | hyper-key |
Command (l|r) | ⌘ + Tab | Toggle current and previous app |
Option (l|r) | ⌘ + ~ | Cycle app windows |
Control (l|r) | ⌃ + Tab | Cycle app tabs |
left-Shift | ⌥ + left-Arrow | Move cursor one word left |
right-Shift | ⌥ + right-Arrow | Move cursor one word right |
e + m | ⌘ + ⌃ + Space | Open Emoji picker |
Capslock + l | ⌘ + ⌃ + q | Lock screen |
Capslock + z | ⌘ + ⌥ + eject | Sleep |
Capslock + m | ⌘ + ⌃ + Space | Open Emoji picker |
Capslock + u | Toggle System UI Sound Effects* | |
Capslock + \ | Open Finder | |
Capslock + s | Open Safari | |
Capslock + f | Open Firefox | |
Capslock + k | Open Kubernetic | |
Capslock + g | Open Google Chrome | |
Capslock + t | Open iTerm | |
Capslock + y | Open Typora | |
Capslock + v | Open VSCodium | |
Capslock + 4 | Silent screenshot to clipboard | |
Capslock + 5 | Screenshot and recording options | |
Capslock + arrow | Move mouse fast | |
left-Option + s | Safari: Save tabs to markdown** | |
left-Option + s | Chrome: Save tabs to markdown** | |
Capslock + o | Finder: Open in VSCodium*** | |
right-Option + o | Finder: Open in VSCodium*** | |
Capslock + b | Typora/VSCodium: Toggle sidebar | |
Capslock + t | VSCodium: Open terminal pane | |
Capslock + h | VSCodium: Snippet to clipboard | |
/ + vowel | acccent aigu: á, é, í, ó, ú | |
; + vowel | umlaut: ä, ë, ï, ö, ü | |
\ + vowel | accent grave: à, è, ì, ò, ù | |
6 + vowel | circumflex: â, ê, î, ô, û | |
/ + (shift + vowel) | acccent aigu: Á, É, Í, Ó, Ú | |
; + (shift + vowel) | umlaut: Ä, Ë, Ï, Ö, Ü | |
\ + (shift + vowel) | accent grave: À, È, Ì, Ò, Ù | |
6 + (shift + vowel) | circumflex: Â, Ê, Î, Ô, Û | |
Capslock + r | Reload Hammerspoon config |
In my current configuration I disabled the left- and right-shift options to move the cursor one word to the left or right. Too many typing errors.
* See Silence is foo
** See Saving the Yak browser-trail
*** See Open in VCodium
Four layers have been added to make it easier to type diacritic characters.
- Slash ('/') + vowel = vowel + acccent aigu acute accent
- Semicolon (';') + vowel = vowel + umlaut
- Backslash ('') + vowel = vowel + accent grave
- Six ('6') + vowel = vowel + circumflex
Capitalized versions: layerkey + (shift + vowel) = capitalized vowel with accent
For example: '/' + 'a' = á
Some shortcuts to test stuff.
Shortcut | Keystroke | Function |
---|---|---|
o + s | Open Safari (example) | |
o + t | Type some text (example) | |
o + b | Play beep sound (example) | |
o + p | Play Purr sound (example) | |
o + k | Play Tink sound (example) | |
e + m | ⌘ + ⌃ + Space | Open Emoji picker (example) |
Spacebar + \ | Open Finder (example) | |
Spacebar + p | Open Preview (example) |
When the 'karabiner.edn' file is not located in the directory '~/.config' you can run the shell script 'gokuc.sh' which uses the config file from the current directory.
#!/bin/bash
# Run goku with the karabiner.edn file from the current directory
goku -c $PWD"/karabiner.edn"
Output:
goku$ ./gokuc.sh
Done!