[macOS Sequoia] Using RegisterEventHotkey with option and shift modifiers doesn't working anymore

Hello.

In my app, I use RegisterEventHotkey to implement global keyboard shortcuts to trigger actions.
Up until macOS Sequoia, I was able to use a keyboard shortcut with option and shift as the modifiers, like option shift 2 (⌥ ⇧ 2).
Now, on macOS Sequoia, using RegisterEventHotkey to register a hotkey with those exact modifiers (option and shift), regardless of the key, fails with the error -9868 (eventInternalErr).

Is this a documented and wanted change, or is this a bug? Other modifier keys (just command, command option, command shift, command control, control shift, etc), all work.

Any insight into this would be appreciated. (Feedback filed: FB15163561)

Thank you,
Matthias

Answered by Frameworks Engineer in 804374022

This was an intentional change in macOS Sequoia to limit the ability of key-logging malware to observe keys in other applications. The issue of concern was that shift+option can be used to generate alternate characters in passwords, such as Ø (shift-option-O).

There is no workaround; macOS Sequoia now requires that a hotkey registration use at least one modifier that is not shift or option.

Hi, I am a poweruser which upgraded to MacOS 15, at first I thought my shortcuts not working was just a bug, but then after research I got here.

  1. Please consider restoring it to previous behavior, it is not acceptable that I can't assign shortcuts according to my likings.
  2. New feature UX is bad, why it is not conveying that some shortcuts can't be done, so they are saved and shown in keyboard settings, ultimately, do not work.

How much sandboxed malware has been used for keylogging? Even if there was a real case of it happening, beyond silly theorization, how does the change in Sequoia prevent it?

This issue has been addressed in macOS 15.2 Beta 2 (Build: 24C5073e). The hotkey API now allows hotkeys with only Option (or Option-Shift), without also requiring Command or Control modifiers.

[macOS Sequoia] Using RegisterEventHotkey with option and shift modifiers doesn't working anymore
 
 
Q