fix: permissions detection, Input Monitoring in popover, and app icon - #35
Conversation
Permissions: - Add proper Input Monitoring permission detection using CGEvent tap test - Add inputMonitoringPermission property to AppState (was sharing accessibilityPermission) - Fix SettingsView to use inputMonitoringPermission instead of accessibilityPermission - Add Input Monitoring warning with rationale in menu bar popover - Show permissions section when any of mic/accessibility/input monitoring is missing App Icon: - Generate AppIcon.icns from logo.png (all sizes 16x16 to 1024x1024) - Add CFBundleIconFile to Info.plist in build script - Copy icon into app bundle Resources during build - Icon now shows in Finder, Launchpad, and Dock
- Use CGEvent.tapIsEnabled on HotKeyManager's active tap to detect revocation - Expose activeEventTap from HotKeyManager for permission checking - Add microphone permission rationale in popover - Fix CGEventTapIsEnabled API for Swift compatibility
…sion - Create a temporary event tap before opening System Settings, which triggers macOS to auto-add VocaMac to the Input Monitoring list - Consolidated requestInputMonitoringPermission() in AppState - Updated popover and settings to use the new method
Ad-hoc signed apps don't auto-register in Input Monitoring. Updated help text to instruct users to click + and add VocaMac manually.
DMG users installing to /Applications will see VocaMac auto-registered. Updated text to 'Enable VocaMac in the list' which works for both paths.
Add .fixedSize(horizontal: false, vertical: true) to all three permission rationale Text views so they wrap to the next line instead of getting cut off in the 380px-wide popover panel.
Suggested Release Notes for v0.1.0Here are some notes to include in the release when we tag v0.1.0. These cover installation methods, permissions, and logging. InstallationOption 1: Download DMG (Recommended)
Option 2: Build from Source git clone https://github.com/jatinkrmalik/vocamac.git
cd vocamac
./scripts/build.sh
open VocaMac.appPermissions — Important DifferencesVocaMac requires three macOS permissions: Microphone, Accessibility, and Input Monitoring.
LoggingVocaMac logs diagnostic info to stdout with prefixed tags like
There is no persistent log file at this time. If reporting issues, please run from terminal to capture logs: open VocaMac.app 2>&1 | tee vocamac.logLatest commit |
Use the same tagline from README and website: 'Your voice, your Mac, your privacy. Open-source dictation powered by AI.'
Fixes
1. Input Monitoring Permission Detection
accessibilityPermissionstatus, so it always showed as denied even when grantedinputMonitoringPermissionproperty with proper detection using a CGEvent tap test2. Input Monitoring in Menu Bar Popover
3. App Icon in Finder/Launchpad
AppIcon.icnsfrom logo.png (all sizes: 16x16 to 1024x1024)CFBundleIconFileto Info.plist in build script4. Documents Folder Permission
The "access files in Documents folder" prompt is from macOS quarantine on downloaded DMGs. Not an app issue - resolved by the
xattr -crstep in installation.