Skip to content

macOS Platform Support

macOS-specific implementation details for Toss.

macOS requires accessibility permissions for clipboard monitoring. The app must:

  1. Request accessibility permissions on first launch
  2. Check permission status before accessing clipboard
  3. Provide instructions if permissions are denied
  4. Handle permission denied gracefully

Implementation Status: Basic structure created in permissions_service.dart. Full implementation requires native code integration.

Files:

  • flutter_app/lib/src/core/services/permissions_service.dart
  • flutter_app/macos/Runner/Info.plist (needs NSAccessibilityUsageDescription)

The app should request accessibility permissions on first launch:

// In AppDelegate.swift
let options = [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String: true]
let accessEnabled = AXIsProcessTrustedWithOptions(options as CFDictionary)

Before accessing clipboard, check permission status:

let accessEnabled = AXIsProcessTrusted()
if !accessEnabled {
// Show instructions to user
}

Add to Info.plist:

<key>NSAccessibilityUsageDescription</key>
<string>Toss needs accessibility permissions to monitor clipboard changes.</string>
  • Keychain: Secure storage for device keys
  • System Tray: Menu bar integration
  • Notifications: User notifications for events