How to turn on Caps Lock when using Hyperkey on Karabiner

I’ve set up the Caps Lock key as a “Hyperkey” using Karabiner and I’m sure there must be some key combination to enable me to temporarily turn on the Caps Lock function but I can’t find it. Any help?


I don’t know about Karabiner, but for the various other tools which can be used for this, a short press (press and immediately release) will result in normal behavior for the key (toggle Caps Lock), but a long press will result in a “Hyperkey”. I’m not sure if Karabiner offers that option, but that is where I would start.

There are some community-contributed rules for complex modifications. The one that you might be interested in is named Caps Lock → Hyper Key (⌃⌥⇧⌘) (Caps Lock if alone).


Have you tried using a modifier when hitting Caps Lock (as in ⌘+Caps). That used to work back when I used Karabiner.

1 Like


(As evidenced by the above.)


I did not know this. Thanks for the tip!

1 Like

I use the Karabiner rule Toggle caps_lock by pressing left_shift and right_shift at the same time.

The problem with using Caps Lock as Hyper is that you’re taking up one of the most useful positions on the keyboard with a modifier that is used less often.

For example, I use Karabiner macros to have

  • Caps Lock = Control when held, and Escape when tapped.

If you combine this with

  • ‘Return = Control when held and Return when tapped’,

then this is a huge improvement in typing efficiency, particularly on a laptop (and particularly if you’re an Emacs / Vim user…)

You can use another key as the hyper key – I use F12. It’s easy to find, but it doesn’t take up the prime position of the Caps Lock key… To do this, you’ll have to modify the ‘Caps Lock = hyperkey’ script, but it’s definitely worth it.

This is the relevant section of my karabiner.json file:

	"description": "F12 -> Hyper (Shift-ctl-opt-cmd) with other key, escape if tapped",
	"manipulators": [
			"from": {
				"key_code": "f12",
				"modifiers": {}
			"to": [
					"key_code": "left_shift",
					"modifiers": [
			"to_if_alone": [
					"key_code": "escape"
			"type": "basic"



Karabiner works by fetching the input key with its “flags”. So the key code a is different from ⌘+a as an input and so on… keep that in mind when combining mods.

When you have, let’s say, caps lock mapped to output , then you need to hit caps lock key before hitting any other modifiers. Else, it will trigger caps lock, since ⇧ + caps lock wasn’t mapped to ⌃ + ⇧.

Now I’ve made the jump to the bizarre land of custom mechanical keyboards and use a ZMK Ferris Sweep (if curious, here’s a pic). So every bizarre mapping now lives into the keyboard. But I was very fond of Karabiner before and definitely will use it should I not bring my Sweep with me elsewhere.

How do you turn this off once it is engaged?

In Karabiner’s settings, go to Complex Modifications and remove it.