Reliability of Hyperkey on Release?

I have set up my CAPS LOCK as a hyper key in BTT, and set up a named trigger on release (F18), which is configured to trigger Alfred. When I press and release the CAPS LOCK quickly, often Alfred fails to trigger, and I have to press for longer before release then it works. I notice that the CAPSLOCK light briefly flashes when it works but doesn't when it fails. Is there any way to "tweak" the sensitivity to improve the reliability of this. Karabiner was more sensitive IIRC, and I did just test with this new tool:

Remapping CAPSLOCK to F18 using this app and it works instantly and reliably (but doesn't enable dual use of hyperkey when held down and F18 when released like BTT does)...

Hi @iandol

I’m not an expert on this at all, but just as one data point… I was very excited to move from Karabiner to BTT for Hyperkey, as this is the only thing I use Karabiner for, but I found that BTT was not as reliable/robust as Karabiner was, especially for these edge cases when I was perhaps not paying as much attention.

I’m not sure if this is because Karabiner is working “closer to the metal” or just because it’s only doing one thing and BTT does many things. I plan to keep an eye on BTT's implementation of it and hope to eventually switch to it, but for now I'm still using Karabiner.

Hi Tim, yes that sounds consistent with my current experience. The fact the [CAPS] key needs to flash the LED on then off suggests it is using a different (further-from-the-metal) hook into the system, and this would explain the latency for fast key presses. I hope this can be improved for the future, and I need to chose whether to reinstall karabiner (which itself totally breaks using MATLAB for my work), or go back to using another key to trigger Alfred and just use the BTT hyper key as a modifier only (which works more reliably for me as I press for longer).

Thanks for your input.

@Andreas_Hegenberg — do you have any way to improve this to work as quickly as hyperkey or karabiner? Thank you!

V3.615 should improve the reliability for quick releases, would be great if you could test.

Yes, this is much quicker and more reliable than before. As fast as I can tap [CAPS LOCK] I always get my F18 trigger to Alfred working, and holding down gets me hyper key without fail. Totally brilliant, many thanks @Andreas_Hegenberg !!! :star_struck:

I would like to give it a try, but BTT does not record my Caps Lock key... :cry:

(both on the internal MacBook Pro keyboard and the external Apple Magic Keyboard)

did you maybe remap capslock in system preferences -> keyboard-> modifiers?

I disable the Caps Lock key there when using Karabiner Elements for the Hyperkey.

But I made sure it was reset to the default before trying BTT.

Have you found BTT getting any more reliable with its hyperkey implementation?

I’m making a second attempt to move from Karabiner, but keep hitting situations where it just doesn’t work well.

First, it’s very buggy when combined with the arrow keys, which I use for moving outline-style items up, down, left (outdent) and right (indent). Using for OmniFocus, OmniOutliner, Obsidian lists. It's especially broken with Obsidian, maybe because it’s not a "real" Mac app.

This morning, I tried to move my simple play/pause audio shortcut (hyperkey F9) from Keyboard Maestro to BTT, and while it works if I manually hold down Sh Ctrl Opt Cmd F9, nothing happens when I hit Caps Lock F9. My BTT Drafts hyperkey items work fine. (see screenshot)

Should I just give up on the BTT hyperkey? How is anybody using it?

@rbanks88 I understand the frustration when something doesn't work the way you want it to. Let me ask you: Why do you use hyperkey?

  1. Because of the particular position of the caps lock key on the keyboard
  2. Because you need an additional modifier
  3. Another reason or both :slight_smile:

In most cases (depending on your keyboard) there are good alternatives with BTT.

I use the hyperkey for several main things:

With the H key to call application-specific, custom help sheets I have built, consistently sized and positioned via text boxes in Keyboard Maestro.

To call global Keyboard Maestro conflict pallets.

With the arrow keys, to move outline-style items up and down, indent and outdent. (OmniOutliner, OmnoFocus and Obsidian)

Ok, that explains how but not why you use it. I assume you want to keep the same key. Have you tried remapping caps lock in mac os to right control and then setting up shortcuts with that modifier? BTT can distinguish between left and right control key. So you can do everything you listed with a "fresh key" that you normally don't have on your keyboard. All shortcuts with the "normal" (left) control key remain unchanged.

I think the issue affecting arrow keys and function keys is the same. I'll have a look soon!

I was trying to replicate issues with the arrow keys and the hyper key, but so far in my tests it always worked.
Do you have a concrete example that causes issues for you?

Note: the BTT hyper key only works well for shortcuts defined in BTT, but I think that's what you did for the F keys already, right?

Here's an example:

I set up a play/pause audio shortcut (hyperkey F9) in BTT, and while it works if I manually hold down Sh Ctrl Opt Cmd F9, nothing happens when I hit Caps Lock F9. My two BTT Drafts hyperkey items work fine, but for some reason, not the play/pause. (see screenshot)

If I change the trigger to Ctrl F9 it works fine. But Ctrl Opt Sh Cmd F9 doesn't work.

I double-checked to be sure there are no Keyboard Maestro macros triggered with hyperkey-F9, and even tested after quitting the Keyboard Maestro engine. I also searched through my System Preferences keyboard shortcuts and there’s nothing assigned to F9, with or without modifiers.

It seems such a simple thing should work, so there must be something corrupt or conflicting in my setup.

I often use the small keyboard, which doesn’t have a right control key (to keep my sore right arm from reaching further to the right for the trackpad). Are you suggesting doing this as a test, or to permanently avoid the caps lock/hyperkey? I do have a large keyboard I use on occasion.

Thanks,
Russell

Hi Russell

Exactly, most keyboards don't have a right control key. But you can make your caps lock key in macos the right control key.

System Preferences▸Keyboard▸Modifier Keys.
Set „caps lock“ to „ctrl“

It does not show it, but now „caps lock“ is the physical „right control“ key. The „left control“ key remains what it was.

With BTT you have the option to set up shortcuts that only work with right control, or only with left control.

I don't want to upset anyone who is insisting on using hyperkey. I just don't see the point when I can use a "real" modifier and BTT gives me the option to distinguish between left and right. :man_shrugging:

Get well soon for your arm :smiley:

1 Like

So your method bypasses the need to use the hyperkey completely! This seems like a brilliant solution to using either Karabiner or BTT. Are there any downsides of which you are aware? Looks like I'd have to move my Keyboard Maestro macros that use the hyperkey to BTT, since Keyboard Maestro doesn’t appear to differentiate fight and left control keys.

Why would anyone bother relying on other software when you can do this with just MacOS?

You still need BTT or some other app to define shortcuts that only work with right ctrl :slight_smile:
But I agree it's a great solution!