Skip to content

Capslock goes native

Capslock started as a Karabiner-Elements configuration. It is now a native Mac app that keeps the same layout and adds an editor, app rules, lessons, and a way to always get Caps Lock back.

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.