Hyperkey question

For those of you who have mapped the caps-lock key to Shift-command-Control-Option:

Does this mean you can’t ever lock caps (capslock?), or is there something else you can do to get all caps (other than hold the Shift key down as you type)?

Some others have gotten this to work using the “if_alone” key in the JSON file, but I could never get it to work (which is why I’m not using KE).

I so rarely need the caps lock key that I am happy to hold down shift as required.


I never needed regular Caps Lock functionality after configuring that key as a Hyper key.

As a mainframer I quite often need capitals for things. (Yes we have been able to used mixed case for many decades, before you snark about it.) :slight_smile:

But I, too, have remapped Caps Lock - without loss of productivity.

Indeed I have a bunch of Keyboard Maestro macros runnable from Caps Lock. It’s where I put “unanchored” macros. Actually, some are kicked off by Alfred as well.

The rare times I need my CAPS key for its intended use, I just use PopClip to work its magic on the selected text.


I have hyper key via karabiner. If I press ⌘ + capslock key, then it toggles on. For the most time I activate it by accident.

I use Karabiner Elements to map both shift keys together to toggle Shift Lock (Caps Lock) on and off.

(I remap Caps Lock to Control and Escape, not Hyper—which I have on F12—but otherwise the principle is the same, of course.)


Yes, I never use Caps Lock.

If you use Karabiner Elements, there are complex modifications listed here. The one named “CapsLock Plus” will allow you to still toggle Caps Lock if pressed with other modifier keys. Will be tricky if you use keyboard without ⎋ key and want to trigger ‘Force Quit Application’ (⌘⌥⎋) though

Otherwise, the idea by @brookter above me is a nice one.

I’m using Better Touch Tool to activate the hyper key on my Mac. That lets me turn on the caps lock if a press the key and let go. Pressing and letting go again turns caps lock off. If I hold the caps lock key down and press a letter (e.g. C) it will act as the hyper key and the caps lock state will not alter when I release the keys.

I use Karabiner-Elements to map Caps Lock to the hyper key and also map shift+Caps Lock to Caps Lock. It’s a single rule I found built-in under complex modifications.

1 Like

Slightly different situation here (my keyboard has no Command/Windows key) so I’ve always mapped Caps Lock to be Command.

I don’t miss Caps Lock at all and am still angry after decades that Caps Lock is where Control should be (and originally was).

Inspired by @ybbond and @JoePreiser , I’m now using the “Change caps_lock key (rev 5)” rules to allow the Hyper key, and also shift-CapsLock toggles caps. Seems reliable so far (10 seconds of testing; hopefully nothing nasty is happening to my computer because of downloading and installing a bit of code that controls how my computer operates).

This link takes you to a search on the Karabiner site, then you install the rules and enable the 4th rule in the list.


I never actually needed the caps lock key, so I use it to change input language (Latin ←→ Greek) and Karabiner profile (Latin ←→ Greek) using a Keyboard Maestro macro. For a hyper key of sorts, I use the right option key in the MBP keyboard or the application key in the CloudNine keyboard (when I am sitting in my desk).

Thanks everyone! I figured most hyperkeyers just didn’t miss caps lock. But good to see there are some alternatives to abandoning it altogether.

1 Like

Back to my original question: Has anybody managed to make Fn a modifier?

It may be possible, because this Simple Modifications with Karabiner works as stated—make fn as (left) ⌘:

but as far as I search, there is currently no complex modifications provided by community to make fn as hyper. I also not familiar on how to create one. So, maybe try to make your own complex modification, or ask the community to provide one (or give tutorial on how to create one)

1 Like

Hey, I’ve just found a way!

  1. Go here: Karabiner Complex Rules Generator
  2. Copy the snippet attached below
  3. Paste to the text field in the website below the button that says “INSTALL!”
  4. Click your mouse outside the aforementioned text field. So it will generate the rules based on the one you pasted
  5. You can now press “INSTALL!” button to import the modification to Karabiner Elements and enable it
  "title": "Function key to Hyper/Escape",
  "rules": [
      "description": "Function to Hyper/Escape",
      "manipulators": [
          "type": "basic",
          "from": {
            "key_code": "fn",
            "modifiers": {
              "optional": [
          "to": [
              "key_code": "right_shift",
              "modifiers": [
          "to_if_alone": [
              "key_code": "escape"

small print: snippet is modified from here.



Managed to get it working – seems it was correctly set-up initially, but for whatever reason, took a few hours before it began working as expected… :man_shrugging:t3:
I just followed the BTT guide, as below.

Regardless, many thanks!


Do you mind sharing a screen-shot of how you set that up – specifically the alternative Caps Lock state?

I’ve worked through the BTT guide, and even though I have set up a “Named Trigger” that is supposed to trigger Caps Lock when I hit the hyper without any other keys, it’s not working as of yet… Maybe a reboot will help, but I’ve too many things open currently to try that.

1 Like

I do it with BetterTouchTool and Caps Lock works as normal when not pressed together with other buttons.

1 Like