Capslock serves via Karabiner-Elements on MacOS
-
Download and install Karabiner Elements, following the wizard and grant required permissions.
-
Download capslock.json to:
~/.config/karabiner/assets/complex_modifications/
. Or open this link with Safari to launch karabiner and load config from URL:# Capslock Mac V3 (this repo) karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/Vonng/Capslock/master/mac_v3/capslock.json # Capslock Official Site (v3) karabiner://karabiner/assets/complex_modifications/import?url=https://vonng.com/capslock.json # Karabiner-Elements Offical Script Gallery (v3) karabiner://karabiner/assets/complex_modifications/import?url=https://pqrs.org/osx/karabiner/complex_modifications/json/caps_lock_enhancement.json
-
Launch Karabiner-Elements. Tab: ComplexModification → Button: Add Rules, then enabled rulesets.
Capslock works on ANSI keyboards and similar layouts. It literally remaps every keys on the keyboard. Including 10 categories.
Control Planes are defined by combination of four extra left modifiers: ⌘⌥⌃⇧.This image shows the layout of control plane 0.
Category | Color | Description |
---|---|---|
Basic | Blue | Press ⇪ Capslock emit an ⎋ Escape. Hold it enabling the ✱ Hyper Modifier. |
Navigation | Pink | Vim style navigation. Cursor move, text selection, switch desktop/window/tab, mouse move/wheel,etc... |
Deletion | Brown | Maps BNM, to deletion operation to perform fast char/word/line deletion without hand move. |
MouseKey | Keypad | Maps keypad to fully functional mouse |
Window | Azure | Close app/win/tab, Switch app/win/tab/desktop, intergration with win-manager app such as Moom,Slate,Magnet |
Application | Yellow | Shortcuts for launching or switching frequently used applications |
Terminal | Green | Sending high-freq signals (Ctrl-Z, Ctrl-D, Ctrl-C) and vim/tmux prefix meta key via ✱ |
Clipboard | Purple | Turn numkeys into 10 different text clipboard. ✱⌘n copy and ✱n paste. |
Shifter | Orange | Turn some keys into common code symbols. |
Functional | Cyan | Screenshtots. Fine-grained light/volume control. Take function keys' function back! |
Key | MapsTo | Comment |
---|---|---|
⇪ Press | ⎋ Escape | Click Capslock to emit Escape |
⇪ Hold | ✱ Hyper | Hold Capslock to enable Hyper modifier. |
✱⎋ | ⇪ Capslock | Press to switch Capslock status |
✱␣ | ⌃␣ | Switch input source, +⌘ to emoji |
Note that ✱ is implemented as combination of ALL RIGHT MODIFIERS: ⌘⌥⌃⇧.
Hold ✱ Hyper to enable hyper functionalities. We will assume and omit that in subsequent document.
- H, J, K, L, U, I, O, P are used as Navigators. Maps to ←↓↑→⇞↖↘⇟ by default. (pink area).
- 9 control planes has already been allocated for navigators.
- Hold additional ⌘ Command for selection. (like holding ⇧shift in normal), additional ⌥ Option for word/para selection.
- Hold additional ⇧ Shift for app/win/tab switching. Hold additional ⌃ Control for desktop management .
- Hold additional ⌥ Option for 🖱️ mouse move. Add ⇧shift to ⏫ accelerate. (U, I, O, P maps to mouse buttons) .
- ⇧⌥ turns navigator to 🖲️ mouse wheel, and ⇧⌘ is the ⏫ accelerated version .
HJKL
for wheel, wihleUIOP
for reversed wheel move.
Feature | Move | Select | WordSel | Window | Desktop | 🖱️ | 🖱️⏫ | 🖲️ | 🖲️⏫ |
---|---|---|---|---|---|---|---|---|---|
Key\Mod | ✱ | ⌘ | ⌘⌥ | ⇧ | ⌃ | ⌥ | ⇧⌥ | ⇧⌃ | ⇧⌘ |
H | Left | word left | word left | prev tab | prev desk | ⬅️ | ⬅️⏫ | ⬅️ | ⬅️⏫ |
J | Down | line down | 3 line down | next app | focus | ⬇️ | ⬇️⏫ | ⬇️ | ⬇️⏫ |
K | Up | line up | 3 line up | prev app | expose all | ⬆️ | ⬆️⏫ | ⬆️ | ⬆️⏫ |
L | Right | word right | word right | next tab | next desk | ➡️ | ➡️⏫ | ➡️ | ➡️⏫ |
U | PgUp | prev page | prev page | zoom- | fullscreen | 🖱️L | 🖱️L | ➡️ | ➡️⏫ |
I | Home | line head | end2head | prev win | hide | 🖱️R | 🖱️R | ⬆️ | ⬆️⏫ |
O | End | line end | head2end | next win | hide all | 🖱️B | 🖱️B | ⬇️ | ⬇️⏫ |
P | PgDn | next page | next page | zoom+ | Launchpad | 🖱️F | 🖱️F | ⬅️ | ⬅️⏫ |
- Arrows ←↓↑→ to 🖱️ mouse actions too. Hold ⌥ Option to ⏬ slow down, hold ⌘ Command to ⏫ speed up.
- Hold ⇧ Shift turns to 🖲️ wheel move. Extra ⌥ Option to ⏬ slow down, extra ⌘ Command to ⏫ speed up.
- ↩ Return maps to left click. And additional ⌘⌥⌃⇧ turns into right click, middle click, backward, forward.
Feature | 🖱️ | 🖱️⏬ | 🖱️⏫ | 🖲️ | 🖲️⏬ | 🖲️⏫ |
---|---|---|---|---|---|---|
Key\Mod | ✱ | ⌥ | ⌘ | ⇧ | ⇧⌥ | ⇧⌘ |
←↓↑→ | speed = 1600 | speed ÷ 2 | speed × 2 | speed = 32 | speed ÷ 2 | speed × 2 |
↩ | 🖱️L | 🖱️M | 🖱️R | 🖱️L | 🖱️B | 🖱️F |
N M , . are used as Deletor keys. Right below the navigators for fast access (brown area).
Key\Mod | ✱ | ⌘ | ⌥ |
---|---|---|---|
N | del a word ahead | del till line head | del the whole line |
M | del a char ahead | del a word ahead | move line below |
, | del a char after | del a word after | move line above |
. | del a word after | del till line end | del the whole line |
⌫ | del file | purge file |
- Turn Keypad into a fully funcional 🖱️ mouse.
- Numbers maps to 8 direction 🖱️ mouse move. Hold ⌥ Option to ⏬ slow down, hold ⌘ Command to ⏫ speed up.
- Hold additional ⇧ Shift turns to 🖲️ wheel move. Extra ⌥ Option to ⏬ slow down, and extra ⌘ Command to ⏫ speed up.
- First line maps to wheel move and 0, ., ⌤, +, - maps to five mouse buttons.
⇭ 🖲️⬅️ | = 🖲️⬇️ | / 🖲️⬆️ | * 🖲️➡️ |
---|---|---|---|
7🖱️ |
8 🖱️⬆️ | 9 🖱️ |
- 🖱️B |
4🖱️ ⬅️ | 5🖱️ | 6 🖱️➡️ | + 🖱️F |
1🖱️ |
2 🖱️⬇️ | 3 🖱️ |
|
0 🖱️L | . 🖱️M | ⌤ 🖱️R |
Tab
, Q, W, A, s used as window control keys. Focuing on close/switch applications / windows / tabs / desktops. (azure area)- Windows management (resize, layout) leaves to external application such as Moom, Magnet, and Slate. Bind ⌃⌥⇧⌘A manually.
Key\Mod | ✱ | ⌘ | ⌥ | ⌃ | ⇧ |
---|---|---|---|---|---|
⇥ | next app | prev app | switch desktop | switch tab | |
Q | close app | close app | Lock Screen | Logout | |
W | close tab | close all win | Display Sleep | Sleep | |
A | win app | expose all | show desktop | LaunchPad | |
S | next tab | prev tab | next win | prev win |
- E R T Y F G are used as application shortcuts. (yellow area)
- Popular apps and dev tools are registed to 3 default planes: ✱/⌘/⌥. Assign these shortcuts according to your own needs.
Key\Mod | ✱ | ⌘ | ⌥ |
---|---|---|---|
E | Safari | Finder | |
R | iTerm2 | Preview | Terminal |
T | Visual Studio Code | Typora | Note |
Y | Siri | Karabiner | Amphetamine |
F | Alfred 4 | Dash | Dictionary |
G | Intellij IDEA | Chrome | Calender |
D, Z, X, C, V, B are used as terminal control keys. Sending singals and IDE commands. (green area)
Key\Mod | ✱ | ⌘ |
---|---|---|
D | ⌃D Ctrl+D (Send EOF) | Define (Force touch) |
Z | ⌃Z Ctrl+Z (SIGTSTP) | F5 (VS Code Debug) |
X | ⌃R Ctrl+R (IDE Run) | ⌃F5 (VS Code Run) |
C | ⌃C Ctrl+C (SIGINT) | ⇧>F5(VS Code Stop) |
V | ⌃VCtrl+V (Vim Prefix) | |
B | ⌃BCtrl+B (Tmux Prefix) |
Number keys 1, 2, …, 9, 0 are used as (text) clipboard. Hold ⌘ to copy, and press to paste. (purple area)
Key\Mod | ✱ | ⌘ |
---|---|---|
1 | Paste from clip 1 | Copy to clip 1 |
2 | Paste from clip 2 | Copy to clip 2 |
…… | …… | …… |
0 | Paste from clip 0 | Copy to clip 10 |
- Trivial transformation for misc characters. (orange area)
- Some special tricks for developers. Such as
;'
maps to:=
or!=
(⌘)
Key\Mod | ✱ | ⌘ | ⌥ |
---|---|---|---|
- | _ | Zoom Out | |
= | + | Zoom In | |
[ | ( | { | < |
] | ) | } | > |
; | ! | : | |
' | = | = | |
/ | ⌘/ | ||
\ | ⌘/ |
-
Use F1,…F12 as standard functional keys, while hold ✱ Hyper to turn them back. (cyan area)
-
⌘Command + F1 / F2 / F3 are used as desktop switcher. Enable shortcuts in system preference first:
Preference → Keyboard → Shortcuts → MissionControl → Switch to Desktop 1/2/3
-
If you are using RMBP with Bar, consider changing your bar back to function keys with:
Karabiner-Elements → Function Keys → Use all F1, F2, etc. keys as standard function keys
Key\Mod | ✱ | ⌘ | Comment |
---|---|---|---|
` | ⌃⇧⌘4 | ⇧⌘4 | Area selection screenshot(⌘ to file) |
F1 | display_brightness_decrement | ⌃1 | ⌃1 | Brightness Down / Desktop 1 |
F2 | display_brightness_increment | ⌃2 | ⌃2 | Brightness Up / Desktop 2 |
F3 | ⌃↑ | ⌃3 | ⌃3 | Expose All / Desktop 3 |
F4 | Launchpad | Launchpad | |
F5 | illumination_decrement | Keyboard Light Down | |
F6 | illumination_increment | Keyboard Light Up | |
F7 | rewind | Music Prev | |
F8 | play_or_pause | Play / Pause | |
F9 | fastforward | Music Next | |
F10 | mute | Mute | |
F11 | volume_decrement | Volume Down | |
F12 | volume_increment | Volume Up | |
F13 | ⌃⇧⌘3 | ⇧⌘3 | Full Screentshot (⌘ to file) |
F14 | ⇧⌘5 | ⇧⌘6 | Screenshot menu (⌘ touchbar snap) |
F15 | play_or_pause | Play / Pause | |
Insert | ⇧⌥ display_brightness_increment | Fine-Grained Brightness Up | |
Delete ⌦ | ⇧⌥ display_brightness_decrement | Fine-Grained Brightness Down | |
Home ↖ | ⇧⌥ illumination_increment | Fine-GrainedKeyboard Light Up | |
End ↘ | ⇧⌥ illumination_decrement | Fine-Grained Keyboard Light Down | |
PgUp ⇞ | ⇧⌥ volume_increment | Fine-Grained Volume Up | |
PgDn ⇟ | ⇧⌥ volume_decrement | Fine-Grained Volume Down |
Glyph | Name | Glyph | Name |
---|---|---|---|
⇪ | Capslock | ✱ | Hyper |
⎋ | Escape | ␣ | Space |
⌘ | Command (Mac) | ⎇ | Alter (Win) |
⌥ | Option (Mac) | ⊞ | Win (Win) |
⌃ | Control | ⇧ | Shift |
↩ | Return | ⌤ | Enter |
←↓↑→ | Arrow Cursor | ↖↘ | Home/End |
⇥⇤ | Tab | ⌫⌦ | Delete / ForwardDelete |
⇭ | Numlock | ⏫⏬ | Fast / Slow |
🖱️L | Mouse Left Click (Button1) | 🖱️B | Mouse Backward (Button4) |
🖱️R | Mouse Right Click (Button2) | 🖱️F | Mouse Forward (Button5) |
🖱️M | Mouse Middle Click (Button3) | 🖲️ | Mouse Wheel |