Skip to content

CapsLock Enhancement · V3.1 · Karabiner-Elements

Make CapsLock Great Again

Tap it for Escape. Hold it for Hyper.
One forgotten key becomes sixteen keyboard control planes.

Apache-2.0 · no background service of its own · nothing to buy

Also in the Karabiner-Elements gallery

1Key repurposedCaps Lock, and nothing else
16Control planesFour left modifiers, four bits
282Key mappingsEvery chord in the V3 rule set
13Years maintainedAn AutoHotkey script in 2013

Why one key is enough

The key you never press, doing the work of many

The most reachable key on the board does nothing. Here is what it does instead.

01 / THE CORE IDEA

Tap for Escape, hold for Hyper

◇ One key, two unambiguous jobs

  • A short tap sends Esc, back within reach
  • A hold sends ✱ Hyper: all four right-side modifiers
  • So Alfred, Moom and your IDE see an ordinary chord
  • ✱ Esc still toggles the original Caps Lock
  • ✱ Space still switches the input source

Nothing is lost. Everything moves closer.

02 / ADDRESSABLE SPACE

Sixteen planes, not one layer

◇ Four modifiers, four bits, sixteen planes

  • The left-side are four binary switches
  • Plane zero carries the daily essentials
  • Nine planes are in use; seven stay free for you
  • A plane you add behaves exactly like one that ships

The keyboard stops being a surface and becomes an address space.

control-planes
# plane = left ⌘⌥⌃⇧ read as four bits
plane  0   89 mappings
✱⌘     plane  1   59 mappings
✱⌥     plane  2   38 mappings
✱⇧     plane  8   25 mappings
✱⌘⇧    plane  9   21 mappings
✱⌥⇧    plane 10   21 mappings
# 9 planes in use, 7 still yours

03 / CONFIGURATION AS DATA

Read it all. Then change it.

◇ One JSON file, no hidden state

  • The configurator reads the JSON this project ships
  • Every plane, every key, its real Karabiner output
  • Rename the apps behind the yellow keys, then export
  • Deeper still: edit capslock.yml, run one make

Inspect first. Customize with confidence.

What the planes hold

Nine families of keys, one mental model

The physical keyboard is colour-coded by purpose, so a key’s neighbourhood tells you what it does. Counts below are the mappings each family ships in V3.1.

102 mappings

Navigation

HJKL moves, UIOP pages. Add modifiers to select text, switch tabs, windows, apps and desktops, or drive the pointer and wheel.

Read the mappings

12 mappings

Deletion

N M , . sit under the navigation keys and delete by character, word or line — forwards and backwards, without moving your hand.

Read the mappings

63 mappings

MouseKey

The numeric keypad becomes a complete mouse — eight pointer directions, four wheel directions and five buttons, with slow and fast variants.

Read the mappings

19 mappings

Window control

Close a tab, a window or an app; cycle apps, windows, tabs and desktops; sleep, lock or log out. Layout is handed to Moom or Magnet.

Read the mappings

18 mappings

Applications

The yellow keys launch or focus the browser, terminal, editor, IDE and launcher. These are defaults, not requirements.

Read the mappings

10 mappings

Terminal & IDE

⌃C ⌃D ⌃Z ⌃R without contorting your left hand, plus Vim and Tmux prefixes and one key each for Codex and Claude.

Read the mappings

10 mappings

Clipboards

Number keys 60 become five independent text clipboards. Hyper with copies into a slot; Hyper alone pastes from it.

Read the mappings

16 mappings

Shifter

The punctuation a programmer types all day — brackets, braces, angle brackets, underscore, colon and bang — one chord away.

Read the mappings

28 mappings

Functional

Media, brightness, keyboard light and volume on F1–F12, screenshots on the backtick and F13–F14, plus fine-grained steps on the navigation cluster.

Read the mappings

Installation

Two steps, about five minutes

