Capslock goes native
For years Capslock was a configuration file. You installed Karabiner-Elements, imported a set of rules, and Caps Lock became Escape on a tap and a Hyper key on a hold. With Command, Option, Control and Shift it reached sixteen planes of shortcuts for the cursor, editing, windows, apps and the mouse.
That worked, and it kept two costs. Karabiner-Elements had to be installed, with its driver and its permissions, just to change one key. And the layout was a JSON file: to change a binding you edited that file, and to learn the layout you kept a picture of the keyboard open.
The new Capslock is a native macOS app. It is built for the same layout, and for removing those two costs.
The same layout, nothing to install around it
Capslock ships the complete Capslock Classic layout: 357 bindings, from
⇪ H J K L for the arrows to five extra clipboards on the number row. Every
rule of the last Karabiner version has a native counterpart, and none was
dropped. App launches, sleep, and the clipboard slots used to be shell
commands; they are now built-in actions, so the default layout runs no
scripts at all.
The app needs one permission, Accessibility. It installs no kernel extension, driver, daemon, or privileged helper. See How Capslock works for how that is possible.
An editor instead of a JSON file
The Keyboard page draws your keyboard with every action on its key. Click a
key to rebind it, disable it, put back the Classic default, or see its YAML.
A mapping can carry app rules, so ⇪ N can delete a word everywhere and send
⌃W in Terminal. Every change is applied as one transaction, and the
configuration is still a plain YAML file you can export, import, and keep in
version control.
Shell commands remain possible and need your approval before they run. A command that arrives in an imported file is switched off until you review it.
Learning built in
Hold Caps Lock and wait, and the current plane appears on screen. The Playground has short lessons that follow your own mappings, a Safe Practice mode that previews actions with side effects instead of running them, and a Free Play view that shows what the last key did without recording what you type.
Always a way back
A tool that owns your Caps Lock key has to give it back reliably. Capslock changes only the one key mapping it adds, restores it on Pause and Quit, and leaves other tools' mappings alone. A small helper restores it after a crash. If Karabiner-Elements or another tool already uses Caps Lock, Capslock does not start, and Diagnostics says what to change.
Two ways to be Hyper
The Karabiner layout made Caps Lock look like ⌃⌥⇧⌘ to every app, and many people built Alfred, Raycast or Moom shortcuts on that. Capslock keeps it as Classic mode, the default. Native mode keeps Hyper private to Capslock, for those who would rather other apps never saw it.
Where it stands
Capslock 0.4.0 is a release candidate. The download goes up once it is Developer ID signed, notarized, tested on a clean account and on Intel and macOS 14, and its update feed is verified. Until then the documentation describes the app as it will ship, and the Download page has its status.
The Karabiner-Elements configuration stays available, free, as the Karabiner Edition.