Skip to content

Stabilize macOS packaging, tray menu, and hotkeys - #1

Open
joshtech90 wants to merge 11 commits into
bjspi:mainfrom
joshtech90:macos-support
Open

Stabilize macOS packaging, tray menu, and hotkeys#1
joshtech90 wants to merge 11 commits into
bjspi:mainfrom
joshtech90:macos-support

Conversation

@joshtech90

@joshtech90 joshtech90 commented Jul 25, 2026

Copy link
Copy Markdown

Summary

  • anchor PyInstaller paths to the spec/project directory and derive the bundle version from app.__version__
  • add a recoverable macOS build/install flow that preserves settings, login-item behavior, bundle identity, and an available signing identity across updates
  • prevent Qt/AppKit native and custom tray menus from appearing together on macOS
  • prevent recursive clipboard hotkeys by suppressing self-generated key events, adding a re-entry guard, and rejecting Copy/Paste/Select-All collisions
  • keep the macOS global listener alive while a shortcut is captured, avoiding a native Text Input Services crash on recent macOS versions
  • use Ctrl+, as the macOS post-rephrase default: two keys without colliding with the standard Cmd+, Settings shortcut
  • keep platform-specific runtime differences behind the existing macOS guards

Why this stays minimal

Packaging and installation remain contained under deploy/ plus the macOS install guide. Input handling is split into small reusable guards, configuration safety checks, and focused regression tests. Windows and Linux retain their existing tray and hotkey-capture behavior.

Verification

  • pytest: 140 passed
  • Ruff: all checks passed
  • mypy on the documented source targets: no issues
  • regression tests cover recursive clipboard input, stale modifiers, logical listener muting, and the macOS capture lifecycle
  • signed arm64 bundle built, installed, and launched successfully
  • the former crash path was exercised five times in one live macOS process; every capture completed with the same listener still alive
  • no new macOS crash report was created
  • runtime log confirms F1 recording plus the Ctrl+, transformation shortcut
  • bundle identifier, signing identity, login item, and existing user configuration were preserved
  • real macOS status-item activation visually verified to produce exactly one menu

@joshtech90 joshtech90 changed the title Make macOS bundle updates stable and prevent duplicate tray menus Stabilize macOS packaging, tray menu, and hotkeys Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant