Skip to content

[BUG] Left Option modifier-only hotkey falsely triggers recording on Shift+Enter #688

Description

@seb-donato

Describe the bug

Summary
I set the primary dictation hotkey to left Option (modifier-only). Recording starts as expected when I tap left Option alone. However, pressing Shift+Enter — which I use constantly to insert a newline in text fields — also starts recording. Shift+Enter does not involve the Option key at all, so this looks like a false positive in the modifier-only shortcut matcher.

Suspected cause (for triage)
Because a single modifier can't be registered as a normal hotkey, the CGEvent tap in GlobalHotkeyManager.swift has to detect the left-Option hotkey from the raw flagsChanged / keyDown / keyUp stream (tap-detection). It looks like the interleaved Shift flagsChanged events around the Return keypress are being misread as an isolated modifier tap matching the configured Option shortcut. This is the same area touched by the modifier-only fixes in v1.5.12 (fn+control) and the right-side modifier fixes in v1.6.2 (Right Option + Right Shift).

Happy to test a beta build or provide logs if useful.

Reproduction steps

  1. In Settings, assign the primary dictation shortcut to left Option (single modifier).
  2. Place the cursor in any multi-line text field.
  3. Press Shift+Enter to insert a line break.
  4. Observe that FluidVoice starts recording.

Expected behavior

Shift+Enter inserts a newline and does not trigger dictation. Only a genuine left-Option tap (or hold) should trigger it.

Actual behavior

Shift+Enter triggers dictation as if left Option had been tapped, interrupting normal typing.

App Version

1.6.5 (16)

macOS Version

MacOS Tahoe 26.5.2

Architecture

Apple Silicon

Logs or crash report


Screenshots or screen recording

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions