Hyperkey not working on M2 air with Sonoma

Hi I have installed latest alpha version of BTT and am uptodate with Sonoma, but the Caps lock key refuses to function as a hyperkey. It used to work but seems to have stopped. I have tried restarting the mac, logging in and out all without luck.
As a last resort, I have installed Karabiner Elements but would prefer to stick with BTT if possible.


Describe the bug
Hyperkey refuses to function. Pressing Caps lock in word still functions as caps lock and green LED comes on

**Affected input device Macbook Air M2 and Macbook Pro M1

Not applicable

Device information:

  • Type of Mac: M2 air 2022
  • macOS version: 14.5
  • BetterTouchTool version: 4.603

Additional information (e.g. crash logs, related issues, etc.):

Hm, I have the same macbook air, same OS and alpha BTT (4.604) and hyper key is working for me. The LED does flicker on then off, but that has always been the case with the way BTT deals with the hyperkey (Karabiner uses a different method). But it is working.

For most use cases the better solution is to remap Caps Lock to right-cmd or right-ctrl in System Settings => Keyboard => Keyboard Shortcuts => Modifier Keys. (They don't explicitly mentioning right-ctrl/right-cmd, but by default they are)

Then in your BTT shortcuts you can make use of the right-ctrl modifier by checking this box:

Could you give some reasons for this? Is Apple's native remapping more stable as it is an OS feature? I've lived with the slightly klunky hyper key and it works well enough I'm not tempted to go back to. Karabiner elements for this. One issue with this is I used the hyper-key released feature: Pressing CAPSLOCK and releasing it alone used to trigger a named trigger. I think now I must use a Key Sequence:

r^ down and r^up is the key sequence?

yes, it just works more reliably, than BTT’s hyperkey.

However BTT also allows for “on release” actions for the hyper key. You can change the action category (standard trigger or trigger on release) at the top of the action sequence column

I've run into other problems with right control ^ -- several other apps don't differentiate left and right control keys, including Alfred which I use a lot and previously had set up lots of hyperkey bindings...

I have to admit i don't quite understand this. I previously used BTTs hyperkey and also the named trigger if released without other keys. I am trying right-control with a key sequence to handle solo release. Are you suggesting keep using right control but some other solution for solo release?

@iandol May I make a suggestion. If neither hyperkey nor r⌃ work for you, try the block/unblock keyboard feature. This should work regardless of the behavior of any other app.

I've been doing this for a long time with another key and have never had any problems.

Key down --> Keyboard is blocked
Key up --> keyboard is activated again.

In between, something can be triggered with each letter. Exactly the same as with modifier + letter.

You can even use several letters (strings) as a trigger. Nothing is typed, nothing reaches the front app. The string is only passed on to BTT.

I also make it so that a floating menu is displayed at the same time (in a corner of the screen) as long as the key is pressed. This is to trigger actions with the mouse for which I don't want a shortcut. (The mouse automatically goes to the menu when the key is pressed and returns to its original position when I release the key)

1 Like

Thanks @Frank1 -- your replies are always informative and helpful! :star_struck:

Apart from a continuing issue with a "sticky" hyperkey (indeterminate bug with a limited negative impact), hyper key is working fine for me. In the sticky hyperkey thread I think you also suggested r⌃. For the OP who can't get hyperkey to work at all, he now has some useful suggestions to work with.

I will keep trying with r⌃ just out of curiosity! As my current issues with r⌃ are mostly to do with Alfred, I can use Applescript to automate alternatives to the native keybindings, so that problem can be worked round...

Usng Applescript solved the Alfred native keybindings not being sensitive to left/right control. BUT another more serious problem with r⌃ -- doesn't work with external keyboards (at least not my logitech)...

@Frank1 -- do you have this trigger you could export and share, or a screenshot. How do you envisage it working as a hyperkey replacement?

Thank you for your kind words @iandol

So you can't set it up with ⌃r because it doesn't work with your external keyboard.

I tried setting it up with Caps Lock which seems to work. So, in macos, set r⌃ back to Caps Lock.

  1. Key Sequence: Caps Lock down --> block keyboard
    Caps Lock DOWN.bttpreset.zip (1.2 KB)

  2. Key Sequence: Caps Lock up --> unblock keyboard
    Caps Lock UP.bttpreset.zip (1.2 KB)
    Here you also need the action “toggle Caps Lock”. Otherwise Caps Lock remains activated. Sorry, that's German. I hope you understand it anyway)

Now you need a CAG for the letters that are pressed while Caps Lock is down, i.e. while the keyboard is blocked.

You can create normal key sequences in this CAG. So that BTT knows what a letter is supposed to do while the keyboard is bocked. So “j” triggers something. Or “jk” or whatever you want.

That works for me. I hope it works for you too :slightly_smiling_face: