Hyper key combination isn't registered when keys pressed immediately one after another

I'm another user uninstalled Karabiner because of BTT introduced Hyper key feature. One thing I noticed in BTT's implementation is that hyper key combinations isn't always registered. Here is what I mean:

For example, when I press Caps Lock + F, the combination isn't always registered. I have to intentionally have a delay of about 0.3s before pressing F. If I press the two keys IMMEDIATELY one after another, the combination isn't registered at all. When the combination isn't registered, the system only registers the key press "f". I am able to re-produce this behaviour 100% of the time.

Device information:

  • Type of Mac: Mac Mini
  • macOS version: 11.1
  • BetterTouchTool version: 3.544
  • External Keyboard: Magic Keyboard

Are you trying to trigger a shortcut that's configured within BTT or some system shortcut? I mostly tested with BTT shortcuts, there the only important thing is that the Hyper Key is pressed before the other key, but that should be the same for normal shortcuts.

You are right. I have configured Hyper Key + F to trigger a workflow in Alfred, which is mapping shift+control+option+command+f to 'Open Finder'. However, this wan't an issue when I used Karabiner.

I also just tried mapping shift+control+option+command+p to 'Open Finder' directly in BTT and still experience the exact same delay behavior.

Weird I can't seem to reproduce this yet. Do you have other software installed that intercepts key events?

Other than Karabiner (uninstalled) and Alfred (completely quit while testing), no.

One thing I'd like to emphasis is this behavior is only observed when the keys are really pressed immediately one after another, maybe within 100ms. I'm very used to press the combinations quickly because I use Hyper Key + [a-z] to switch between applications all the time. This behavior immediately stand out after I switch to BTT's Hyper Key.

I also tested on a MacBook Air using the built-in keyboard, and I observed similar behavior.

Is there any diagnosis or report I can run that can capture my key presses? Happy to do that if they help.

I'm having the exact same issue. Glad to run any diagnosis to help, if I can. For reference, here's how I've setup my BTT shortcuts:

UPDATE: did some testing by enabling the HUD Overlay on both triggers and it seems that the "Caps Lock" trigger is being activated but the Cmd+Alt+Shift+E trigger is not.

Caps Lock as Hyper Key:


Open Excel


FWIW - I’m seeing something similar. I’m not all that experienced with BTT (having tried it a few times but never having it “stuck” before), but coming from Karabiner I have noticed this too.

My keyboard combination are almost always connecting to Keyboard Maestro.

I also have Typinator installed.

I did install the Process Priority Tool.

For example, I have one that is Caps Lock + A

The first time I press this, it almost always “misses” but when I press it again, it works.

When I do Caps Lock + ' I also find that often it does not work or it gives me the prompt associated with Caps Lock + A!

The 2nd or subsequent attempt in close time proximity seems to work, but then the next time I go to use it after some time, it fails again.


Oh… I may have identified at least one issue:

If I press Caps Lock + ' but do not release Caps Lock/Hyper Key fast enough, the macro that runs via Keyboard Maestro seems to think that the Caps/Hyper Key is supposed to apply to that macro.

I will try to explain more clearly.

Caps Lock/Hyper Key + A brings up a Keyboard Maestro prompt for input.

Caps Lock/Hyper Key + ' runs a Keyboard Maestro macro, and the first step in that macro is to “Select All” via ⌘+A. However, if I am still holding down the Caps Lock/Hyper Key, it appears that macro is doing Caps Lock/Hyper Key + A instead of just ⌘+A.

So it appears that Karabiner’s Caps Lock/Hyper Key was only triggering once when pressed down until it was released again, and perhaps BTT is not?

(I am not saying that Karabiner is “right” or BTT “wrong” here, just observing a difference.)

I did not even realize that my finger was “lingering” on the Caps Lock/Hyper Key until just now, but I think that not letting Caps Lock/Hyper Key “release” fast enough is at least part of the problem that I am seeing. Not sure if that is true for others as well.