A Karabiner-Elements rule set. Nothing else to install, nothing new in the background.

  1. Install Karabiner-Elements

    Download it from the official site, or use Homebrew. Grant the background services, Accessibility, Input Monitoring and Driver Extension permissions macOS asks for.

    brew install --cask karabiner-elements
  2. Import the rules

    Open this URL in any browser — it hands the configuration straight to Karabiner-Elements. Choose Import, then enable the rules you want under Complex Modifications.

    karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/Vonng/Capslock/main/mac_v3/capslock.json

From real users

The keyboard setup people write emails about

Not marketing copy — two emails, in full, from people who put CapsLock Enhancement into their daily work.

I just wanted to reach out to a fellow dev and say thank you so much for all the hard work you put into your Capslock enhancements.

I was already using a hyper/escape key via karabiner elements and used it to hot-swap focus between apps as you have on a few of your keys.

But HOT DAMN you took it to a whole new level. This is amazing. I have printed out your reference image and have it hanging on my monitor.

I am slowly tweaking and customizing to make it fit my workflow. Thank you again and again for showing me a new way to think about my keyboard with multiple HYPER LAYERS!

Behind it all is surely an idea so simple, so beautiful, that when we grasp it — in a decade, a century, or a millennium — we will all say to each other, how could it have been otherwise? — John Archibald Wheeler, Annals of the New York Academy of Sciences, 480 (1986)

Matthew Kelly“MCGA is Amazing” · 22 February 2019

Hello author:

I stumbled upon your git library today, downloaded it and tried it out: github.com/Vonng/Capslock — and I am really impressed. This script made me really love my keyboard.

I’m using a Filco 87 dual-mode keyboard just like you, and this script makes me feel like flying!

I’m just sending you an email to express my sincere thanks and hope you will continue to maintain it in the future.

Thanks again!

Qiang Zhang“非常感谢您的改键大作” · translated from Chinese

Thirteen years of one idea

From an AutoHotkey script to a Karabiner rule set

  1. Windows, AutoHotkey

    The first CapsLock Enhancement turns the key into a modifier on Windows. Archived, but still in the repository.

  2. macOS V1

    Ported to the original Karabiner and its XML private configuration.

  3. macOS V2

    Rebuilt on Karabiner-Elements complex modifications. The sixteen control planes appear, and the project enters the official gallery.

  4. macOS V3

    The configuration becomes a readable YAML source compiled into Karabiner JSON, so mappings can be reviewed as data.

  5. V3.1

    Five clipboards on 60, Codex and Claude on C, screenshots on F13 and F14, Spotlight and Alfred 5 defaults.

Before you install

Questions worth asking first

Do I lose Caps Lock itself?

No. Hyper plus toggles the original Caps Lock state, and macOS still shows the indicator. In practice the state is needed a few times a month, while Escape is needed a few times a minute — which is the whole argument for the swap.

Will my other shortcut apps still work?

Yes. Hyper is not a private signal: it is on the right side of the keyboard, held together. Alfred, Moom, Magnet, Raycast and your IDE receive a perfectly ordinary chord and can bind it like any other.

Do I have to accept the default application keys?

No. The configurator rewrites the applications behind the yellow keys in the browser and exports a new JSON file. For anything deeper, edit mac_v3/capslock.yml in a fork and regenerate the JSON.

Does it need a special keyboard?

No. The layout assumes an ANSI keyboard and works on built-in Apple keyboards and external ones alike. The numeric-keypad mouse layer needs a keypad; everything else does not.

What about Windows and Linux?

The Windows AutoHotkey version is archived in the repository and no longer maintained. Linux is not supported: desktop environments differ too much for one configuration. A port with tools such as xmodmap would be welcome.

What does it cost, and what does it collect?

Nothing, and nothing. The rule set is Apache-2.0 licensed data interpreted by Karabiner-Elements; there is no account, no telemetry and no separate background process.

Make Caps Lock great again.Install Karabiner, import one JSON file, keep your hands on the home row.