Skip to content

🐞 Keyboard shortcuts stop working while OS X Secure Input is active #1128

Description

@wolph

Bug Description

Loop shortcuts completely stop working while OS X Secure Input is active. The radial menu still opens, but the regular key event never reaches Loop and the window doesn't move.

This started out of nowhere after a reboot for me. Re-adding Accessibility permissions, logging out, rebooting, and even upgrading OS X made no difference. Rectangle worked immediately with the same shortcuts though. I can now reproduce it every time with the helper below :)

Affected Scope

Other

Steps to Reproduce

  1. Configure a Loop shortcut such as ⌘⌥←.
  2. Confirm that it moves the focused window.
  3. Run this in Terminal:
swift -e '
import Carbon.HIToolbox
import Darwin
import Foundation

func stopSecureInput(_: Int32) {
    _ = DisableSecureEventInput()
    exit(0)
}

signal(SIGINT, stopSecureInput)
signal(SIGTERM, stopSecureInput)

let status: OSStatus = EnableSecureEventInput()
guard status == noErr else {
    fputs("EnableSecureEventInput failed: \(status)\n", stderr)
    exit(1)
}

print("Secure Input enabled: \(IsSecureEventInputEnabled())")
print("Press Control-C to disable it and exit.")
fflush(stdout)
RunLoop.current.run()
'
  1. Confirm that it prints Secure Input enabled: true.
  2. Retry the Loop shortcut.
  3. Stop the helper with Control-C and retry it once more.

Reproducibility

Always

Expected vs Actual Behavior

Expected: the shortcut moves the window, just like it does in Rectangle.

Actual: Loop sees the modifiers and can show the radial menu, but it misses the regular action key. The window doesn't move. Stopping the helper makes the shortcut work again immediately.

Screen Recordings / Screenshots

Not applicable; the only visible result is that the window doesn't move.

Severity

Major (workaround exists)

macOS Version

26.5.2 (25F84)

Loop Version

1.4.2 (1755); also reproduced on build 1714

Did You Try the Development Build?

Yes

Additional Context

I'm not sure what suddenly enabled Secure Input on this machine. Bitwarden is a likely real-world trigger because of bitwarden/clients#21964, but the helper above reproduces the problem without Bitwarden.

#1127 already contains the fix I tested. Since the project requires an accepted issue first, I'm filing this now. If the approach looks good, please reopen that PR and I'll update it with the AI disclosure.

AI Assistance Disclosure

OpenAI Codex (GPT-5) assisted with diagnosis/implementation/tests/documentation/reproduction-helper/pr-drafting.

I personally reproduced and tested the complete behavior. I also manually reviewed every line of the proposed code and verified that it does only what is necessary to address this bug and as far as I can judge, nothing outside that scope.

I'm an experienced open source developer and wouldn't have submitted the PR if I wasn't confident in the code, it's signed with my name after all so my own reputation is at stake too ;)

Final Checks

  • My issue is written in English.
  • My issue title is descriptive.
  • This is a single bug (multiple bugs should be reported individually).
  • I have looked to see if this is a duplicate of another bug report.
  • I can help with further investigation.
  • I can help with developing a fix for this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions