Buggy Hyperkey functionality after using the MacOS "fn/Globe" key

Describe the bug
Hi, love the software.

I'm running into niche, buggy behaviour with BTT's Hyperkey functionality where, for whatever reason, using an Apple keyboard's "fn/Globe" key causes Hyperkey shortcuts not to work on the first try.

This is a bit hard to describe, but essentially, I've mapped my Caps Lock key to be Hyperkey (without shift) from within BTT and have mapped the MacOS System Window Snapping shortcuts as well as various other shortcuts. (e.g.: "Caps Lock + F" to Maximize, "Caps Lock + C" to center, "Caps Lock + Left Arrow" to Tile to the Right, and so on.)

Now, this usually works great, but on occasion the shortcut will not trigger on the first try, requiring me to lift my finger from Caps Lock and press the shortcut again before the desired action triggers.

I dug around for an answer and didn't find anything, but I think I've figured out what's causing this!

At least on my end, I can consistently recreate this behaviour by pressing the MacOS "fn/Globe key + anything else", after which pressing, for ex, "Caps Lock + F" for Maximize will not do anything until I lift my finger from Caps Lock, press down on it again, and finally press "F" again. After this second go, the shortcut to Maximize will properly trigger.

Now, I haven't explored this fully, but there are a few oddities: for one, this only seems to affect the main QWERTY keys. Pressing "fn+something" and then executing an action that uses "Caps Lock + arrow keys" will trigger normally, with no repeated pressing required. After this, the main letters ("F" etc) will still not function until pressing them once, releasing the hyper key, and pressing them again. I haven't explored the bounds of this, what works and what doesn't.

In conclusion, it seems like pressing "fn+anything" will enter into a state where the next Hyperkey shortcut requires two presses until it's properly triggered, at which point this state is exited.

I hope I've managed to convey the issue, and I hope that others are able to recreate this bug as well! I have no idea what's causing this, as the fn key isn't bound to anything conflicting.


Affected input device:
Presumably all Apple keyboards with the "fn" key.


Device information:

  • Type of Mac: MacBook Pro M1 Pro (2021)
  • macOS version: Sequoia 15.6
  • BetterTouchTool version: 5.536

That could potentially be related to this: Send shortcut to specific app (Microsoft Teams) action not working when app is on the foreground - #6 by Pal

that is a very interesting finding and might explain some other hyper key related issues. I‘ll have a look tomorrow!

Just noticed it as well for me.

Might also be related: The Hyper+⎋ that you fixed for me a couple of versions back only works once. The second (and consequitive) times it doesn't trigger, until I restart BTT. I believe that goes for any other ⎋-shortcuts I have too, they all stop working after the Hyper+⎋ is triggered.

unfortunately I can't seem to reproduce the issue described here. Hitting FN in all sort of variations doesn't cause the hyperkey to fail for me.

Do you have configured these FN+QWERTY key triggers in BTT or somewhere else?

Hi, I just tested it again. It pretty consistently works for me, triggering the error.

I should probably clarify that I'm using the hyperkey almost entirely with outside programs as well as the MacOS Keyboard Shortcuts settings, where I've mapped it to the native MacOS Window Snap commands.

The only thing I have Fn mapped to in anything is using it as part of the window dragging, where I've mapped Fn+Control to the Window Moving and Fn+Control+Option to the Window Resizing function within BTT settings.

It's a real shame you can't reproduce this! If it helps, I'm using the MacBook Pro in clamshell mode with the newer, USB-C model Magic Keyboard with Numpad. But again, this error happens the same way on Macbook's own keyboard.

Could it be related somehow to the MacOS Native window snapping shortcuts that are, by default, Fn+Control+"c"/"f" etc?

Could you try v5.596 alpha? Even though I couldn't reproduce it here I made some changes to FN key handling.

Updated to v5.599 and the same issue still exists. Was this the correct version?

Yes that is correct.

I'll try again with another machine whether I can reproduce the issue there. Are you maybe using any other keyboard related tools that could conflict here?

Ha I think I was actually able to reproduce the issue on my other machine for whatever reason.

Could you check whether 5.600 solves the hyperkey after FN issue for you? (uploading now).

Quick testing reveals that yeah, this seems to have fixed it! Fantastic work, thanks a ton, feels very smooth!

A possible side effect of this is that now I can't seem to activate the "focus Menu Bar" command via Fn+M, but that might be something different with my machine. Also, all the other fn shortcuts seem to work fine, so—whatever! Just pointing it out, as that was one of the shortcuts I used to trigger the bug beforehand.

that should not be related (the change only affects internal BTT state), however I had encountered issues with that shortcut in the past. For me remapping it in BTT worked:

Got it—thanks again for fixing this so quickly!

Great, it's finally solved. I even set up a whole set of shortcuts to map hyperkey + every letter and symbol on the keyboard.