I think I was able to reproduce and have found a solution for the timing issue. I'll upload a new alpha later today!

@tjluoma
Unfortunately that is kind of expected I think. BTT will remove the HyperKey for its own actions but if you trigger KeyboardMaestro it will try to apply its "tricks" to remove the modifiers from a normal keyboard which might not work for the programatically generated ones.

In general the BTT logic is: as long as you hold caps lock, all the associated modifiers will be held down.

1 Like

That’s reasonable, and I suspect something that I can “re-learn” given a bit of time and practice. Being aware of what I’m doing is a good place to start :slight_smile:

Another “n00b” question: is there a place to follow for when alpha updates are posted? I tend not to restart my Mac that often, so if BTT is only checking for updates when it restarts, it could miss some of them, but I did not see any way to “Check for updates” manually.

Thank you again for all your good work on BTT!

Checking for alpha versions is currently only possible if you have the menubar item visible: image

I should add a button somewhere in the UI to do it.

However it will check at least once a day if autoupdates are enabled.

Ah! I hadn’t checked there due to Bartender hiding it :slight_smile:

That works fine for me. Thanks!

The alpha is now available, would be great if you'd play around with it a little.

@tjluoma possibly you can workaround your problem by something like this:


(Mission Control is just used as an example, this would be replaced by triggering Keyboard Maestro)

1 Like

Andreas

I’m sorry but I’m not understanding what you are suggesting that I do. Is this to re-define the hyper key or the “named trigger”?

I updated to

/Applications/BetterTouchTool.app:
CFBundleShortVersionString: 3.545
CFBundleVersion: 1684

but now my “Named Trigger” is not working at all when Caps Lock is pressed + released.

The Hyper Key does work when used with another modifier.

I still cannot get my Hyper +' to work reliably. I can’t let go of the Caps Lock quick enough.

Update

I reverted to

/Applications/BetterTouchTool.app:
CFBundleShortVersionString: 3.544
CFBundleVersion: 1683

and my “Caps Lock Named Trigger” worked again.

Thanks Andreas, HyperKey combinations seem to work more reliably in v3.545 now.

@tjluoma I don't have a lot experience in Keyboard Maestro, but would it work to add 'delay 500ms' at the beginning of your script, just to give time for you to release Caps Lock?

1 Like

Thank you! Currently looking in named trigger issue.
My suggestion is to use the BTT actions that "up" the modifier keys, before triggering your Keyboard Maestro macro.

The named trigger issue should now be resolved in 3.546!

On my machine I can now press caps lock and e.g. "A" completely simultaneously and it still works (For shortcuts defined in BTT).

It is not working for me. It worked OK when I first tried "Caps Lock Alone", but after I used a few "Caps Lock + Another Key" then "Caps Lock Alone" stopped working.

(Caps Lock + A seems to be working a bit better but I can't tell if that's a side-effect of the other issue that I am seeing.)

UPDATE:

I restarted BTT again and now it seems to be working OK.

Thanks for the quick fix @Andreas_Hegenberg! I'm still having two separate issues:

  1. This one is easier to reproduce, as it happens consistently: it seems that any time I press one of the arrow keys, the next hyper key trigger does not work. When I try again it generally works on the first retry, sometimes on the second.

  2. Sometimes the modifier keys are staying pressed after the shortcut has been triggered (already being discussed on Possible modifier-stuck-down issue on Big Sur - #5 by Andreas_Hegenberg).

Ah the arrow key issue I can reproduce (it's because arrow keys also press the FN key and keep it press until the next key event). I'll fix that now.

I have been unable to reproduce the stuck modifier key issue but will continue looking into this.

Ah! That gave me an idea. I added a “Pause Until” in Keyboard Maestro to say “Pause until the ' key is “UP” before executing, so as long as I let go of Caps Lock before then, it should work.

(Unfortunately I could not seem to get Keyboard Maestro to do “Pause Until Caps Lock” is up.)